Speed up PHP with APC - Alternative PHP Cache
APC or Alternative PHP Cache, is a free open-source opcode (operation code) caching plugin for PHP. With APC caching your PHP script executions can run more efficiently, by cutting down on dynamic PHP executions.
If you already know about APC, you might like to go ahead and skip to our guide on how to install APC.
We also have a guide that covers how to view and clear the APC cache.
Why would you want to install APC?
PHP is a dynamic scripting language, so every time there is a request for a page, the server must first parse the code in your PHP script in order to generate the resulting HTML code seen by a visitor's web-browser.
PHP is ideal for web pages that have content that is constantly updated, since each visitor gets a fresh copy of the page. So for instance if you have your PHP script pulling data from a database, as soon as there is new data in the database, it will automatically be in the generated HTML code for the next visitor requesting that page as well.
In most cases the need to re-run PHP scripts for data that might not have changed in the first place, can be taxing on the server. By implementing APC you cut down on repeat PHP script executions, skipping the parsing and compiling steps. APC stores the opcode, and that is simply executed each time the script is called again.
What's the difference between APC and other types of caching?
APC for PHP is one of the most widely used PHP opcode caching solutions in use today. You can utilize APC on a VPS or dedicated server that is running PHP as either DSO or FastCGI. You might want to read about choosing the best PHP handler for your specific needs, and also a more in-depth explanation on what DSO and FastCGI are.
Another common caching module is Memcached, and the main difference between it and APC is that Memcached is distributed and more robust generic caching platform, while APC is specific to PHP. APC is great when you need local caching of objects for your PHP scripts that are relatively small and frequently accessed.
How to install APC
APC is a PECL module that can be loaded into PHP, but because it operates at the server-level it can not be run on our shared hosting servers. If you are on a VPS or dedicated server and are comfortable installing PECL modules, then you can go ahead and install APC yourself.
Or if you prefer our system administration department can setup APC on your server for you. If this is something that you'd like to take advantage of please contact our support department.
2013-03-23 8:54 pm
I would love some direction on installing APC on an Inmotion VPS. Need to speed up some Magento sites.
2013-09-06 11:44 am
I'm looking for a good hosting with APC pre-installed, do you do that?
2013-09-06 12:12 pm
Thanks for the question. As per the last paragraph above, we do not support the installation of APC on our shared servers, but you can either install it yourself or have it installed on our VPS/Dedicated server solutions.
There's a simple shell command to install APC on a VPS or Dedicated server (you have to be logged into the shell): pecl install apc. You can find more information here: How to install APC.
I hope this helps to answer your question.
2015-04-05 5:26 pm
Thanks for the post going to try and install APC and test it out hope it does good with the caching...
2015-07-13 9:18 am
APC install is simple if you have the right procedure. Unfortunately there is a lot of bad install advice out there on the net! You really need to do it the cPanel/WHM way as others will just FUBAR your install. The tricky part is to get apc.so in your [/usr/local/lib/php/extensions/no-debug-non-zts-XXXXXXXX/apc.so], otherwise [Home]/usr/local/lib/php.ini will not work.
Your php.ini ([Home]/usr/local/lib/php.ini) should have [extension="apc.so"] (without the brackets) where you load your extensions. It will find it in [/usr/local/lib/php/extensions/no-debug-non-zts-XXXXXXXX/] (current one used). As in WHM Home »Service Configuration »PHP Configuration Editor advanced mode Section [CORE ] , Directive [extension], Value [pdo.so, pdo_mysql.so, apc.so]
After this you should be able to restart Apache and use >>Home »Service Configuration »PHP Configuration Editor >> in WHM, in Advanced Mode.
If not them you php.ini should have something like this (values depend on you needs).
; Module Settings ;
apc.enabled = 1
apc.optimization = 0
apc.shm_segments = 1
apc.shm_size = 256M
apc.ttl = 7200
apc.user_ttl = 7200
apc.gc_ttl = 3600
apc.num_files_hint = 1000
apc.user_entries_hint = 1000
apc.mmap_file_mask = "/tmp/apc-LoginName.XXXXXX"
apc.enable_cli = 1
apc.cache_by_default = 1
apc.max_file_size = 2M
apc.stat = 1
See this link http://php.net/manual/en/apc.configuration.php
Good day James Niland