symfony2-как переключиться с" dev "на"prod"?



Я загрузил symfony2 и я могу запустить его, начиная с app_dev.РНР.



но когда я начинаю с приложения.php, то я получаю сообщение об ошибке страницы 404.



приложение.php, хотя, конечно, есть, и он выполняется.



ошибка происходит, по-видимому, где-то после последней строки кода в приложении.php:



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


Я думаю, что есть переключатель где-то я должен настроить.



EDIT:



как предложил GeLo I добавлено маршрутизации для производства версии приложения/конфигурации/маршрутизации.в формате 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__);



ничего; я все еще получаю 404 от приложения.на PHP !?



редактировать относительно ответа:



./app/console --env=prod cache:clear


сделал свое дело. обратите внимание на env-параметр.

586   6  

6 ответов:

производственная среда не содержит никакого маршрута, поэтому обычно вы получаете страницу ошибки 404.

EDIT:

вы уверены, что ваш пакет включен в 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.

в качестве новой установки вы обычно получаете AppBundle под /src / AppBundle вместе с AcmeDemoBundle под /src / Acme / DemoBundle

Если вы хотите запустить AcmeDemoBundle на app_dev и, в то же время, иметь приложение ( т. е. AppBundle с новой установкой ) на app.php (и избежать 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/веб/


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

Если все в порядке на первом вы должны получить белую страницу со строкой " Домашняя страница." ( чтобы отредактировать это, перейдите в /app/Resources/views/default / index.формат html.прут... Макет для этого является базовым.формат html.twig) и, на втором вы должны получить DemoBundle, предоставленный Symfony2.

надеюсь, что это помогает!

я исправил это, просто разрешив учетной записи веб-сервера (т. е. "Мастер-Шеф" владеет каталогом /Symfony2/app/cache/prod. Команда, как показано ниже:

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

в вашем " web / app.php " file

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

измените значение на "true".

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

теперь вы можете загрузить приложения в рабочем режиме.

ваша проблема связана с кэшем Symfony2. У меня были такие же проблемы. Попробуйте это:

  • sudo php app/console cache:clear --env=prod --no-debug
  • sudo chmod 777 -R ../sf2/ (sf2) - это основной каталог моего проекта

ты молодец.

Comments

    Ничего не найдено.