Ticket #228 (new defect)

Opened 2 years ago

Last modified 1 year ago

disk cache not working with mod_chroot/mod_security

Reported by: SebastianEwert Assigned to: somebody
Priority: major Milestone:
Component: eAccelerator Version: 0.9.5
Keywords: chroot jail Cc:

Description

I'm using eAccelerator 0.95 with Apache 2.0.55 running on an ubuntu 6.06 server.

SHM Caching seems to work fine. But disk caching is not prepared for chrooting the server. I use mod_chroot for that (mod_security is doing exactly the same).

lets assume: eaccelerator.cache_dir="/chroot/var/cache/eaccelerator" Then the directories 0 - f are created under /chroot/var/cache/eaccelerator. So it seems eAccelerator is doing that in the module initialisation phase, when the chroot jail is not yet active.

With: eaccelerator.debug="1" eaccelerator.log_file="/chroot/var/log/eaccelerator.log"

I get:

EACCELERATOR: Open for write failed for "/chroot/var/cache/eaccelerator/0/f/eaccelerator-5502.6505442": No such file or directory

=> So it seems to that this file is getting created after the chroot jail is active, that means after module init phase is over.

And there's a second problem with debug and logging; I don't know if it is related. As one can read on the settings page: "eaccelerator.log_file

Set the log file for eaccelerator. When this option isn't set then the data will be logged to stderr, when using PHP with Apache these lines will be added to the Apache error log. " => But if I set debug="1" but don't set eaccelerator.log_file I don't get anything in the apache logs. When I set eaccelerator.log_file="/chroot/var/log/eaccelerator.log" I get output; notice that this is an outer Jail path.

Thank you in advance...

Change History

01/30/07 12:24:07 changed by bart

The cache directory really needs to be in the chroot. The cache file is dependent on the scripts/data that will be cached so it's impossible to open the files before apache gets chrooted.