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?
Because we don't know what changes have been made between php versions 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.
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 :)
> In the current development version a patch is included which just > disables eAccelerator when something goes wrong and it doesn't make > php fail.
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.
Hello, I have the same problem as the thread starter, only with versions 5.2.0-8+etch7 vs 5.2.0-10.
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