display_errors stdout not working in a .htaccess file [message #170573] |
Mon, 08 November 2010 21:35 |
yawnmoth
Messages: 5 Registered: September 2010
Karma: 0
|
Junior Member |
|
|
I have a .htaccess file that contains only one line:
php_flag display_errors on
Only problem: Errors aren't being displayed as I'd expect. Any ideas
as to why? Is there some setting in httpd.conf that can be used to
prevent errors from displaying?
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170575 is a reply to message #170573] |
Mon, 08 November 2010 22:01 |
yawnmoth
Messages: 5 Registered: September 2010
Karma: 0
|
Junior Member |
|
|
On Nov 8, 3:35 pm, yawnmoth <terra1...@yahoo.com> wrote:
> I have a .htaccess file that contains only one line:
>
> php_flag display_errors on
>
> Only problem: Errors aren't being displayed as I'd expect. Any ideas
> as to why? Is there some setting in httpd.conf that can be used to
> prevent errors from displaying?
If PHP was running as CGI I'd have to modify php.ini in the
appropriate directory (or the "root" php.ini) but PHP isn't running as
CGI - it's running as mod_php.
Also, according to phpinfo(), display_errors's local value is On while
the master value is Off. So why aren't I seeing any errors?
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170576 is a reply to message #170573] |
Mon, 08 November 2010 22:02 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
yawnmoth schrieb:
> I have a .htaccess file that contains only one line:
>
> php_flag display_errors on
>
> Only problem: Errors aren't being displayed as I'd expect.
// Does this produce error output?
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
echo $noSuchVar;
Check the output of phpinfo():
- does display_errors have the expected value there?
- what's the value of error_reporting?
And does PHP run as an Apache module or (Fast)CGI? In the latter case,
you cannot set php directives in .htaccess.
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170577 is a reply to message #170573] |
Mon, 08 November 2010 23:08 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 11/8/2010 4:35 PM, yawnmoth wrote:
> I have a .htaccess file that contains only one line:
>
> php_flag display_errors on
>
> Only problem: Errors aren't being displayed as I'd expect. Any ideas
> as to why? Is there some setting in httpd.conf that can be used to
> prevent errors from displaying?
What about error_reporting?
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170579 is a reply to message #170576] |
Mon, 08 November 2010 23:43 |
Jim Wigginton
Messages: 2 Registered: November 2010
Karma: 0
|
Junior Member |
|
|
On Nov 8, 4:02 pm, Thomas Mlynarczyk <tho...@mlynarczyk-webdesign.de>
wrote:
> yawnmoth schrieb:
>
>> I have a .htaccess file that contains only one line:
>
>> php_flag display_errors on
>
>> Only problem: Errors aren't being displayed as I'd expect.
>
> // Does this produce error output?
> ini_set( 'display_errors', 1 );
> error_reporting( E_ALL | E_STRICT );
> echo $noSuchVar;
That does indeed yield an error.
> Check the output of phpinfo():
> - does display_errors have the expected value there?
The local value is on wheras the master value is off.
> - what's the value of error_reporting?
Local value is 0, master value is 30711.
> And does PHP run as an Apache module or (Fast)CGI? In the latter case,
> you cannot set php directives in .htaccess.
The server API is "Apache 2.0 Handler". I assume that's an Apache
module.
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170580 is a reply to message #170577] |
Mon, 08 November 2010 23:46 |
Jim Wigginton
Messages: 2 Registered: November 2010
Karma: 0
|
Junior Member |
|
|
On Nov 8, 5:08 pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
> On 11/8/2010 4:35 PM, yawnmoth wrote:
>
>> I have a .htaccess file that contains only one line:
>
>> php_flag display_errors on
>
>> Only problem: Errors aren't being displayed as I'd expect. Any ideas
>> as to why? Is there some setting in httpd.conf that can be used to
>> prevent errors from displaying?
>
> What about error_reporting?
I've tried setting error_reporting with the following:
php_flag error_reporting 30719
php_flag error_reporting E_ALL
The former is the constant of E_ALL per <http://php.net/manual/en/
errorfunc.constants.php>. Neither work. phpinfo() says that the
local value of error_reporting is 0 whereas the master value is 30719
so I'm thinking that's the problem. I just don't know where
error_reporting is getting overwritten. The file I'm accessing is in
the exact same directory as the .htaccess file.
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170581 is a reply to message #170580] |
Tue, 09 November 2010 00:00 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 11/8/2010 6:46 PM, Jim Wigginton wrote:
> On Nov 8, 5:08 pm, Jerry Stuckle<jstuck...@attglobal.net> wrote:
>> On 11/8/2010 4:35 PM, yawnmoth wrote:
>>
>>> I have a .htaccess file that contains only one line:
>>
>>> php_flag display_errors on
>>
>>> Only problem: Errors aren't being displayed as I'd expect. Any ideas
>>> as to why? Is there some setting in httpd.conf that can be used to
>>> prevent errors from displaying?
>>
>> What about error_reporting?
>
> I've tried setting error_reporting with the following:
>
> php_flag error_reporting 30719
> php_flag error_reporting E_ALL
>
> The former is the constant of E_ALL per<http://php.net/manual/en/
> errorfunc.constants.php>. Neither work. phpinfo() says that the
> local value of error_reporting is 0 whereas the master value is 30719
> so I'm thinking that's the problem. I just don't know where
> error_reporting is getting overwritten. The file I'm accessing is in
> the exact same directory as the .htaccess file.
You can't use E_ALL in your .htaccess file - it's only known to PHP, not
to Apache.
But your problem is that php_flag is just that - a flag, on or off.
What you need is php_value for error_reporting.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170600 is a reply to message #170579] |
Tue, 09 November 2010 19:40 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Jim Wigginton schrieb:
>> // Does this produce error output?
>> ini_set( 'display_errors', 1 );
>> error_reporting( E_ALL | E_STRICT );
>> echo $noSuchVar;
>
> That does indeed yield an error.
So it's not an "output problem" but a config problem.
[display_errors]
> The local value is on wheras the master value is off.
Then there should be error output, unless error_reporting "forbids" it
(see farther below). (Very stupid question: are you *sure* that an error
is indeed produced? What happens if you remove either one or both of the
the ini_set() and error_reporting() lines in my above test code?)
[error_reporting]
> Local value is 0, master value is 30711.
That means somewhere the error_reporting was switched off. Could have
been either via another .htaccess/httpd.conf setting or by an
error_reporting( 0 ) somewhere in your code (an included script/library
perhaps).
> The server API is "Apache 2.0 Handler". I assume that's an Apache
> module.
Yes.
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170601 is a reply to message #170579] |
Tue, 09 November 2010 19:46 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Jim Wigginton schrieb:
[error_reporting]
> Local value is 0, master value is 30711.
By the way: a value of 30711 would exclude E_NOTICE and E_STRICT. Try
30719 instead to include E_NOTICE or 32767 to include "really all".
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170603 is a reply to message #170581] |
Tue, 09 November 2010 19:53 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Jerry Stuckle schrieb:
> But your problem is that php_flag is just that - a flag, on or off. What
> you need is php_value for error_reporting.
Indeed. But I wonder what PHP will do if a "value" directive is set
using php_flag? The OP wrote that the local value was 0 and the master
30711 (which excludes notices, btw. and would therefore not have shown
any error in my example script). Could it be that
php_flag error_reporting <non-flag-or-invalid-value>
will have the same effect as
php_value error_reporting 0
instead of raising an error and/or keeping the master value?
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170604 is a reply to message #170579] |
Tue, 09 November 2010 19:56 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Me again ;-)
Two more things to try:
- Set display_startup_errors in your php.ini to see if PHP complains
about any invalid settings (and don't forget to disable it again
afterwards).
- Remember that you must restart Apache for any new httpd.conf or
php.ini settings to take effect.
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170605 is a reply to message #170602] |
Tue, 09 November 2010 20:09 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Michael Fesser schrieb:
>> [error_reporting]
> -1 should do to include all.
Correct. But personally I prefer the more explicit E_ALL | E_STRICT.
And, strictly speaking, one should not rely upon the state of the
undocumented remaining bits which are currently not used, so it might be
preferable to mask them out.
Also, I find it a bit confusing/unintuitive that E_STRICT is not
included with E_ALL.
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170607 is a reply to message #170603] |
Tue, 09 November 2010 20:35 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 11/9/2010 2:53 PM, Thomas Mlynarczyk wrote:
> Jerry Stuckle schrieb:
>> But your problem is that php_flag is just that - a flag, on or off.
>> What you need is php_value for error_reporting.
>
> Indeed. But I wonder what PHP will do if a "value" directive is set
> using php_flag? The OP wrote that the local value was 0 and the master
> 30711 (which excludes notices, btw. and would therefore not have shown
> any error in my example script). Could it be that
>
> php_flag error_reporting <non-flag-or-invalid-value>
>
> will have the same effect as
>
> php_value error_reporting 0
>
> instead of raising an error and/or keeping the master value?
>
> Greetings,
> Thomas
>
It will not set it to the correct value. Flag takes true/false on/off
only. Looks like it sets it to false (0)
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170608 is a reply to message #170607] |
Tue, 09 November 2010 21:27 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Jerry Stuckle schrieb:
[Using php_flag instead of php_value in .htaccess]
> It will not set it to the correct value. Flag takes true/false on/off
> only. Looks like it sets it to false (0)
Then it seems that this is the cause of the OP's problem. I suppose
php_flag exists only so Apache will "translate" true/false/on/off to
their respective integer values instead of treating them as literal
strings. So "php_flag <directive> on" is basically a kind of syntactic
sugar for "php_value <directive> 1"? And thus we could theoretically do
without php_flag and use php_value for everything and make life simpler?
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170609 is a reply to message #170608] |
Tue, 09 November 2010 21:41 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 11/9/2010 4:27 PM, Thomas Mlynarczyk wrote:
> Jerry Stuckle schrieb:
>
> [Using php_flag instead of php_value in .htaccess]
>> It will not set it to the correct value. Flag takes true/false on/off
>> only. Looks like it sets it to false (0)
>
> Then it seems that this is the cause of the OP's problem. I suppose
> php_flag exists only so Apache will "translate" true/false/on/off to
> their respective integer values instead of treating them as literal
> strings. So "php_flag <directive> on" is basically a kind of syntactic
> sugar for "php_value <directive> 1"? And thus we could theoretically do
> without php_flag and use php_value for everything and make life simpler?
>
> Greetings,
> Thomas
>
No, it is a true/false directive, not a value directive. php_flag and
php_value are used for different options.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170610 is a reply to message #170580] |
Tue, 09 November 2010 23:13 |
Denis McMahon
Messages: 634 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 08/11/10 23:46, Jim Wigginton wrote:
> On Nov 8, 5:08 pm, Jerry Stuckle <jstuck...@attglobal.net> wrote:
>> On 11/8/2010 4:35 PM, yawnmoth wrote:
>>
>>> I have a .htaccess file that contains only one line:
>>
>>> php_flag display_errors on
>>
>>> Only problem: Errors aren't being displayed as I'd expect. Any ideas
>>> as to why? Is there some setting in httpd.conf that can be used to
>>> prevent errors from displaying?
>>
>> What about error_reporting?
>
> I've tried setting error_reporting with the following:
>
> php_flag error_reporting 30719
> php_flag error_reporting E_ALL
You can't use the constants in .htaccess, you have to use the numeric
values. Also, php_flag is used for booleans. What you want is possibly:
php_value error_reporting 30719
Rgds
Denis McMahon
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170617 is a reply to message #170605] |
Wed, 10 November 2010 14:15 |
Michael Fesser
Messages: 215 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
.oO(Thomas Mlynarczyk)
> Michael Fesser schrieb:
>>> [error_reporting]
>> -1 should do to include all.
>
> Correct. But personally I prefer the more explicit E_ALL | E_STRICT.
Same here. In my php.ini it's set like that.
> And, strictly speaking, one should not rely upon the state of the
> undocumented remaining bits which are currently not used, so it might be
> preferable to mask them out.
It's documented in two places:
| […] consider using a larger value to cover all bit fields from now and
| well into the future, a numeric value like 2147483647
And on another page:
| Passing in the value -1 will show every possible error, even when new
| levels and constants are added in future PHP versions.
So I think it's safe to make use of it if necessary, i.e. in an
..htaccess file where you can't use PHP's constants.
> Also, I find it a bit confusing/unintuitive that E_STRICT is not
> included with E_ALL.
IIRC this will be changed in PHP 6.
Micha
|
|
|
Re: display_errors stdout not working in a .htaccess file [message #170622 is a reply to message #170617] |
Thu, 11 November 2010 18:17 |
Thomas Mlynarczyk
Messages: 131 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
Michael Fesser schrieb:
[Unused bits for error_reporting() levels]
> It's documented in two places:
> | […] consider using a larger value to cover all bit fields from now and
> | well into the future, a numeric value like 2147483647
> And on another page:
> | Passing in the value -1 will show every possible error, even when new
> | levels and constants are added in future PHP versions.
Okay, I had overlooked that. Still, I prefer explicit constants to
"magic numbers".
> So I think it's safe to make use of it if necessary, i.e. in an
> .htaccess file where you can't use PHP's constants.
In such cases, yes.
Greetings,
Thomas
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)
|
|
|