Re: Re-compiling PHP changes server responsiveness

2009-12-17 Thread Michael Powell
Matthew Seaman wrote:

[snip] 
 I get: [warn] (2)No such file or directory: Failed to enable the
 'httpready' Accept Filter, and no new errors in
 /var/log/httpd-error.log four times
 
 Tried adding accf_http=YES to /boot/loader.conf, and re-booting of
 course.
 
 This is just a warning message and doesn't stop apache working or not. 
 Enabling accf_http should give you a bit of a performance boost under
 heavy load and help you withstand certain types of DoS attack, but it's
 not required.


I found I needed both accf_data_load=YES and accf_http_load=YES, but I 
am also running SSL too. I've also noticed that I tend to not receive this 
error when Apache starts after a fresh system boot. Have never tried to 
examine it further as I don't reboot or restart Apache very often. It just 
seemed happier when I added the http_load into the mix and only spews the 
error at non-reboot restarts.
 
[snip] 
 What else should I look at?
 
 
 Try restarting httpd from the command line: /usr/local/etc/rc.d/apache22
 restart
 
 This will run a configtest and then try and start up apache.  Then check
 that apache is still running: /usr/local/etc/rc.d/apache22 status
 
 If apache has mysteriously disappeared and there are no messages in log
 files, then it means apache crashed during the startup process soon after
 daemonising. That's pretty diagnostic for loading a dynamic module that
 disagrees with it.
 
 At a guess, and given that you've reinstalled all your php modules, I
 think you
 may be being hit by the php module load order problem.  In that case,
 running
 php from the command line will probably also segv on you.  This is
 something that has had quite a lot of attention on this list, but there
 isn't a really good solution yet, other than manually reordering the
 entries in /usr/local/etc/php/extensions.ini
 
 Also, if you're running eAccelerator, make sure you recompile it at the
 same time you upgrade the main lang/php5 port: eAccelerator will cause
 Apache to crash if you try and run it against a different version of PHP
 than it was originally compiled for.
 

The same would apply whether it was xcache or the Zendoptimizer.

The way to pin the problem down is to rename extensions.ini temporarily to 
extensions.ini.bak and comment out the 

#LoadModule php5_modulelibexec/apache22/libphp5.so line temporarily.

Start/restart Apache and if it works OK with serving static content it 
confirms the problem is PHP. Then add the Loadmodule line again in 
httpd.conf and restart. If it restarts with no errors and again serves 
static pages fine the PHP module itself is OK. Trying to run something like 
a CMS will still be error prone as the various modules it needs aren't being 
loaded and found, as the extensions.ini file is still renamed.

Note that if Apache is happy with mod_php while extensions.ini is still 
renamed it also confirms no major flaw in the php.ini file.

If Apache runs fine with the mod_php module then the trouble is in the 
extensions. Rename the extensions.ini back to it's original state. There is 
a script that may be run to realize a close approximation of the extension 
loading order problem: fixphpextorder.sh which can be found here: 

http://www.pingle.org/2007/09/22/php-crashes-extensions-workaround

That is a stab at the reordering problem, but in my case was not enough to 
completely solve my problem. I also had to comment out extension=mhash.so 
with a ;. This was arrived at by commenting out line by line one at a time 
until I hit the one causing the breakage. This particular extension has been 
problematic for me for some time now. Some upgrades it works and for some it 
is broken. Remember that each change made requires an apachectl restart.

-Mike  



___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Re-compiling PHP changes server responsiveness

2009-12-17 Thread Ian Fitzgerald

Matthew Seaman wrote:

Ian Fitzgerald wrote:
Recently upgraded (fresh install) FBSD 8, including MySql, Apache22, 
phpMyAdmin, KDE4 Gnome2.26 from DVD iso.
Running ok as test server, but unusual error from added, complex CMS 
prompted me to re-install PHP5 and PHP5-extensions as pkg_add -r 
(using ports files from iso), then with no success, compiling them 
(using ports files from iso), with slightly different make config.


Now server does not respond, either to 'localhost' request on its 
browser, or specific address request from another machine on local 
network.


I assume re-compiling PHP would not clobber hosts or resolv.conf 
(they look ok).


I get: [warn] (2)No such file or directory: Failed to enable the 
'httpready' Accept Filter, and no new errors in 
/var/log/httpd-error.log four times


Tried adding accf_http=YES to /boot/loader.conf, and re-booting of 
course.


This is just a warning message and doesn't stop apache working or 
not.  Enabling
accf_http should give you a bit of a performance boost under heavy 
load and help

you withstand certain types of DoS attack, but it's not required.

Tried refreshing ports (inital re-compile attempt failed with make 
complaining that postgres-client had been marked invalid - when will 
someone fixit?), and re-compiling apache22 = no change.


ps -auxc: no httpd.

FF3 under Gnome on the machine fetches external pages, of course 
(using router DNS).


What else should I look at?



Try restarting httpd from the command line: 
/usr/local/etc/rc.d/apache22 restart


