Of note, APC has been discontinued. Instead, check out the NGINX Cache Manager for your PHP caching needs.
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.
In this article, you’ll learn how to speed up PHP with APC.
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.
Hi, if APC is only offered for VPS and above, then what PHP caching solutions are available for shared hosting plans? Thanks.
Hello,
Thanks for the question about the PHP caching solutions. The one that we have available in our hosting plans is the WordPress Hosting option. The name implies using WordPress, but it provides caching for any site working through the Apache web server. Check out this explanation of the WordPress optimized stack. Again, ignore the “WordPress” name as it will work for any site running on your webs server. This is a shared hosting solution and it’s not that much more expensive. Visit our site to review all available WordPress hosting plans.
apc.enable_cli = 1 should not be activated in working environments, only for testing/debugging.
“
apc.enable_cli
integerMostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Under normal circumstances, it is not ideal to create, populate and destroy the APC cache on every CLI request, but for various test scenarios it is useful to be able to enable APC for the CLI version of PHP easily.”
Note that APC is not available for installation version 5.6. For more discussion on APC, check out this support forum post.
Dear Sir,
I would some direction on installing APC on Windows server for improve performance of SuiteCRM.
I spent some time looking into this, and it seems like WinCache is more stable than APC on a Windows server environment.
Thank you,
John-Paul
Thanks for the post going to try and install APC and test it out hope it does good with the caching…
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]
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 https://php.net/manual/en/apc.configuration.php
Good day James Niland