【问题标题】:Ubuntu Server unable to create directory in PHPUbuntu Server 无法在 PHP 中创建目录
【发布时间】: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。

标签: php linux ubuntu


【解决方案1】:

你需要确认启动PHP服务的用户是否有权限写入目录,如果没有。您可以尝试命令sudo chown -R php_user /which_directory_you_want_to_mkdir,而不是输入root密码并再次运行程序。祝你好运。

我的英文不太好,抱歉

【讨论】:

  • 嘿,这只是一个临时解决方案,不是吗? ...如果应用正在创建目录,则需要始终设置权限
  • 我真的不知道你想做什么,但根据你的代码和错误信息,也许你可以检查路径'$directory',确保你有它的权限。
猜你喜欢
  • 2018-08-22
  • 2015-03-03
  • 2012-12-04
  • 1970-01-01
  • 2014-01-21
  • 2020-04-23
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多