Search code examples
phpiiserror-log

PHP error_log: Won't write to specified file


Running PHP under IIS on my Win XP Pro system. I cannot debug my scripts easily because get PHP to write to the error log I specify. Here are the relevant (I think) php.ini entries:

error_reporting  =  E_ALL & E_STRICT
display_errors = Off
log_errors = On
error_log = "c:/php5/log/php.log"

I had the slashes going the Windows/DOS way before. In either case, it did not write to the file php.log in that directory. The log file is writable by IUSR_SERVERNAME, the directory is writable by IUSR_SERVERNAME, the parent directory is writable by IUSR_SERVERNAME. I'm sure I'm missing something stupid.

Any tips?


Solution

  • Have you tried in the php file itself?

    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
    ini_set('error_log', "c:/php5/log/php.log");
    

    Update: The problem is that you are using a bitwise AND where you should use a bitwise OR

    Try this

    var_dump(E_ALL);
    var_dump(E_STRICT);
    var_dump(E_ALL | E_STRICT);
    var_dump(E_ALL & E_STRICT);
    

    output: int(6143) int(2048) int(8191) int(0)

    So basically you are writing

    error_reporting  =  0
    

    Effectively turning off the error reporting. Change the & for an | in your php.ini and you should be ok.