项目部署到Linux后 由于Php 禁用了Chmod 导致Assets不能写入Js/css

项目部署到linux后,访问时出现的Warning




PHP warning


chmod() has been disabled for security reasons


htdocs/yii/framework/utils/CFileHelper.php(288)


276      * @param boolean $recursive

277      * @return boolean result of mkdir

278      * @see mkdir

279      */

280     private static function mkdir($dst,array $options,$recursive)

281     {

282         $prevDir=dirname($dst);

283         if($recursive && !is_dir($dst) && !is_dir($prevDir))

284             self::mkdir(dirname($dst),$options,true);

285 

286         $mode=isset($options['newDirMode']) ? $options['newDirMode'] : 0777;

287         $res=mkdir($dst, $mode);

288         chmod($dst,$mode);

289         return $res;

290     }

291 }

Stack Trace

 .....省略




具体是由于chmod 在php.ini中被列为了禁止函数(safe_model=on),导致系统在assets文件夹下没有写入权限,造成js/css写入不了,客户端登录注册验证全部失效

由于safe_model=on chmod函数禁止了,在不设置safe_model=off情况下,还有没有其他解决方案

你手动设置可写就行了啊. 然后把那行加上@或者error_reporting(0);