php – mkdir():权限被拒绝

我的服务器上的所有文件都有777. PHP 5.4(没有safe_mode)

站点适用于其他服务器.这是Yii框架

mkdir(): Permission denied

/var/www/html/project/framework/web/CAssetManager.PHP(225)

213             return $this->_published[$path];
214         elseif(($src=realpath($path))!==false)
215         {
216             $dir=$this->generatePath($src,$hashByName);
217             $dstDir=$this->getBasePath().DIRECTORY_SEParaTOR.$dir;
218             if(is_file($src))
219             {
220                 $fileName=basename($src);
221                 $dstFile=$dstDir.DIRECTORY_SEParaTOR.$fileName;
222 
223                 if(!is_dir($dstDir))
224                 {
225                     mkdir($dstDir,$this->newDirMode,true);
226                     chmod($dstDir,$this->newDirMode);
227                 }

这里ls -l在chown之后,没有帮助

drwsrwsrwx.  2 apache apache    4096 июля   3 16:44 assets
drwxrwxrwx.  5 apache apache    4096 июня  10 14:52 bootstrap
drwxrwxrwx. 19 apache apache    4096 июля   3 16:04 framework
-rwxrwxrwx.  1 apache apache     326 июля   3 16:42 index.PHP
drwxrwxrwx. 10 apache apache    4096 июля   3 16:04 protected
drwxrwxrwx.  3 apache apache    4096 июня  20 13:28 soap
drwxrwxrwx.  3 apache apache    4096 июля   3 16:04 themes
确保:

> web目录由apache用户拥有. (“ls -al”会告诉你)
>您要创建的父目录也归该用户所有.
>父目录不是您没有写入权限的安装
>您要创建的路径是正确的(var_dump($dstDir)会告诉您)
> $this-> newDirMode包含正确的权限值. (如果你在Windows上运行,这将被忽略)

如果没有问题但它仍然无效我会这样做:

>让自己成为apache用户并尝试手动创建(如果你的用户名是apache,则为“sudo -u apache”)
>尝试省略“mkdir中的第三个参数’true'($dstDir,$this-> newDirMode,true);”并一个一个地创建所有目录
>检查日志(“/ var / log / apache”是你的朋友)

希望这可以帮助.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...