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