ID:               31419
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mfoxx at hotmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         PHP options/info functions
 Operating System: Debian 3.x
 PHP Version:      5.0.3
 New Comment:

Does this happen with PHP 4.3.10 ?



Previous Comments:
------------------------------------------------------------------------

[2005-02-28 23:24:39] mfoxx at hotmail dot com

I just installed the new CVS snapshot of this, and I am now seeing a
different behavior, but still not the correct one.  Now, no matter
whether I specify an error_log in php.ini or not, ALL php errors are
going to the each  virtual-host specific apache error log.  I can't
override it with a valid error_log setting in php.ini, nor can I
override it in code, as my original bug report submitted that I had
tried.

------------------------------------------------------------------------

[2005-02-28 21:08:19] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

can not reproduce

------------------------------------------------------------------------

[2005-01-10 15:50:18] mfoxx at hotmail dot com

Apache 2.0.52, built from source, and PHP 5.0.3 built from source, on a
Debian 3.0 woody linux distro (also built from source).

------------------------------------------------------------------------

[2005-01-10 14:45:46] [EMAIL PROTECTED]

What apache version?


------------------------------------------------------------------------

[2005-01-05 19:12:11] mfoxx at hotmail dot com

Description:
------------
FYI:  I am running a server where I built from source the apache and
PHP binaries, so I am not susceptible to the problems other bugs
reported where they might have used a pre-packaged binary with some
other unexplained behavior.

If I set a value for error_log in my php.ini (to /home/php.errors, for
instance), PHP correctly logs any errors encountered (in ANY of my
<virtualhost> sites) there to that single file.

However, when I do in a script (because error_log is said in the manual
to be modifiable as PHP_INI_ALL, which means i can change it anywhere):

ini_set("error_log","/path/to/some.log.file");

or when I do:

php_value error_log "/path/to/some.log.file"

in my httpd.conf inside a <virtualhost>, or my .htaccess file for a
particular site, the VALUE is apparently "changed", but PHP doesn't
seem to respect it, when coming across an error later in code. 
Furthermore, PHP will not even write the errors to the original
error_log value set before in the php.ini.  It will instead write them
to apache's error log for that particular <virtualhost>.

As you can see in my "reproduce code" i change the error_log variable
using ini_set(), then i do phpinfo(), and verify that it DOES IN FACT
have the new changed value in its output, overriding the default that I
set in my php.ini file.  And then I call a function which doesn't exist,
which should force a PHP error.

The error does occur, and it DOES get logged, just not to the right
file, it now gets logged to the APACHE error log file, not even the
original php.ini error_log setting, which I find very strange.

Reproduce code:
---------------
<?php

ini_set("error_log","/path/to/php.err");

phpinfo();

echo nonexistent();

?>

Expected result:
----------------
I expected for the value of error_log to be changed, so that when I
force a PHP error, calling a "nonexistent()" function, I should get the
error logged into my php.err file as specified in ini.set.

Actual result:
--------------
the error (call to undefined function) DOES get logged, but to the
wrong file... it gets logged to the Apache error file for that
particular <virtualhost>.  It doesn't even get logged to the original
php.ini file's setting for error_log.

But, as I stated before, if I just set the value in php.ini, and DON'T
try to modify it in code (or httpd.conf), then the error gets logged to
the location I specified in php.ini.

So, basically, when you try to modify the error_log setting at runtime,
it irreversibly starts the PHP error logging to the Apache error log, no
matter what you specify.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=31419&edit=1

Reply via email to