Difference between revisions of "PHP Accelerator"
(adds notes) |
|||
Line 1: | Line 1: | ||
− | A [[wp:PHP_accelerator|PHP Acelerator]] is a tool that will enhance the performance of web applications written for the PHP scripting language. The free [http://php.net/apc Alternative PHP Cache] (APC) is distributed as a PEAR package. | + | A [[wp:PHP_accelerator|PHP Acelerator]] is a tool that will enhance the [[Performance_tuning|performance]] of web applications written for the PHP scripting language. The free [http://php.net/apc Alternative PHP Cache] (APC) is distributed as a PEAR package. |
− | If you run your own LAMP server with PHP applications, then please install it. | + | If you run your own LAMP server with PHP applications, then please install it. The [[Moodle]] documentation includes information on [http://docs.moodle.org/en/Installing_APC_in_Windows setting up APC]; including testing before and after performance with "[http://httpd.apache.org/docs/2.0/programs/ab.html Apache Bench]" |
== Installation == | == Installation == | ||
Line 22: | Line 22: | ||
sudo ln -s /usr/share/php/apc.php | sudo ln -s /usr/share/php/apc.php | ||
</source> | </source> | ||
+ | |||
+ | == MediaWiki == | ||
+ | MediaWiki can take advantage of the APC cache if you tell it to. | ||
+ | see [[mw:Manual:Configuration_settings#Cache|The Manual for cache settings]], and set [[mw:Manual:$wgMainCacheType]] in LocalSettings.php: | ||
+ | <source lang="php"> | ||
+ | $wgMainCacheType = CACHE_ACCEL; | ||
+ | </source> | ||
+ | |||
+ | == Troubleshooting == | ||
+ | If you notice sluggishness in your site after installing APC, then check out the front-end (apc.php). The sure sign that you need to increase your cache size is that the "cache full" count is greater than one. | ||
+ | [[Image:Apc-problems.png|200px|thumb|right|Cache is too small]] | ||
+ | |||
+ | # [[Performance_tuning|Check your memory]] | ||
+ | # Increase the Shared Memory Size for APC in your php.ini file e.g. <code>apc.shm_size = 128</code> | ||
+ | # Restart Apache | ||
+ | # Use the Apache Bench tool to test performance with and without APC enabled. | ||
== Notes == | == Notes == | ||
APC, aside from speeding up your website, also provides a storage mechanism outside the traditional cookie/session mechanism. So, you could set an application variable or constant and (assuming that the cache is not cleared, etc.) retrieve that value from another context. | APC, aside from speeding up your website, also provides a storage mechanism outside the traditional cookie/session mechanism. So, you could set an application variable or constant and (assuming that the cache is not cleared, etc.) retrieve that value from another context. | ||
+ | |||
+ | [[Category:Apache]] | ||
+ | [[Category:PHP]] |
Revision as of 10:14, 16 October 2008
A PHP Acelerator is a tool that will enhance the performance of web applications written for the PHP scripting language. The free Alternative PHP Cache (APC) is distributed as a PEAR package.
If you run your own LAMP server with PHP applications, then please install it. The Moodle documentation includes information on setting up APC; including testing before and after performance with "Apache Bench"
Installation[edit | edit source]
Assuming you already have Apache2 and PHP5 (with dev extensions so PECL can run phpize), it's as easy as
# make sure we have the development headers and apxs2 binary for threaded versions of apache2
sudo apt-get install apache2-threaded-dev
# install the APC extension
sudo pecl install APC
# pecl would have updated my php.ini file automatically, but it did not know where to look.
# set it for future reference
sudo pear config-set php_ini /etc/php5/apache2/php.ini
# do the configuration of php settings file myself
sudo vi /etc/php5/apache2/php.ini
# test and restart apache
sudo apache2ctl configtest
sudo apache2ctl graceful
# make a symbolic link to the system front-end
cd /var/www
sudo ln -s /usr/share/php/apc.php
MediaWiki[edit | edit source]
MediaWiki can take advantage of the APC cache if you tell it to. see The Manual for cache settings, and set mw:Manual:$wgMainCacheType in LocalSettings.php:
$wgMainCacheType = CACHE_ACCEL;
Troubleshooting[edit | edit source]
If you notice sluggishness in your site after installing APC, then check out the front-end (apc.php). The sure sign that you need to increase your cache size is that the "cache full" count is greater than one.
- Check your memory
- Increase the Shared Memory Size for APC in your php.ini file e.g.
apc.shm_size = 128
- Restart Apache
- Use the Apache Bench tool to test performance with and without APC enabled.
Notes[edit | edit source]
APC, aside from speeding up your website, also provides a storage mechanism outside the traditional cookie/session mechanism. So, you could set an application variable or constant and (assuming that the cache is not cleared, etc.) retrieve that value from another context.