Подтвердить что ты не робот

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.

4b9b3361

Ответ 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).