[英]symfony2 - how to switch from “dev” to “prod”?
我下載了 symfony2,我可以從 app_dev.php 開始運行它。
但是當我從 app.php 開始時,我得到一個錯誤頁面 404。
app.php 雖然當然在那里並且它被執行。
該錯誤顯然發生在 app.php 中最后一行代碼之后的某處:
$kernel->handle(Request::createFromGlobals())->send();
我想我必須配置的地方有一個開關。
編輯:
根據 GeLo 的建議,我將生產版本的路由添加到 app/config/routing.yml。
_welcome:
resource: "@AcmeDemoBundle/Resources/config/routing.yml"
prefix: /
我創建了 src/Acme/DemoBundle/Resources/config/routing.yml 的內容:
bla:
pattern: /
defaults: {_controller:AcmeDemoBundle:Demo:index}
在DemoController::indexAction()
我放了一個die(__FILE__)
;
沒有什么; 我仍然從 app.php 得到 404?
編輯關於答案:
./app/console --env=prod cache:clear
成功了。 注意 env 參數。
默認情況下,Symfony 2 附帶一個演示包,只能從開發環境中訪問。
生產環境不包含任何路由,所以出現 404 錯誤頁面是正常的。
編輯:
你確定你的包在 AppKernel.php 中啟用了嗎?
如果是,請使用以下命令清除緩存: ./app/console cache:clear
使用以下命令檢查路由是否啟用: ./app/console router:debug
而是更改所有者。
sudo chown www-data:www-data -R app/cache
sudo chown www-data:www-data -R app/logs
那就是讓瀏覽器擁有文件夾。 語法是:
chown <USER>:<GROUP> <SWITCH> <DIRECTORY>
我只是想為這類問題整合一些技巧,因為我現在用全新的 Symfony2 安裝來面對它。
作為全新安裝,您通常會在 /src/AppBundle 下獲得 AppBundle 以及 /src/Acme/DemoBundle 下的 AcmeDemoBundle
如果你想在 app_dev 上運行 AcmeDemoBundle ,同時在 app.php 上有一個應用程序(即 AppBundle 提供全新安裝)(並避免 404 ),你也可以這樣做:
在/app/config/routing_dev.yml中注釋以下行(如果有的話):
_main:
resource: routing.yml
在/app/config/routing.yml添加一個新路由(如果你沒有)
index:
pattern: /
defaults: { _controller: AppBundle:Default:index }
然后像其他人已經建議的那樣清空緩存並測試應用程序
1) http://your_application_path/web/
2) http://your_application_path/web/app_dev.php
如果第一個上一切正常,您應該得到一個帶有字符串“主頁”的白頁。 ( to edit this one go in /app/Resources/views/default/index.html.twig... Layout for this one is base.html.twig ) and, on the second one you should get the DemoBundle provided by Symfony2.
希望能幫助到你!
我只讓網絡服務器帳戶(即'master-chef'擁有/Symfony2/app/cache/prod目錄)來修復它。命令如下:
$sudo chown master-chef -R /var/www/Symfony2/app/cache/prod
在您的“web/app.php”文件中
$kernel = new AppKernel('prod', false);
將值更改為“真”。
$kernel = new AppKernel('prod', true);
現在您可以在生產模式下加載應用程序。
您的問題與 Symfony2 的緩存有關。 我有同樣的問題。 嘗試這個:
sudo php app/console cache:clear --env=prod --no-debug
sudo chmod 777 -R../sf2/
(sf2) 是我的項目的主目錄你完成了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.