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-параметр.
6 ответов:
производственная среда не содержит никакого маршрута, поэтому обычно вы получаете страницу ошибки 404.
EDIT:
вы уверены, что ваш пакет включен в AppKernel.php ?
Если да, очистите кэш с помощью следующей команды :
./app/console cache:clearпроверьте, включен ли маршрут с помощью следующей команды :
./app/console router:debug
вместо этого измените владельца.
sudo chown www-data:www-data -R app/cachesudo 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-debugsudo chmod 777 -R ../sf2/(sf2) - это основной каталог моего проектаты молодец.
Comments