Включить компонент отладки в Symfony 2.3

Прежде чем открывать тикет в репозитории symfony, я просто хотел проверить, не пропустил ли я что-то очевидное.

Я хочу включить компонент отладки (для этих хороших экранов исключений и т. д.).

Я только что установил symfony, используя

composer create-project symfony/framework-standard-edition symfony 2.3.1

В целях тестирования я добавил исключение в WelcomeController:

class WelcomeController extends Controller
{
    public function indexAction()
    {
        throw new \Exception("test");
        /*
         * The action's view can be rendered using render() method
         * or @Template annotation as demonstrated in DemoController.
         *
         */
        return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
    }
}

Вместо того, чтобы показывать мне (старый) экран исключения, я просто получаю 502 Bad Gateway от nginx.

app_dev.php:

//$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
$loader = require_once __DIR__.'/../app/autoload.php';
Debug::enable(-1);

require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
//$kernel->loadClassCache();
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

Обновлять:

Однако обработка ошибок PHP работает:

IDoNotExist();

выдает серый экран ошибки symfony.


person apfelbox    schedule 03.07.2013    source источник
comment
Почему у вас есть Debug::enable(-1); и Request::enableHttpMethodParameterOverride(); в app_dev.php?   -  person Dani Sancas    schedule 03.07.2013
comment
Я не менял Request:: enableHttpMethodParameterOverride() он есть в стоке app_dev.php. Debug::enable(-1) только для того, чтобы убедиться, что все сообщения об ошибках регистрируются.   -  person apfelbox    schedule 03.07.2013
comment
О, я не знал о Debug::enable(-1);, хорошее замечание. И что касается Request:: enableHttpMethodParameterOverride(), у меня его нет в моем app_dev.php (и я использую SF2.3)   -  person Dani Sancas    schedule 03.07.2013
comment
Вы удалили его? github.com/symfony/symfony-standard/ блоб/v2.3.1/веб/   -  person apfelbox    schedule 04.07.2013
comment
Не обращай внимания на мой комментарий, приятель. Я открыл свой проект, чтобы найти эту строку и пересмотреть свою историю git, и... она, по-видимому, никогда не исчезала, хахахахаха. Простите, может я не так посмотрел ;)   -  person Dani Sancas    schedule 04.07.2013


Ответы (1)


Хорошо, проблема была в ошибке в конфиге nginx.

Журнал ошибок nginx показал следующее:

2013/07/03 14:33:05 [error] 22792#0: *15 upstream sent too big header while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /test/symfony_2.3.1/web/app_dev.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9111", host: "localhost"

Я исправил это, добавив

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;

для server {} в конфигурации nginx (для справки http://forum.nginx.org/read.php?2,188352). Впервые это произошло с 2.3.0, 2.2.3 работает без этого исправления.

Билет, связанный с этой проблемой: https://github.com/symfony/symfony/issues/8413

person apfelbox    schedule 03.07.2013