2016-01-11 3 views
3

Я использую последние версии PHP (7.0.2) и xdebug (2.4.0RC3) с phpstorm 9.0.2 и когда я начала отладки я сразу получить502 Bad Gateway при отладке PHP 7 Xdebug 2.4.0RC3 Mac OS

error "502 Bad Gateway" 

Иногда мне удается уйти через несколько строк кода, но тогда я все равно получаю ошибку.

Когда у меня были предыдущие версии PHP (5.6) и xdebug, все было замечательно.

P.S. php, nginx и xdebug установлены с доморощенным.

+0

Я только что разместил аналогичный вопрос здесь: http://stackoverflow.com/questions/37501419/nginx-php-fpm-bad-gateway-only-when-xdebug-server-is-running (только разница в использовании докеров и другой версии php) –

ответ

0

Вы можете попробовать это: открыть php.ini, жаль, что я не знаю, где она расположена в MacOS, в Ubuntu он находится на

/etc/php/7.0/fpm/php.ini 

открыть его с помощью вашего любимого текстового редактора с необходимыми привилегиями для сохранения файлов конфигурации. Перейдите в раздел xdebug и проверьте, правильно ли вы настроили его. В моем случае это выглядит внизу. Обратите внимание, что путь к xdebug.so в вашем случае может быть другим.

[Xdebug] 
zend_extension="/usr/lib/php/20151012/xdebug.so" 
xdebug.remote_enable=1 
xdebug.remote_port=9000 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="\tmp" 
xdebug.idekey="PHPSTORM" 
xdebug.remote_autostart=1 
xdebug.remote_host=192.168.10.10 
xdebug.remote_mode=req 
xdebug.remote_connect_back=1 
xdebug.max_nesting_level=200 
xdebug.var_display_max_depth=1000 
xdebug.var_display_max_children=256 
xdebug.var_display_max_data=4096 

;this line below to prevent debug stop timeout 
request_terminate_timeout=600s 

Другое дело, чтобы проверить в php.ini является

max_execution_time = 600 

Я установил его в секундах, как указано выше для предотвращения остановки сеанса отладки по умолчанию он установлен на 30 сек

Следующая вещь вам нужно проверить конфигурацию nginx. Я добавил в основной раздел nginx.conf http эти строки

http { 

    proxy_connect_timeout 600s; 
    proxy_send_timeout 600s; 
    fastcgi_read_timeout 600s; 
    proxy_read_timeout 600s; 
    fastcgi_buffers 8 16k; 
    fastcgi_send_timeout 600s; 
    fastcgi_buffer_size 32k; 

    #other standard settings below... 

Я добавил их, чтобы дать мне больше времени для отладки сессии, поэтому он не будет остановлен в 600 секунд.

После редактирования. Перезапустите php7.0-fpm и nginx. Я не знаю, как это делается в MacOS в Ubuntu это делается через:

sudo service php7.0-fpm reload 
sudo service php7.0-fpm restart 
sudo service nginx reload 
sudo service nginx restart 

Может быть, это излишество, чтобы перезагрузить и перезапустить, но страховаться :)

Также обратите внимание на вашу ошибку .log файлов для nginx В Ubuntu они размещены в/var/logs/nginx/ . error.yourdomain.log перейдите к последним строкам и посмотрите, что произошло. Надеюсь, это поможет.