On OSX/MacOS do the following in a Terminal window:
Run php --ini
at the prompt by typing it and pressing enter
Reports something like:
Configuration File (php.ini) Path: /etc
Loaded Configuration File: (none)
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed: (none)
...this is because in /etc there is a file called /etc/php.ini.default as an example and to show it is not in use. You need to copy that file to the name php expects so that you can edit it, like this:
Type:
$ sudo cp /etc/php.ini.default /etc/php.ini (and enter your password)
...then you will see if you run php --ini
again that it now sees your new file:
Typing this: php --ini
at the prompt should report this:
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed: (none)
...now edit /etc/php.ini - you want to make sure the following lines (NOT the same line starting with a semi-colon ';') are exactly as follows:
log_errors = On
(this will turn the logging engine on)
Then, in this section:
; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog
If you want to log to the syslog (or Windows Event Log on Windows) then ;error_log = syslog
should become error_log = syslog
However, if as you say, you want to log to a file, you uncomment by removing the leading semi colon to make ;error_log = php_errors.log
become error_log = php_errors.log
or using a full path to place it where you want.
Good luck
locate php.ini
– Pekkaphp --ini
(run in terminal window). Because if there is no php.ini both of those will report the Configuration File Path as/etc
(at least on my OS X 10.8 install). If no configuration file is loaded, then you should try the answer by mac – Jason Sphp -i | grep php.ini
– user8389458