Display_errors для php5-fpm не работает с nginx
Я запускаю nginx с php5-fpm и хочу включить display_errors
.
Я запускаю виртуальный хост, поэтому, пожалуйста, помогите сделать способ включения display_errors
, display_startup_errors
.
Я попытался изменить /etc/php5/fpm/php.ini
.
;display_errors
Default Value: On
Development Value: On
;Production Value: Off
;display_startup_errors
Default Value: On
Development Value: On
;Production Value: Off
;error_reporting
Default Value: E_ALL
Development Value: E_ALL
;Production Value: E_ALL & ~E_DEPRECATED
;html_errors
Default Value: On
Development Value: On
;Production value: Off
;log_errors
Default Value: On
Development Value: On
;Production Value: On
Требуется ли иметь несколько файлов ini
для каждого другого виртуального хоста, делает ли vhost какое-либо значение для конфигурации php?
Я также пытаюсь set_ini()
, но это не проявляет никакого эффекта. И я перезапустил nginx и php5-fpm после внесения изменений в файл php.ini
.
Ответы
Ответ 1
php.ini ничего не делает для php-fpm.
Если вы используете php-fpm:, вы должны указать изменение конфигурации в конфигурации пула fpm, связанной с вашим веб-приложением. Где они расположены, зависит от вашей системы. Возможные местоположения:
-
/etc/php-fpm.d/mydomain.conf
(если все было настроено аккуратно)
-
/etc/php-fpm.conf
(если вы используете только один conf для php-fpm)
Ваши пути конфигурации отличаются от моих, так что тыкайте, чтобы увидеть, что у вас есть. Не вносите изменений в /etc/php-fpm.conf
, если подходящий conf существует в /etc/php-fpm.d/
.
Если вы не используете php-fpm: обновите php.ini с правильной конфигурацией.
Исправить вашу конфигурацию: В конфигурации, указанной в вопросе, вы имеете документацию без комментирования, а не при условии правильных настроек. Вам лучше отменить эти изменения, потому что PHP их не понимает.
Правильными строками для php-fpm являются:
; enable display of errors
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
Правильными строками для нормального php являются:
; enable display of errors
display_errors = On
display_startup_errors = On
Совет.. Не используйте эти параметры в рабочей среде. С наилучшими пожеланиями.
Ответ 2
Если у вас есть /etc/php5/fpm/php.ini
(используется в конфигурации Debian, Ubuntu), изменения в этот файл должны вступить в силу, и эта конфигурация может быть переопределена для каждого пула, внося изменения в определенные файлы /etc/php5/fpm/pool.d/*.conf
.
Ответ 3
В моем случае ошибки Zend и NGinX - php5 fpm работают следующим образом:
Только я ввел public/index.php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
Без If(){...}
Но если только поставить выше код, отобразить ошибку, это даст следующее:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /usr/local/nginx/html/ZendSkeletonApplication/module/Album/src/Album/Controller/AlbumController.php on line 12
Другое дело! Настройте этот код:
'display_not_found_reason' => true,
'display_exceptions' => true,
в module.config.php:
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
'display_not_found_reason' => true,
'display_exceptions' => true,
),
),
Я получаю все ошибки error.log на экране:
Fatal error: Uncaught exception 'Zend\View\Exception\InvalidArgumentException' with message 'Invalid path provided; must be a string, received boolean' in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php:201 Stack trace: #0 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php(149): Zend\View\Resolver\TemplatePathStack->addPath(true) #1 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ViewTemplatePathStackFactory.php(38): Zend\View\Resolver\TemplatePathStack->addPaths(Array) #2 [internal function]: Zend\Mvc\Service\ViewTemplatePathStackFactory->createService(Object(Zend\ServiceManager\ServiceManager), 'viewtemplatepat...', 'ViewTemplatePat...') #3 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(939): call_user_func(Array, Object(Zend in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 946
Я не касался конфигурационного файла как php-fpm в системе (Ubuntu 14.04).