我mkdir($folder_path, 0755)
在本地主机(MAMP)中使用它可以工作,但是在我转移到 VPS 后我使用 LAMP 它失败了。
文件夹
方向路径是 /var/www/html/assets/images/
图像文件夹信息:
所有者:root组
:root
八进制:755
文件夹var
,,,www
都html
相同assets
php信息
apache2handler
Apache 版本 Apache/2.2.15 (CentOS)
服务器管理员 root@localhost
用户/组 apache(48)/48
核
safe_mode 本地值关闭 主值关闭
我尝试让用户通过以下函数上传文件并创建文件夹
$folder_path = '/var/www/html/backstage/assets/images/0'; if ( mkdir($folder_path, 0755) ) { ...move_uploaded_file();}
如何解决?
(我是否应该更改有关 Linux 使用命令行的权限的任何内容?)任何建议都将受到赞赏,这是我第一次构建服务器。
答案1
您的权限设置不正确。假设所有/var/www/html
均由 apache 使用,则您需要将其更改为 apache 所拥有。
sudo chown apache:apache -R /var/www/html
这将使 html 文件夹及其下的所有内容归 apache 所有,并且其组为 apache。
此外,我建议花点时间了解一下 Owner/Group/Other 及其权限的含义。因为您对 root:root 的使用表明缺乏 Linux 操作系统的核心机制。以下是一篇这样的文章:http://linuxcommand.org/lts0070.php
答案2
您必须检查哪个用户运行 apache。这应该绝不是 root!通常是 apache、nobody 或 www-data。当您知道哪个用户运行 apache 时,您必须更改该特定用户可以读取(以及执行和/或写入,如果需要)文件的权限。
那么它可能会像在你的本地主机环境中一样运行