2011-01-15 8 views
1

私はずっと前にzendとsmartyを使ってサイトを作成しました。このサイトは、centOSを持つ仮想マシンでホストされています。今私は同じマシン上に別の仮想ホスト、ftpユーザーなどをcreeatedので、同様のサイトを作成したい。zendとsmartyサイトクローンの問題

Iは、パスを含んでいたiniファイル改変: paths.base =の/ var/WWW/HTML/new_path
paths.data =の/ var/WWW/HTML/new_path /データ
paths.templates = /をVAR/WWW/HTML/new_path /テンプレート
paths.cache =/var/www/htmlと設定/ new_path /データを/ tmp /キャッシュ
paths.public =/var/www/htmlと設定/ new_path/public_htmlの

この問題は、zend/loader.phpにアクセスしようとすると(データベースオブジェクトを読み込もうとすると)古いパス(/ var/www/html/oldp)のローダーが使用されているということです私は新しいサイトに作成した新しいオブジェクトにアクセスできません ( )警告:include_once(DatabaseObject/New.php)[function.include-once]:ストリームのオープンに失敗しました:ライン上の/ var/WWW/HTML/old_path /include/Zend/Loader.phpにおけるそのようなファイルまたはディレクトリ146

警告:のinclude_once()[function.include]:失敗した開口「DatabaseObject/New.php/var/www/html/old_path /include/Zend/Loader.php(include_path = '。:/ var/www/html/old_path/include:/ usr/share/pear /')オンライン上146

致命的なエラー:クラス 'DatabaseObject_Chat'が/ var/www/html/new_path /include/Controllers/ChatController.php 8行目に見つかりません )。

他のパスはどこにも定義されていません。 キャッシングが無効です。 異なるコンピュータ、ブラウザなどで発生するため、ローカルの問題(ある種の残存価値)はありません。

詳細はちょっと聞いてください...私は立ち往生しています。

答えて

0

Zend_Loaderはあなたのpublic/index.phpに定義されているインクルードディレクトリを探します。 include pathは、古いディレクトリと新しいディレクトリの両方を含むように正しく設定する必要があります。インクルードパスで指定されたそれぞれの順序に注意してください。

公共/ index.phpの中のコードがZF1の使用を想定し、次のようになります。

<?php 
... 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../../project_name/path_for_inclusion'), 
    get_include_path(), 
))); 
... 

ザ・パスを含まはまたあなたの.htaccessに調整することができます。

php_value include_path "/var/www/path:/var/www/second_path:/var/www/third" 

または一般的にZF固有のコードなしで効果を達成することができます:

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add); 
関連する問題