0

nginxサーバー(nginx 1.0.5、fastcgi経由のphp5-fpm)に2つの完全に分離されたcakePHP-Environmentsをセットアップする必要がありました。

次のフォルダ構造を作成しました。

/var/www
  /**virtual1**/
    /app
    /lib/Cake/..
  /**virtual2**/
    /app
    /lib/Cake/..

これで、virtual1.mydomain.comを呼び出すと、フロントエンドアプリが表示され、使用できるようになりました。しかし、virtual2.mydoamin.comを呼び出すと、奇妙なエラーが発生します(virtual2にvirtual1のファイルの一部が含まれている場合など)。Virtual1はとにかく機能しています。

次に、ブラウザのキャッシュとCookieをクリアして、リロードしvirtual2.mydomain.comます。これで問題なくこのアプリを使用できますが、virtual1.mydomain.com奇妙なエラーが表示されます。

わかりました-open_basedirを使用して、各ホストを自分のディレクトリに制限しました。結果:

Warning: include(): open_basedir restriction in effect. File(/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php) is not within the allowed path(s): (/var/www/taskees:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/virtual2/lib/Cake/Core/App.php on line 505

Warning: include(/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php): failed to open stream: Operation not permitted in /var/www/virtual2/lib/Cake/Core/App.php on line 505

Warning: include(): Failed opening '/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php' for inclusion (include_path='/var/www/virtual2/lib:.:/usr/share/php:/usr/share/pear') in /var/www/virtual2/lib/Cake/Core/App.php on line 505

Warning: include(): open_basedir restriction in effect. File(/var/www/virtual1/lib/Cake/Core/CakePlugin.php) is not within the allowed path(s): (/var/www/taskees:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/virtual2/lib/Cake/Core/App.php on line 505

Warning: include(/var/www/virtual1/lib/Cake/Core/CakePlugin.php): failed to open stream: Operation not permitted in /var/www/virtual2/lib/Cake/Core/App.php on line 505

Warning: include(): Failed opening '/var/www/virtual1/lib/Cake/Core/CakePlugin.php' for inclusion (include_path='/var/www/virtual2/lib:.:/usr/share/php:/usr/share/pear') in /var/www/virtual2/lib/Cake/Core/App.php on line 505 Fatal error: Class 'CakePlugin' not found in /var/www/virtual2/app/Config/bootstrap.php on line 67

編集:別のインターネット接続で動作している別のコンピューターからこれらのページを呼び出すと、同じエラーが発生します:(

わかりました-なぜこれらのcakePHPを実行するのですか-インストールは、他のインストールのたびにファイルを取得しようとします

そして、なぜこれはキャッシュとクッキーをクリアした後に毎回変わるのですか?

4

1 に答える 1

0

ああ、私には考えがあります。キャッシュはどのように保存されますか?データベースを使用しているのですか、それともファイルに保存しているのですか。複数のインストールがあり、データベースが1つしかない場合は、キャッシュがファイルに保存されていることを確認してください。

デバッグ手段として、mysqldumpを使用して2つのデータベースを作成します。インストールごとにconfig/database.phpファイルでそれらを分離してから、問題を再度確認してください。それがなくなると、キャッシュ内の何かがdbに書き込まれます(これは不要です)。

于 2011-12-04T13:46:38.407 に答える