0

私は Yii と Git の両方を同時に学んでおり、コミットに関する問題を見つけています。それが重要な場合は、BitBucket を使用しています。

基本的に、プロジェクトを作成してリポジトリにコミットすると、そのリポジトリを別のマシンにプルしようとすると、Yii ランタイム構成エラーが大量に発生します。

私はそれを回避する方法を見つけましたが、面倒なようです。プロジェクトが追加された直後からリポジトリの古いコミットをロードし、プロジェクトを手動で削除してから、yii ツール (yiic) を使用してプロジェクトを再追加すると、最新のコミットからの更新で上書きして、すべてを元に戻すことができます。 .

これは面倒で、トラブルを求めているようです。ここで Yii で間違っていることはありますか?

編集 以下は、表示される正確なエラーメッセージです。

CException

Application runtime path "/Applications/MAMP/htdocs/yii-sandbox/projects/trackstar/protected/runtime" is not valid. Please make sure it is a directory writable by the Web server process.

/Applications/MAMP/htdocs/yii-sandbox/framework/base/CApplication.php(289)

277             return $this->_runtimePath;
278         }
279     }
280 
281     /**
282      * Sets the directory that stores runtime files.
283      * @param string $path the directory that stores runtime files.
284      * @throws CException if the directory does not exist or is not writable
285      */
286     public function setRuntimePath($path)
287     {
288         if(($runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath))
289             throw new CException(Yii::t('yii','Application runtime path "{path}" is not valid. Please make sure it is a directory writable by the Web server process.',
290                 array('{path}'=>$path)));
291         $this->_runtimePath=$runtimePath;
292     }
293 
294     /**
295      * Returns the root directory that holds all third-party extensions.
296      * @return string the directory that contains all extensions. Defaults to the 'extensions' directory under 'protected'.
297      */
298     public function getExtensionPath()
299     {
300         return Yii::getPathOfAlias('ext');
301     }
4

2 に答える 2

2

main.php設定ファイルを git リポジトリに追加しました。そのファイルには、ホストごとの構成設定が含まれており、ファイルが別のマシンに転送されると無効になる可能性があります。

解決策は、ライブ構成ファイルをリポジトリに含めないことです。代わりに、(Yii によってロードされない) 参照構成ファイルを含め、main.phpデプロイ時にその内容を新しいファイルにコピーします。最初のステップとして、次のことを行う必要があります。

git mv main.php main.reference.php
git commit -m "renamed configuration file"

この後、git が無視するファイルのリストに名前を追加する必要もあります/protected/config/main.php。これにより、展開ディレクトリ内のバージョン管理されていないファイルについて気にならなくなります。これを行うに.gitignoreは、チェックアウトのルート ディレクトリに という名前のファイルを作成し、次の行を追加します。

protected/config/main.php
于 2013-09-12T15:25:22.013 に答える