Я загрузил symfony2, и я могу запустить его, начиная с app_dev.php.
Но когда я начинаю с app.php, я получаю страницу с ошибкой 404.
app.php, хотя, конечно, есть, и он выполняется.
Ошибка происходит, по-видимому, где-то после последней строки кода в app.php:
$kernel->handle(Request::createFromGlobals())->send();
Я предполагаю, что есть переключатель, который мне нужно настроить.
EDIT :
Как предположил 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__)
;
ничего; Я все еще получаю 404 от app.php!?
EDIT относительно ответа:
./app/console --env=prod cache:clear
сделал трюк. рассмотрите параметр env.
По умолчанию Symfony 2 поставляется с демо-пакетом, доступным только из среды разработки.
Производственная среда не содержит никакого маршрута, так что это нормально, вы получаете страницу ошибок 404.
РЕДАКТИРОВАТЬ :
Вы уверены, что ваш пакет включен в AppKernel.php?
Если да, очистите кеш с помощью следующей команды: ./app/console cache:clear
Проверьте, ./app/console router:debug
ли маршрут с помощью следующей команды: ./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 / web /
2) http: // your_application_path / web / app_dev.php
Если на первом все будет хорошо, вы должны получить белую страницу со строкой «Домашняя страница». (чтобы отредактировать это, зайдите в /app/Resources/views/default/index.html.twig … Макет для этого – base.html.twig), а на втором вы получите DemoBundle, предоставленный 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);
Измените значение на «true».
$kernel = new AppKernel('prod', true);
Теперь вы можете загрузить приложение в режиме производства.
Ваша проблема связана с кешем Symfony2. У меня были те же проблемы. Попробуй это:
sudo php app/console cache:clear --env=prod --no-debug
sudo chmod 777 -R ../sf2/
(sf2) является основным справочником моего проекта Все готово.