Re-compiling PHP changes server responsiveness

Ian Fitzgerald ianf at ozemail.com.au
Thu Dec 17 20:51:38 UTC 2009


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>


More information about the freebsd-questions mailing list