I am running nginx with php5-fpm and want to enable the display_errors
.
I am running a virtual host, so please help in making a way to enable display_errors
, display_startup_errors
.
I tried modifying /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
Is it require to have multiple ini
files for each different virtual host, does vhost makes any difference for php configuration ?
I am also trying set_ini()
, but it is not showing any effect. And I restarted nginx and php5-fpm after making changes in php.ini
file.
The php.ini does nothing for php-fpm.
If you are using php-fpm: You must provide the configuration change in the fpm pool config associated with your web application. Where these are located depends on your system. The probably locations are:
/etc/php-fpm.d/mydomain.conf
(if things have been set up neatly)
/etc/php-fpm.conf
(if you are only using one conf for php-fpm)
Your config paths are different from mine, so poke around to see what you have in there. Don't make changes in /etc/php-fpm.conf
if a suitable conf exists in /etc/php-fpm.d/
.
If you are not using php-fpm: Update php.ini with the correct configuration.
Correct your configuration: In the configuration shown in the question, you have uncommented documentation rather than provided the correct settings. You had better undo those changes, because PHP won't understand them.
The correct lines for php-fpm are:
; enable display of errors
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
The correct lines for normal php are:
; enable display of errors
display_errors = On
display_startup_errors = On
Advice: Do not use these options in a production environment. Best wishes.
If you have /etc/php5/fpm/php.ini
(used in Debian, Ubuntu style config) then changes to this file should take effect, and that configuration may be further overridden per pool by making changes to specific /etc/php5/fpm/pool.d/*.conf
files.
In my case Zend errors and NGinX - php5 fpm, work like this:
Only I put in public/index.php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
Without If(){...}
But If only to put above code, display error, will give this:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /usr/local/nginx/html/ZendSkeletonApplication/module/Album/src/Album/Controller/AlbumController.php on line 12
Another thing! Set up this code:
'display_not_found_reason' => true,
'display_exceptions' => true,
in module.config.php like this:
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
'display_not_found_reason' => true,
'display_exceptions' => true,
),
),
I get all errors of an error.log on screen:
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
I didn't touch config file as php-fpm in system (Ubuntu 14.04).