CAssetManager.basePath“/ assets”无效。请确保该目录存在且可由Web服务器进程写入。

时间:2013-11-15 20:07:52

标签: yii

当我在服务器上运行我的YII项目时,我收到了这个错误。

CException

CAssetManager.basePath "/var/www/html/v2/assets" is invalid. Please make sure the   directory exists and is writable by the Web server process.

/var/www/html/v2/yii/framework/web/CAssetManager.php(116)

104     }
105 
106     /**
107      * Sets the root directory storing published asset files.
108      * @param string $value the root directory storing published asset files
109      * @throws CException if the base path is invalid
110      */
111     public function setBasePath($value)
112     {
113         if(($basePath=realpath($value))!==false && is_dir($basePath) &&   is_writable($basePath))
114             $this->_basePath=$basePath;
115         else
116             throw new CException(Yii::t('yii','CAssetManager.basePath "{path}" is  invalid. Please make sure the directory exists and is writable by the Web server process.',
117                 array('{path}'=>$value)));
118     }
119 
120     /**
121      * @return string the base url that the published asset files can be accessed.
122      * Note, the ending slashes are stripped off. Defaults to '/AppBaseUrl/assets'.
123      */
124     public function getBaseUrl()
125     {
126         if($this->_baseUrl===null)
127         {
128             $request=Yii::app()->getRequest();

我不知道,如何解决?请解释一下它的解决方案?

这是我的项目结构

assets
protected <-- Yii app
js
css
yii

1 个答案:

答案 0 :(得分:4)

assets文件夹应该可由您的Web服务器进程写入。如果在默认配置的apache上通常是www-data。 您可以使用“+ w”权限修改

将用户添加到文件夹组

或者只是将权限修改为777,因为资源文件夹只包含你的js和css文件,无论如何都将公开给公众 从您的根目录

chmod 777 -R ./assets

运行时和data / auth.php也会遇到同样的问题(如果app配置为使用Yii身份验证角色),你也可以在那里进行类似的适当修改

UPDATE :: PHP的其他设置&lt;如果设置了安全模式标志(这在5.4中已经过折旧),则需要5.4。有关如何在php.ini文件中配置安全模式设置,请参阅http://php.net/manual/en/ini.sect.safe-mode.php。您可以完全关闭标记或排除相关目录。 (如果您已将www-data(您的网络流程)添加到您的论坛,则不需要此步骤,因为gid将自动匹配