eaccelerator
Setting up eaccelerator
In order to use eAccelerator, you must add the following lines to your /etc/php.ini file:
extension="/usr/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" 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="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Do not forget to create the cache directory as well:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator
Configuration Options:
eaccelerator.shm_size The amount of shared memory (in megabytes) that eAccelerator will use. "0" means OS default. Default value is "0". eaccelerator.cache_dir The directory that is used for disk cache. eAccelerator stores precompiled code, session data, content and user entries here. The same data can be stored in shared memory also (for more quick access). Default value is "/tmp/eaccelerator". eaccelerator.enable Enables or disables eAccelerator. Should be "1" for enabling or "0" for disabling. Default value is "1". eaccelerator.optimizer Enables or disables internal peephole optimizer which may speed up code execution. Should be "1" for enabling or "0" for disabling. Default value is "1". eaccelerator.debug Enables or disables debug logging. Should be "1" for enabling or "0" for disabling. Default value is "0". eaccelerator.check_mtime Enables or disables PHP file modification checking . Should be "1" for enabling or "0" for disabling. You should set it to "1" if you want to recompile PHP files after modification. Default value is "1". eaccelerator.filter Determine which PHP files must be cached. You may specify the number of patterns (for example "*.php *.phtml") which specifies to cache or not to cache. If pattern starts with the character "!", it means to ignore files which are matched by the following pattern. Default value is "" that means all PHP scripts will be cached. eaccelerator.shm_max Disables putting large values into shared memory by " eaccelerator_put() " function. It indicates the largest allowed size in bytes (10240, 10K, 1M). The "0" disables the limit. Default value is "0". eaccelerator.shm_ttl When eaccelerator fails to get shared memory for new script it removes all scripts which were not accessed at last "shm_ttl" seconds from shared memory. Default value is "0" that means - don't remove any files from shared memory. eaccelerator.shm_prune_period When eaccelerator fails to get shared memory for new script it tryes to remove old script if the previous try was made more then "shm_prune_period" seconds ago. Default value is "0" that means - don't try to remove any files from shared memory. eaccelerator.shm_only Enables or disables caching of compiled scripts on disk. It has no effect on session data and content caching. Default value is "0" that means - use disk and shared memory for caching. eaccelerator.compress Enables or disables cached content compression. Default value is "1" that means enable compression. eaccelerator.compress_level Compression level used for content caching. Default value is "9" which is the maximum value eaccelerator.keys eaccelerator.sessions eaccelerator.content Determine where keys, session data and content will be cached. The possible values are: "shm_and_disk" - cache data in shared memory and on disk (default value) "shm" - cache data in shared memory or on disk if shared memory is full or data size greater then "eaccelerator.shm_max" "shm_only" - cache data in shared memory "disk_only" - cache data on disk "none" - don't cache data eAccelerator API: eaccelerator_put($key, $value, $ttl=0) puts the $value into shard memory for $ttl seconds. eaccelerator_get($key) returns the value from shared memory which was stored by eaccelerator_put() or null if it is not exists or was expired. eaccelerator_rm($key) removres the $key from shared memory eaccelerator_gc() removes all expired keys from shared memory eaccelerator_lock($lock) creates a lock with specified name. The lock can be released by function eaccelerator_unlock() or automatic on the end of request. For Example: <?php eaccelerator_lock("count"); eaccelerator_put("count",eaccelerator_get("count")+1)); ?> eaccelerator_unlock($lock) release lock with specified name eaccelerator_set_session_handlers() install the eaccelerator session handlers. Since PHP 4.2.0 you can install eaccelerator session handlers in "php.ini" by "session.save_handler=eaccelerator". eaccelerator_cache_output($key, $eval_code, $ttl=0) caches the output of $eval_code in shared memory for $ttl seconds. Output can be removed from cache by calling mmcach_rm() with the same $key. For Example: <?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?> eaccelerator_cache_result($key, $eval_code, $ttl=0) caches the result of $eval_code in shared memory for $ttl seconds. Result can be removed from cache by calling mmcach_rm() with the same $key. For Example: <?php eaccelerator_cache_output('test', 'time()." Hello";', 30); ?> eaccelerator_cache_page($key, $ttl=0) caches the full page for $ttl seconds. For Example: <?php eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30); echo time(); phpinfo(); ?> eaccelerator_rm_page($key) removes the page which was cached by eaccelerator_cache_page() with the same $key from cache eaccelerator_encode($filename) returns the encoded bytecode of compiled file $filename eaccelerator_load($code) loads script which was encoded by eaccelerator_encode()