I will first describe my situation.
Operating environment
OS: Windows Server 2003 Enterprise Edition
Webserver: Apache HTTPD 2.0.55
PHP: PHP 5.1.2 (running as module)
eAccelerator Build Info
Version: 0.9.5-cvs200603090012-dev (latest svn snapshot)
Build as eAccelerator.dll with Microsoft Visual C++ 2003 Enterprise Edition
Used PHP 5.1.2 sourcefiles to build 'Release PHP5 Configuration'
BuildLog of eAccelerator.dll
Compiling...
webui.c
shm.c
session.c
optimize.c
\php\ext\eaccelerator\optimize.c(2947) : warning C4018: '<=' : signed/unsigned mismatch
\php\ext\eaccelerator\optimize.c(2948) : warning C4018: '<' : signed/unsigned mismatch
opcodes.c
mm.c
\php\ext\eaccelerator\mm.c(635) : warning C4013: 'ea_debug_error' undefined; assuming extern returning int
loader.c
\php\ext\eaccelerator\loader.c(659) : warning C4018: '<' : signed/unsigned mismatch
execute.c
encoder.c
\php\ext\eaccelerator\encoder.c(966) : warning C4018: '<' : signed/unsigned mismatch
eaccelerator.c
\php\ext\eaccelerator\eaccelerator.c(1229) : warning C4101: 'tv_start' : unreferenced local variable
ea_store.c
ea_restore.c
debug.c
content.c
cache.c
\php\ext\eaccelerator\cache.c(219) : warning C4013: 'calc_zval' undefined; assuming extern returning int
\php\ext\eaccelerator\cache.c(256) : warning C4013: 'store_zval' undefined; assuming extern returning int
\php\ext\eaccelerator\cache.c(368) : warning C4013: 'restore_zval' undefined; assuming extern returning int
\php\ext\eaccelerator\cache.c(427) : warning C4013: 'fixup_zval' undefined; assuming extern returning int
Linking...
Creating library .\Release/eAccelerator.lib and object .\Release/eAccelerator.exp
eAccelerator.dll created successfully
I had to download the execute.c sourcefile from http://dev.eaccelerator.net/eaccelerator/branches/eAccelerator/ to be able to compile it. It wasn't present in the snapshot I downloaded.
I have configured it in php.ini as an extension with the following settings:
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; eAccelerator Novixa.net ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
extension="eAccelerator.dll"
eaccelerator.shm_size="0"
eaccelerator.cache_dir="F:\Novixa.net\phpcache\"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="1"
eaccelerator.compress="9"
eaccelerator.keys = "shm_only"
eaccelerator.sessions = "shm_only"
eaccelerator.content = "shm_only"
Well, the accelerator seems to work fine. Scripts seem to be speeded up slightly as expected and Apache generates no fatal errors.
The real problem is that Apache/eAccelerator is writing the message eAccelerator: Could not release lock'' every few seconds to the Apache errorlog file. The errorlog grows to around 1 mb plaintext in an afternoon.
Hans suggested it had something to do with the memory manager not being able to release a lock on a certain memory segment. It is certainly not a disk/filesystem probleme because it's been configured completely as "shm_only".
Thanks in advance for fixing this bug.
Regards,
Rabrynil