I've built eAccelerator 0.9.5 from source on a Debian etch machine
with Apache 2.2.3 and PHP 5.2.0-8 from the Debian packages. It was
working fine for many months. But after some routine upgrade of PHP,
Apache failed to start. This was in Apache's error log:
PHP Warning: [eAccelerator] This build of "eAccelerator" was compiled
for PHP version 5.2.0-8. Rebuild it for your PHP version
(5.2.0-8+etch4) or download precompiled binaries.\n in Unknown on line
0
PHP Fatal error: Unable to start eAccelerator module in Unknown on
line 0
I've rebuilt eAccelerator 0.9.5.1 from source and everything was fine
again.
I understand that eAccelerator needs to be compiled against the same
PHP version it's working with at runtime. But would it be possible to
handle this situation more gracefully and allow Apache and PHP to
start without fatal errors?
Currently everyone in this situation runs the risk of their websites
going down as soon as someone (the site owner or hosting provider)
routinely runs apt-get upgrade or aptitude upgrade :-(
Also, is there really a version difference in this case, or is
eAccelerator just confused by the "+etch4" suffix of the Debian
package?
Cheers,
René
In the current development version a patch is included which just
disables eAccelerator when something goes wrong and it doesn't make
php fail. I like this behaviour more but I think that quite some users
won't like it because they won't be notified when something goes wrong
with eAccelerator.
> Currently everyone in this situation runs the risk of their websites
> going down as soon as someone (the site owner or hosting provider)
> routinely runs apt-get upgrade or aptitude upgrade :-(
Every server admin that upgrades software without checking if the
software still works should be fired :)
gr,
Bart
That sounds much better. Thanks!
> but I think that quite some users won't like it because they won't be
> notified when something goes wrong with eAccelerator.
When someone wants to be notified of a problem, he should arrange to
be notified, instead of requiring the problem to crash his web
server :-) For example, he should use a tool to watch the log files.
On Jun 10, 5:51 pm, zoeloelip <zoeloe...@gmail.com> wrote:
...
> eAccelerator will only run when it's compiled for the current php
> version. It compares the php version so if you add something to the
> version and don't change the source files eA will still think the php
> version has changed, I think this is reasonable.
If php was compiled from source this is fine.
But with debian - it's not me who "adds something to the version" but
debian's upgrade - and this is mostly considered a clever and thorough
mechanism among linux distributions.
So it would make sense to let the user decide if his PHP should run
with eAccel based on the given information.
Maybe a compile option could be the way to handle this.
Or can you tell us how to modify the source to throw out the version
check?
Unfortunately my knowledge of C++ is insufficient for this.
// Bernd