2013-11-15 11 views
5

YIIプロジェクトをサーバーで実行すると、このエラーが発生します。CAssetManager.basePath "/ assets"が無効です。ディレクトリが存在し、Webサーバープロセスによって書き込み可能であることを確認してください。

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

'/ var/www/html/v2/assets'が存在する場合、 – Ezze

+0

あなたは今何をすべきですか? – unknownbits

+1

ディレクトリが存在する場合、あなたは書き込みを許可する必要があります – Ezze

答えて

4

資産フォルダは、Webサーバー・プロセスによって書き込み可能である必要があり、私のプロジェクトの構造です。デフォルトで設定されているApacheの場合、通常はwww-dataです。資産フォルダのみがとにかく から公衆にさらされるあなたのjsとcssファイルが含まれていますよう あなたはまたちょうど777へのアクセス権を変更

に「+ w」は許可の変更とフォルダのグループにユーザーを追加しますか、あなたのルートディレクトリ

chmod 777 -R ./assets 

、あなたが行うことができます(アプリはYiiの認証役割を使用するように構成されている場合)あなたは、ランタイムおよびデータ/ auth.phpと同じ問題に直面することになるが同様の適切な変更にも

UPDATE :: PHPのその他の設定<セーフモードフラグが設定されている場合は5.4が必要です(5.4節で償却されました)。php.iniファイルのセーフモード設定方法についてはhttp://php.net/manual/en/ini.sect.safe-mode.phpを参照してください。フラグを完全にオフにするか、問題のディレクトリを除外することができます。 (あなたのウェブプロセスウェブプロセスをあなたのグループに追加した場合、このステップは不要です。

+1

大きな偶然この正確なエラーがあり、あなたの答えは最近のものです。権限を変更しても別のエラーが発生しました: 'copy ()[function.copy]:SAFE MODE有効な制限です.uid/gidが219804/219804のスクリプトは、/f5//public/assets/27ff0fb6が所有する/ fid/gid 25000/25000'にアクセスすることができます。奇妙なのは、私は '27ff0fb6'という資産のサブフォルダを持っていません –

+0

あなたはPHPバージョン<5.4を使用していて、アクセス権を許可しながらuid(userId)/ gid(groupId)をチェックするセーフモードフラグも設定していますシステムファイルのパーミッションレベルに加えて。安全なモードの使用/設定方法の詳細については、このページを参照してください。http://php.net/manual/en/ini.sect.safe-mode.php – Manquer

+1

@Manquerありがとうございました。 – unknownbits

関連する問題