29

我正在使用 php5-fpm 运行 nginx,并希望启用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(),但它没有显示任何效果。php.ini在更改文件后,我重新启动了 nginx 和 php5-fpm 。

4

4 回答 4

48

php.ini 对 php-fpm 没有任何作用。

如果您使用 php-fpm:您必须在与您的 Web 应用程序关联的 fpm 池配置中提供配置更改。这些位置取决于您的系统。大概的位置是:

  • /etc/php-fpm.d/mydomain.conf(如果事情已经布置得很整齐)
  • /etc/php-fpm.conf(如果您只使用一个 conf 用于 php-fpm)

你的配置路径与我的不同,所以四处看看你有什么。/etc/php-fpm.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

建议:不要在生产环境中使用这些选项。最好的祝愿。

于 2012-12-18T14:00:24.197 回答
12

如果您有/etc/php5/fpm/php.ini(在 Debian 中使用,Ubuntu 风格的配置),那么对这个文件的更改应该会生效,并且可以通过对特定/etc/php5/fpm/pool.d/*.conf文件进行更改来进一步覆盖每个池的配置。

于 2013-10-31T21:37:45.330 回答
7

在我的情况下,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

我没有在系统(Ubuntu 14.04)中将配置文件触摸为 php-fpm。

于 2015-05-30T15:41:48.043 回答
0

PHP-FPM 7 的更新(在 Debian 下)

  1. /etc/php/[VERSION]/fpm/pool.d
  2. 编辑文件www.conf(或者如果您设置了其他池,请编辑这些文件)。
  3. 你要php_flag[display_errors] = on
  4. 重启sudo service php[VERSION]-fpm restart
于 2021-12-17T08:00:32.063 回答