今日、私は非常に奇妙な状況に遭遇しました。私はさまざまな目的でアプリのいくつかの環境を使用しています(既知の環境:dev、qa、prod、およびFTP経由でファイルを保存し、オンラインで変更をすぐに確認するために使用するdevftp、他の環境にはSVN構成があります)。
なんらかの理由で環境が混乱しているということです。以前は私に起こりましたが、それほど重要ではありませんでした(あるとき、エンティティ列を削除しましたが、アプリでその列への参照がまったくありませんでした。 ReflectionExceptionエラーが発生しました。使用せずに列を再追加し、数週間後に問題なく再度削除しました)。特に1つのエラーは、devftpでサービスを宣言し、devが「ServiceNotFound」と言っていることです。これはnginxエラーログからのものです:
2012/09/07 06:33:16 [error] 3327#0: *9 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException' with message 'You have requested a non-existent service "aks.fs".' in XXXX/dev/app/bootstrap.php.cache:202
Stack trace:
#0 XXXX/devftp/src/AKS/XXBundle/AKSXXBundle.php(18): Symfony\Component\DependencyInjection\Container->get('aks.fs')
#1 XXXX/dev/app/bootstrap.php.cache(521): AKS\XXBundle\AKSXXBundle->boot()
#2 XXXX/dev/app/bootstrap.php.cache(548): Symfony\Component\HttpKernel\Kernel->boot()
#3 XXXX/dev/web/app.php(13): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#4 {main}
thrown in XXXX/dev/app/bootstrap.php.cache on line 202" while reading response header from upstream, client: XXXX, server: dev.XXXX.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "dev.XXXX.com"
"dev.XXXX.com.error.log" 509L, 72936C
devフォルダーの#1がdevftpフォルダーの#0を呼び出す方法を確認できます。devにはboot()メソッドがありませんが、devftpにはaks.fsがあります。それにもかかわらず、devフォルダーにあるdev環境がdevftpフォルダーから何かを呼び出しているのはなぜですか?
これは、qaとdevの間、およびqaとdevftpの間でも発生しました。(CLIとフォルダー全体の削除の両方から、キャッシュ(devとprod)を数回クリーンアップしました)。これはprodenvでのみ発生し、app_dev.phpを使用すると完全に機能すると言うことが重要です。
何か案は?