我的服务器上的所有文件都有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”是你的朋友)
希望这可以帮助.