最近、自分のマシンに Symfony2 を正常にインストールしました。
アクセスできますhttp:/localhost/app_dev.php
(開発環境)
ただし、prod 環境にアクセスしようとすると、次のようになります。
http:/localhost/app.php
ブラウザに次のエラー メッセージが表示されます。
おっとっと!エラーが発生しました
サーバーは「404 Not Found」を返しました。何かが壊れています。[email] 宛てに電子メールを送信し、このエラーが発生したときに何をしていたかをお知らせください。できるだけ早く修正いたします。不便をかけてごめんなさい。
私は明らかなことを確認しました: app.php ファイルは app_dev.php と同じフォルダーに存在します - そのため、何が原因なのかわかりません。
誰にもこれを修正する解決策がありますか?
[[編集]]
入力してキャッシュをクリアしました:sudo php app/console cache:clear env=prod no-debug
推奨どおり。空白の画面が表示されるようになりました。心配なことに、app/logs/prod.log にエラー メッセージが記録されていないため、何が問題なのかわかりません (prod 環境は問題なく動作します)。
私の app/config/routing.yml ファイルの内容:
### fos routing, remove later
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
###
# Internal routing configuration to handle ESI
#_internal:
# resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
# prefix: /_internal
ここに私の app/config/routing_dev.yml ファイルがあります
_welcome:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index }
_demo_secured:
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
type: annotation
_demo:
resource: "@AcmeDemoBundle/Controller/DemoController.php"
type: annotation
prefix: /demo
_assetic:
resource: .
type: assetic
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_main:
resource: routing.yml
routing_prod.yml ** がないことに気付きました
(警鐘が鳴り響く) - Symfony2 にはプロダクションルーティング設定ファイルが同梱されていませんか?
私の Apache 構成ファイルの内容を以下に示します。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /path/to/symfony/web
ServerName localhost
# Custom log file
Loglevel warn
ErrorLog /path/localhost.error.log
CustomLog /path/localhost.access.log combined
<Directory /path/to/symfony/web>
AllowOverride None
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>
</VirtualHost>
[[詳細]]
app/logs/prod.log の内容
[2012-08-10 18:10:38] security.INFO: 匿名トークン [] [] [2012-08-10 18:10:38] request.ERROR: Symfony\Component\HttpKernel\Exception\ NotFoundHttpException: /path/to/symfony/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/EventListener/RouterListener.php 行 83 で「GET /」(キャッチされない例外) のルートが見つかりません [] []