I have a PHP page that's erroring out somewhere (it loads blank white, no title or anything), but I cannot for the life of me get it to display errors. I have the following in my files, but the page still loads blank white. What can I do to get PHP to display errors? This is on PHP 5.5 on my own server, and I am editing the correct php.ini file (according to phpinfo()).
php.ini:
display_errors = on
error_reporting = E_ALL
.htaccess:
php_value error_reporting -1
Specific file in question:
ini_set('display_errors',1);
error_reporting(E_ALL);
Make sure to add it to the correct php.ini file. Some web hosters have configured their server such that a php.ini in the same directory as the html of php file will be executed. But this is not the default. If you are in Linux, try putting it into /etc/php5/apache2/php.ini or search on your harddisk for any php.ini.
Turns out display_errors was already set below my own edits, so php.ini was using the default value of Off instead of my value. Deleted my edits and fixed the spots that needed it, problem resolved.
Related
In my php.ini file I have the following line set:
error_reporting = E_ALL
display_errors is also turned on in the ini file.
However, this does not appear to be working correctly because I can only get PHP to display strict errors when I add the following to my PHP file:
ini_set('display_errors', 1);
error_reporting(-1);
I'm using Wampserver, why is this happening? I want PHP to display all errors no matter what the severity without having to include this code in every file.
WAMPServer, has 2 php.ini files
In the \wamp\bin\php\php{version}\ folder. This controls ONLY PHP CLI.
If you want to effect the Apache web server environment you should always use the menus to get to the correct file, as it changes as you change Apache/PHP versions
So
left click wampmanager->PHP->php.ini
and this will edit the correct file for the current Apache/PHP activated.
But by default error reporting and XDEBUG should be turned on
SOLUTION:
Bunyamin's comment was my solution.
display_errors for php5-fpm not working with nginx
The second answer of that question mentioned the /etc/php5/fpm/pool.d/*.conf files, in my case /etc/php5/fpm/pool.d/www.conf
There I added
php_flag[display_errors] = on
and now it works.
QUESTION:
I have already turned on error reporting in the /etc/php5/cgi/php.ini file and no errors are shown.
If I add
error_reporting(E_ALL);
ini_set('display_errors', 1);
to my PHP code, all the errors are shown.
Why doesn't it work if I turn on error reporting in the php.ini files and don't add that code snippet? Shouldn't the php.ini file do the same as the code?
Webserver: Lighttpd
OS: Raspbian Jessie
EDIT:
phpinfo() shows that display_errors is set to Off, but in the php.ini file its turned On.
My php.ini file: http://pastebin.com/1qeK310n
Output of phpinfo(): http://www.file-upload.net/download-11264468/phpinfo.htm.html
I have four suggestions.
First of all, make sure that you are editing the correct php.ini file. You can see which php.ini file is used with the function phpinfo().
Simply create a file, phpinfo.php, with the following content. When you load the page (http://yoursite.com/phpinfo.php), you can see the details about your PHP configuration.
<?php
echo phpinfo();
Secondly, make sure you set error_reporting to E_ALL to get full debug information (Suggested only in development).
Thirdly, is there anywhere in your application that you set display_errors to 0. Sometimes, especially in frameworks, this property is set to 0.
Lastly, sometimes Apache is configured in a way that a custom php.ini file located in the root directory of your webpage can override your global configuration. Then the change in global php.ini file would not affect your application.
You have to scroll down to where the display_errors is set to OFF an then turn it on (Don't uncomment and set to on, scroll down)
I download absolutely new, the last version of MAMP 3.5.
I go to phpInfo and it says the PHP version is 7.0.0 and Configuration File (php.ini) Path is: /Applications/MAMP/bin/php/php7.0.0/conf.
I go to php.ini in that path and change errors to on: display_errors = On. I check that: error_reporting = E_ALL.
I Stop Servers and Start Servers. I reload the page in the browser. I check phpInfo and now display_errors is on.
I do not see the errors.
I have checked all the solutions in the web, just to name a few:
MAMP Config help, display PHP errors
Why MAMP doesn't display errors?
how to display errors on MAMP?
I tried everything and I do not see PHP errors. What else can I do?
Preface your PHP code with this. It will force error display.
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Also check your .ini files in the following locations:
Applications/MAMP/bin/php/(PHP version)/conf/php.ini
Applications/MAMP/conf/php/(PHP version)/conf/php.ini
They should both be set for:
display_errors = On
EDIT: I should clarify this, as it may be a point of confusion: You should restart your MAMP server when the changes are complete.
I changed my .ini files located as Bangkoian stated above. In MAMP PRO 3.5 there is an additional or third .ini file that needs to be changed.
This file can only be accessed through the MAMP Pro File menu . I'm not sure where it actually is in the actual file structure.
Access the .ini by: Command +4 or
File > Edit Template > PHP > Version Your using
Find around line 271:
error_reporting = MAMP_error_reporting_MAMP
and change to E_ALL
error_reporting = E_ALL
under error_reporting look for display_errors and change:
display_errors = MAMP_display_errors_MAMP
and change to On
display_errors = On
You'll end up needing to change these line in 3 Different places
Applications/MAMP/bin/php/(PHP version)/conf/php.ini
Applications/MAMP/conf/php/(PHP version)/conf/php.ini
and through MAMP Pro itself:
Command +4 or
File > Edit Template > PHP > Version Your using
After the third method was added it worked as expected, I'm also using PHP 7. Make sure Debugger Activate Xdebug it checked under the PHP tab.
I am running the latest version of MAMP on Snow Leopard.
My php.ini file has been configured to display errors. display_errors = on. The phpinfo(); page displays the status of error reporting, it is on. I have restarted my web server several times.
I've searched through Google, and I cannot find any similar problem. Everyone just says to do exactly what I have done, but it is not working. The pages will just remain blank, (with no reporting), if I intentionally place errors.
Any thoughts as to what the problem may be?
For any future posters who run into this issue...
I was having the same issue and found that I was making changes to the wrong php.ini files. Run phpinfo and find the path to the active php.ini file to make sure you're editing the correct one.
On my installation of mamp there were multiple instances of the /conf directory with php.ini files. The php.ini files I needed were located in the /bin/php/php[version#]/conf directory and not the MAMP/conf directory.
Exact path to the php.ini file I needed to edit:
Applications/MAMP/bin/php/php5.4.10/conf/php.ini
Change display_errors = Off to display_errors = On
In addition to the display_errors directive, which has to be set to On, you might have to configure error_reporting.
For instance, you can use this in your php.ini file :
error_reporting = E_ALL
Another should, useful to test, might be to place this kind of portion of PHP code at the beginning of your script :
error_reporting(E_ALL);
ini_set('display_errors', 'On');
This is useful when you don't have access to php.ini and/or just want to test quickly, without having to restart the webserver.
As a sidenote, when it comes to displaying errors, the Xdebug extension is really great : when it's installed/enabled/configured, instead of just having an error message, you'll get the full stack-trace, which is much more useful ;-)
I recently experienced the same problem - in my case I had downloaded a client's Wordpress site from their live server that turned out to have been tampered with by malicious script insertion that was overriding the error reporting in order to escape detection.
A little late to help the OP(!), but perhaps of use to future searchers.
There might have a .htaccess file in a directory that overrides the display_errors setting set in php.ini. From your post I assume you didn't explicitly add this but a few frameworks do this by default so might be added that way. Look for a line like this in your .htaccess file:
php_value display_errors 0
and change the value to 1.
If you have several php sdks with several versions, first make it sure you are editing correct php.ini file. If you were right add this two lines at the beginning of the code.
error_reporting(E_ALL);
ini_set('display_errors', 'On'); // or ini_set('display_errors', 1);
Here's a twist to the same answer. I had the same issues, just copied and pasted the ini path from the php info page and still same problems...
turns out I made a syntax mistake when I edited my 'error_reporting' block in the php.ini.
I had E_NOTICE rather than ~E_NOTICE.
:(
So mistakes can happen in the php.ini if you were editing it and totally forgot you edited something.
I am trying to get my install of PHP under IIS to display errors, but I'm having no luck at all. I tried
error_reporting(E_ALL);
in the script, and nothing shows up, just a blank screen.
I tried editing my PHP.ini file and setting
error_reporting = E_ALL
display_errors = On
Also tried
error_reporting = E_ALL
display_errors = stdout
but nothing is showing up on the screen at all when my scripts throw errors.
Any advice?
Ensure that you're editing the PHP file in the correct location; IIS can look for a php.ini file in C:\WINDOWS rather than the install location of the PHP ISAPI or CGI module. Check the output of phpinfo(); to determine you're editing the correct php.ini file. Also, you need to restart the IIS service (or the computer overall) before those changes will be put into effect.
Sorry to resurrect a dead post but I had a similar issue and solved it by doing this in my PHP code:
ini_set('display_errors',1);
error_reporting(E_ALL);
This obviated the need to edit the server config and also allowed me to do this in just the method that I thought was problematic.
Perhaps IIS is blocking your errors from displaying.
Try:
Open inetmgr (Start -> Run -> inetmgr -> enter)
click on the site
select error pages (double click on it)
on the right hand side click on “Edit Feture Settings”
In the dialog that appears, select “Detailed Errors”.
Save and close.
Restart IIS just to be sure.
Posted for the sake of googlers like me.
on php.ini in the php installation path change the value of error display to on