Why MAMP doesn't display errors?

2019-01-22 01:28发布

问题:

OK this is getting very frustrating. MAMP used to display errors but then stopped. I decided to do a fresh install of it as I couldn't figure it out. I check my PHP version, running 5.4.4 and go to that folder and change the php.ini to this:

error_reporting  =  E_ALL
display_errors = On

Still no errors showing. I go through all the folders and change all php.ini files, just in case. Nothing. I fix the forced error and dump out phpinfo(), check the error section and display_errors is Off. What the hell.

I place error_reporting(E_ALL); ini_set('display_errors', 'on'); at the start of the PHP file and phpinfo() again. Local value is now On, master is still Off. Force a PHP error, and still get Server Error not PHP error.

Anybody have any insight? I have a bug somewhere in some code and cannot find it, would love for PHP to just tell me.

回答1:

MAMP sets up a few different php.ini files for the server, the client etc. Check in your phpinfo() which php.ini actually is read. Looks like you're editing the wrong one.



回答2:

There are two php.ini files on MAMP. You should change both php.ini files.

  1. Applications/MAMP/bin/php/'php version you are using(php5.5.10)'/conf/php.ini
  2. Applications/MAMP/conf/php/'php version you are using(php5.5.10)'/conf/php.ini

Then change:

display_errors = Off 

to:

display_errors = On


回答3:

If you're using MAMP PRO, you've to enable Error handling (PHP) in the UI interface which should contain at least two the main options: 'Display startup errors' and set output 'To: Display'.

Display startup errors option is equivalent to display_startup_errors (in PHP) and To: Display to display_errors.

See below:



回答4:

Change the setting in your php.ini file. The file is located in MAMP > conf > php5 > php.ini

Look for display_errors = Off and change to display_errors = On

After that you need to restart your Apache and MySQL servers for the change to take effect.



回答5:

MAMP PRO users can visit the PHP tab in UI and make sure Log Errors: to screen is checked: screencast



回答6:

If you are using MAMP version 3.2.2 then you only need to change one php.ini file:

Mac: Applications/MAMP/conf/'(php7.0.9)'/php.ini

Windows: C:\MAMP\conf\PHP Version you use'(php7.0.9)'\php.ini

I know this is an old post but MAMP keeps changing their configuration of the files so I hope this helps.



回答7:

Here's a 2018 update to this problem. First, I'm having the same trouble and found this thread. I used phpinfo() and found yet another location of a php.ini file. Here are the paths (I work on a Mac):

/Applications/MAMP/bin/php/[php version]/conf/php.ini

/Applications/MAMP/conf/php/[php version]/php.ini

and ...

/Library/Application Support/appsolute/MAMP PRO/conf/php.ini

The phpinfo() page lists two sources for the php.ini:

  • Configuration File (php.ini) Path
    /Applications/MAMP/bin/php/[php version]/conf
  • Loaded Configuration File /Library/Application Support/appsolute/MAMP PRO/conf/php.ini

I ended up changing all three, adding error_reporting(E_ALL) to some pages, restarting the server (even rebooted the machine) and still cant get it to display any error messages.

i'm not sure where to go from here. Any ideas?



回答8:

Also there is a template saved in MAMP of the php.ini. Go to File > Edit Template > PHP > Your Version.



回答9:

On MAMP 3.2.0 and PHP 7 you'll need to target php.ini-production and change the value to Production Value = On



回答10:

For newer versions of MAMP, the config file is stored in Appliations/MAMP/bin/php/[php version]/conf.

Andrew Nagy pointed me in the right direction with his answer, but it wasn't quite correct for my installation of MAMP. Why they're different, I can't tell, but here we are.

If anyone is stuck, the easiest thing to do is to just <?php echo phpinfo(); ?> in the index file of the application and look for the loaded php.ini directory.