PHP中 mkdir: Permission denied 问题
今天发现日志报错 mkdir(): Permission denied...
,其实是一个挺常见的问题,有必要简单记录下。
问题原因
这是一个老生常谈的问题了,我觉得它需要一个更好的回答。你不应该暴力的给目录赋予 777
的读写权限,这会产生严重的安全隐患。产生的原因一般是你的Web服务器 比如 Nginx、Apache 的用户对于目录没有 读/写 权限造成的。
解决办法
1.找到Web服务器设置的用户组和用户。一般用户组和名 是 www-data
或者 www
,下面用 www-data
举例。
2.更改对应没有权限的目录设置它的所属组和用户为 www-data
。
chown -R www-data:www-data /path/www/dir
3.对 www-data
组下的所有成员设置目录的 读写 权限
chmod -R g+rw /path/www/dir
搞定!
本作品采用《CC 协议》,转载必须注明作者和本文链接
用户组的话可以在nginx或者apache的配置文件看使用哪个用户组
还有在php-fpm.conf文件查看
如果没有转到PHP去解析,就直接用nginx或者apache用户组,如果是PHP程序就用php-fpm使用的用户组
遇到很奇葩的事情,服务器把目录权限都给了777,www都给了,用php创建mkdir还是报没权限,遇到过不