Я загрузил 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()
я разместил a die(__FILE__)
;
ничего; Я все еще получаю 404 из app.php!?
ИЗМЕНИТЬ ответ:
./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.
Как новая установка, вы обычно получаете 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" принадлежит директории /Symfony 2/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) является основным каталогом моего proyectВы закончили.
chmod 777 -R
правда? НЕ ДЕЛАЙТЕ ЭТО, ЕГО ОПАСНОСТЬ БЕЗОПАСНОСТИ.