PHP mkdir: 权限被拒绝问题

php
2022-08-30 07:19:38

我正在尝试使用PHP mkdir函数创建一个目录,但我收到错误,如下所示:.如何解决问题?Warning: mkdir() [function.mkdir]: Permission denied in ...


答案 1

我知道这是一个老线程,但它需要一个更好的答案。您不需要将权限设置为 777,这是一个安全问题,因为它提供了对世界的读取和写入访问权限。可能是您的 apache 用户对目录没有读/写权限。

以下是你在 Ubuntu 中所做的

  1. 确保所有文件都归 Apache 组和用户所有。在 Ubuntu 中,它是 www-data group 和 user。

    sudo chown -R www-data:www-data /path/to/webserver/www

  2. 接下来,使 www 数据组的所有成员能够读取和写入文件

    sudo chmod -R g+rw /path/to/webserver/www

php 函数现在应该可以正常工作而不会返回错误mkdir()


答案 2

对于将来通过谷歌找到这个的人来说,答案很晚。我遇到了同样的问题。

注意:我在MAC OSX LION上

发生的事情是apache以用户“_www”的身份运行,并且没有权限编辑任何文件。你会注意到没有文件系统函数通过php工作。

如何修复:

打开查找器窗口,然后从菜单栏中选择“转到”>“转到文件夹”> /private/etc/apache2

现在打开 httpd.conf

找到:

User _www 
Group _www

更改用户名:

User <YOUR LOGIN USERNAME>

现在通过运行这个表单终端来重新启动apache:

sudo apachectl -k restart

如果它仍然不起作用,我碰巧在做上述操作之前执行以下操作。可能相关。

打开终端并运行以下命令:(注意,我的Web服务器文件位于/Library/WebServer/www。根据您的网站位置进行更改)

sudo chmod 775 /Library/WebServer/www
sudo chmod 775 /Library/WebServer/www/*

推荐