symfony2 – 如何从“dev”切换到“prod”?

我下载了symfony2,我可以从app_dev.php开始运行它。

但是当我从app.php开始,然后我得到一个错误页面404。

app.php虽然是当然,它被执行。

错误发生在app.php的最后一行代码后面:

$kernel->handle(Request::createFromGlobals())->send(); 

我想有一个地方我必须configuration一个开关。

编辑

正如GeLo所build议的,我将生产版本的路由添加到app / config / routing.yml。

 _welcome: resource: "@AcmeDemoBundle/Resources/config/routing.yml" prefix: / 

我用内容创build了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中启用的吗?

如果是,请使用以下命令清除caching: ./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提供了新的安装),你也可以这样做:

/app/config/routing_dev.yml注释下列行(如果有的话):

 _main: resource: routing.yml 

/app/config/routing.yml中添加一个新的路由(如果你没有)

 index: pattern: / defaults: { _controller: AppBundle:Default:index } 

然后像其他人已经build议的那样清空caching并testing应用程序


1)http:// your_application_path / web /


2)http:// your_application_path / web / app_dev.php

如果一切都很好,你应该得到一个带有“主页”string的白页。 (编辑这个去/app/Resources/views/default/index.html.twig …这一个布局是base.html.twig),第二个,你应该得到由Symfony2提供的DemoBundle。

希望能帮助到你!

我只是让Web服务器帐户(即“主厨”拥有/ Symfony2 / app / cache / prod目录)来解决这个问题,命令如下:

 $sudo chown master-chef -R /var/www/Symfony2/app/cache/prod 

在你的“web / app.php”文件中

  $kernel = new AppKernel('prod', false); 

将该值更改为“true”。

  $kernel = new AppKernel('prod', true); 

现在可以在生产模式下加载应用程序。

你的问题与Symfony2的caching有关。 我也有同样的问题。 尝试这个:

  • sudo php app/console cache:clear --env=prod --no-debug
  • sudo chmod 777 -R ../sf2/ )是我的专家的主要目录

你完成了。