This will run a configtest and then try and start up apache.  Then check
that apache is still running: /usr/local/etc/rc.d/apache22 status

If apache has mysteriously disappeared and there are no messages in 
log files,
then it means apache crashed during the startup process soon after 
daemonising.
That's pretty diagnostic for loading a dynamic module that disagrees 
with it.


At a guess, and given that you've reinstalled all your php modules, I 
think you
may be being hit by the php module load order problem.  In that case, 
running
php from the command line will probably also segv on you.  This is 
something that
has had quite a lot of attention on this list, but there isn't a 
really good solution
yet, other than manually reordering the entries in 
/usr/local/etc/php/extensions.ini


Also, if you're running eAccelerator, make sure you recompile it at 
the same time
you upgrade the main lang/php5 port: eAccelerator will cause Apache to 
crash if you
try and run it against a different version of PHP than it was 
originally compiled

for.

Cheers,

Matthew


Thank you . That gets me off to a good start.

I guess the solution for the maintainers is simple: a script which 
automates every combination of module load to test for error-prone 
sequences or combinations. These could then be tested for and a warning 
notice issued at config time, or after compilation, preferably. It would 
also provide a definitive answer to the question of whether the 
sequence/combination is a contributing factor in the first place, or 
whether some other factor is a pre-condition.


--

ianf http://www.metapixeldesigns.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re-compiling PHP changes server responsiveness

2009-12-16 Thread Ian Fitzgerald
Recently upgraded (fresh install) FBSD 8, including MySql, Apache22, 
phpMyAdmin, KDE4 Gnome2.26 from DVD iso.
Running ok as test server, but unusual error from added, complex CMS 
prompted me to re-install PHP5 and PHP5-extensions as pkg_add -r (using 
ports files from iso), then with no success, compiling them (using ports 
files from iso), with slightly different make config.


Now server does not respond, either to 'localhost' request on its 
browser, or specific address request from another machine on local network.


I assume re-compiling PHP would not clobber hosts or resolv.conf (they 
look ok).


I get: [warn] (2)No such file or directory: Failed to enable the 
'httpready' Accept Filter, and no new errors in 
/var/log/httpd-error.log four times


Tried adding accf_http=YES to /boot/loader.conf, and re-booting of course.

Tried refreshing ports (inital re-compile attempt failed with make 
complaining that postgres-client had been marked invalid - when will 
someone fixit?), and re-compiling apache22 = no change.


ps -auxc: no httpd.

FF3 under Gnome on the machine fetches external pages, of course (using 
router DNS).


What else should I look at?

--

ianf http://www.metapixeldesigns.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Re-compiling PHP changes server responsiveness

2009-12-16 Thread Matthew Seaman

Ian Fitzgerald wrote:
Recently upgraded (fresh install) FBSD 8, including MySql, Apache22, 
phpMyAdmin, KDE4 Gnome2.26 from DVD iso.
Running ok as test server, but unusual error from added, complex CMS 
prompted me to re-install PHP5 and PHP5-extensions as pkg_add -r (using 
ports files from iso), then with no success, compiling them (using ports 
files from iso), with slightly different make config.


Now server does not respond, either to 'localhost' request on its 
browser, or specific address request from another machine on local network.


I assume re-compiling PHP would not clobber hosts or resolv.conf (they 
look ok).


I get: [warn] (2)No such file or directory: Failed to enable the 
'httpready' Accept Filter, and no new errors in 
/var/log/httpd-error.log four times


Tried adding accf_http=YES to /boot/loader.conf, and re-booting of 
course.


This is just a warning message and doesn't stop apache working or not.  Enabling
accf_http should give you a bit of a performance boost under heavy load and help
you withstand certain types of DoS attack, but it's not required.

Tried refreshing ports (inital re-compile attempt failed with make 
complaining that postgres-client had been marked invalid - when will 
someone fixit?), and re-compiling apache22 = no change.


ps -auxc: no httpd.

FF3 under Gnome on the machine fetches external pages, of course (using 
router DNS).


What else should I look at?



Try restarting httpd from the command line: /usr/local/etc/rc.d/apache22 restart

This will run a configtest and then try and start up apache.  Then check
that apache is still running: /usr/local/etc/rc.d/apache22 status

If apache has mysteriously disappeared and there are no messages in log files,
then it means apache crashed during the startup process soon after daemonising.
That's pretty diagnostic for loading a dynamic module that disagrees with it.

At a guess, and given that you've reinstalled all your php modules, I think you
may be being hit by the php module load order problem.  In that case, running
php from the command line will probably also segv on you.  This is something 
that
has had quite a lot of attention on this list, but there isn't a really good 
solution
yet, other than manually reordering the entries in 
/usr/local/etc/php/extensions.ini

Also, if you're running eAccelerator, make sure you recompile it at the same 
time
you upgrade the main lang/php5 port: eAccelerator will cause Apache to crash if 
you
try and run it against a different version of PHP than it was originally 
compiled
for.

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature