2017-02-15 22 views
0

Я использую Smyfony 3.2.3 и переключился с встроенного веб-сервера PHP на Apache (http://symfony.com/doc/current/setup/web_server_configuration.html, Apache 2.4.18). Он работает для корневой страницы Symfony (http://domain.com/, без маршрутизации Symfony), но когда я создаю контроллер с маршрутизацией (например, @Route ("/ development", name = "development")), я получил Apache 500 Внутренняя ошибка сервера. При запросе этой стороны (/ development) с встроенным веб-сервером PHP он отлично работает. В журнале Apache я не получаю сообщение об ошибке. PHP «display_error» включен, «error_reporting» - «E_ALL», и в файле php «error_log» нет messsage.Symfony 3 Apache 500 Внутренняя ошибка сервера

Любая идея в чем проблема?

Было бы неплохо получить помощь!

Спасибо!

+0

Ошибка 500 является общей ошибкой. Скорее всего, есть и другие проблемы, и, возможно, проблема с веточкой. Можете ли вы использовать URL-адрес DEV следующим образом: 'http: // domain.com/app_dev.php'. Тогда вы сможете увидеть, что такое ошибка. –

+0

Если я использую «http://domain.com/app_dev.php/development», он работает без ошибок. При вызове «http://domain.com/app.php/development» я получил перенаправление на «http://domain.com/development», и снова появляется ошибка 500. Я отключил это в конфигурации apache: " Опции -MultiViews RewriteEngine На RewriteCond% {REQUEST_FILENAME}! -f RewriteRule ^ (. *) $ app.php [QSA, L] ». Но ничего не изменилось. Можно ли изменить с app.php по умолчанию на app_dev.php? – user2625247

+0

Можете ли вы проверить содержимое журналов? Они расположены в 'var/logs' и должны быть' dev.log' и 'prod.log'. Сначала вы можете очистить файлы, а затем выполнить свой тест, пока не получите 500 ошибок, а затем проверьте эти файлы. Также запустите 'php bin/symfony_requirements' из командной строки. –

ответ

7

Похоже, ваша проблема заключается в том, что ваш кеш не был очищен в процессе производства. Выполните следующую команду:

php bin/console cache:clear --env=prod 

Затем запустите:

php bin/console debug:router -e=prod 

Который должен показать все свои производственные маршруты. Кстати бега:

php bin/console 

показывает все команды, которые можно запустить из командной строки, если вы должны смотреть на что-либо другое.

Надеюсь, это поможет.

+0

Спасибо! 'php bin/console cache: clear --env = prod' решил проблему! Замечательно! Как часто я могу очистить кеш? Каждый раз, когда я добавляю новые маршруты? Должен ли я делать это только для среды prod или для dev? – user2625247

+0

Примечание: 'php bin/console debug: router -e = prod' equals' php bin/console debug: router --env = prod'. Вы должны щелкнуть стрелку, кроме моего ответа, чтобы показать, что это правильно. –

+0

Было бы неплохо, если бы вы наконец ответили на мои вопросы. Большое спасибо! Как часто я могу очистить кеш? Каждый раз, когда я добавляю новые маршруты? Должен ли я делать это только для среды prod или для dev? – user2625247

0

та же проблема, что и у меня, и я исправил ее, делая то же самое, что говорят некоторые люди здесь. дайте полную правку папке var. В КОНЦЕ КОНЦОВ!

+0

правильный ответ ... – Aaron

 Смежные вопросы

  • Нет связанных вопросов^_^