当我在服务器上运行我的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
答案 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将自动匹配