我试图用PHP mkdir函数创建一个目录,但我得到一个错误如下:Warning: mkdir() [function.mkdir]: Permission denied in ....如何解决这个问题?
小智 156
我知道这是一个老线程,但它需要一个更好的答案.您不需要将权限设置为777,这是一个安全问题,因为它提供对世界的读写访问权限.可能是您的apache用户对目录没有读/写权限.
这是你在Ubuntu中所做的
确保所有文件都归Apache组和用户所有.在Ubuntu中,它是www-data组和用户
chown -R www-data:www-data /path/to/webserver/www
接下来,使www-data组的所有成员都能读取和写入文件
chmod -R g+rw /path/to/webserver/www
php mkdir()函数现在应该可以正常运行而不返回错误
小智 37
对于将来通过谷歌发现此问题的人的延迟回答.我遇到了同样的问题.
注意:我在MAC OSX狮子会上
会发生什么是apache作为用户"_www"运行,并且没有编辑任何文件的权限.您会注意到没有文件系统功能可以通过php工作.
怎么修:
打开一个finder窗口,从菜单栏中选择Go> Go To Folder>/private/etc/apache2
现在打开httpd.conf
找:
User _www
Group _www
Run Code Online (Sandbox Code Playgroud)
更改用户名:
User <YOUR LOGIN USERNAME>
Run Code Online (Sandbox Code Playgroud)
现在通过运行此表单终端重启apache:
sudo apachectl -k restart
Run Code Online (Sandbox Code Playgroud)
如果它仍然无法正常工作,我会在执行上述操作之前执行以下操作.可能有关系.
打开终端并运行以下命令:(注意,我的网络服务器文件位于/ Library/WebServer/www.根据您的网站位置更改)
sudo chmod 775 /Library/WebServer/www
sudo chmod 775 /Library/WebServer/www/*
Run Code Online (Sandbox Code Playgroud)
我知道这个线程很旧,但是有一天,这也许会对某人有所帮助。
PHP为什么对mkdir()说“权限被拒绝”的问题-错误的URL路径。因此,要修复它,您所需要的只是获得正确的路径。我这样做是这样的:
<?php
$root = $_SERVER["DOCUMENT_ROOT"];
$dir = $root . '/somefolder/';
$old = umask(0);
if( !file_exists($dir) ) {
mkdir($dir, 0755, true);
}
umask($old);
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
259285 次 |
| 最近记录: |