【发布时间】:2016-06-21 22:00:03
【问题描述】:
我已经设置了一个小型 Ubuntu Server 来开发一些网络应用程序。
我有一个使用 mkdir() 创建目录的小脚本,但我得到了一个权限被拒绝,这是一个简单的命令
mkdir($directory);
我得到的错误是
[Tue Jun 21 22:27:25.079075 2016] [:error] [pid 21150] [client 192.168.0.8:55413] PHP Warning: mkdir(): Permission denied in .........
我还获得了其他一些命令(例如 ftp_get())的权限被拒绝
当我检查 phpinfo() 时,upload_tmp_dir 设置为无值。
我不是很擅长服务器管理,所以任何帮助都将不胜感激。
我从一个教程设置服务器,然后从另一个教程设置我的虚拟主机。
谢谢大家:)
【问题讨论】:
-
这不是 PHP 问题。运行 PHP 的进程没有执行您的请求所需的权限。您需要正确配置服务器。找出哪个用户正在为您运行 PHP(如果这是 apache,它可能是 www-data),将此用户添加到正确的组中,以便它可以在目录中执行您想要的操作。您可能还想包含有关用户、组及其权限的更多信息,并在 ubuntu SO 网站上询问。
-
@OptimusCrime .. sudo chown -R www-data:www-data /var/www ... 这会是我的问题的永久解决方案吗?
-
更好的方法是将用户添加到正确的组中
-
@OptimusCrime .. 很抱歉这些愚蠢的问题,但是你有没有机会给我一个答案,让我知道我是怎么做到的......我的搜索没有任何运气。谢谢
-
类似于
useradd -G www-data www-data。这会将用户www-data添加到组www-data。检查哪个组拥有目录/var/www/,并检查哪个用户运行apache。