Install APC for PHP
In this guide I'll cover how to install APC for PHP which is the Alternative PHP Cache that can help speed up your PHP powered website. You can read our speed up PHP with APC guide for more info on how APC works.
After you install APC, you will want to learn how to view and clear the APC cache. That way you can keep tabs on what APC is caching, and how effective it might be working for your website.
Installing APC for PHP
You'll need to have root access on either a VPS or dedicated server in order to install APC for PHP. You also will need to be running either the FastCGI or DSO PHP handlers for APC to function properly.
- Login to your server via SSH with your root SSH access.
- Change directories with the following command:
- Get the source code for APC with the following code:
- Now extract the APC archive with this command:
tar xvzf APC-3.1.13.tgz
- Navigate into the extracted folder:
- Now run the following command to configure APC to your PHP environment:
You should get something like this back:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
- Next configure the source code to run on your server with this command:
You'll see a lot of text scrolling by looking like this:
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
- Now you'll want to actually create the APC software with this command:
Again you'll see a lot of text scrolling by looking like:
/bin/sh /usr/local/src/APC-3.1.13/libtool --mode=compile cc -I. -I/usr/local/src/APC-3.1.13 -DPHP_ATOM_INC -I/usr/local/src/APC-3.1.13/include -I/usr/local/src/APC-3.1.13/main -I/usr/local/src/APC-3.1.13 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/APC-3.1.13/apc.c -o apc.lo mkdir .libs
Libraries have been installed in:
- Locate the extension_dir for PHP with this command:
grep extension_dir /usr/local/lib/php.ini
You should get back a path that looks something like:
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"
- Run this command to copy the APC Apache module (apc.so) to your PHP extension directory:
cp -frp modules/apc.so /usr/local/lib/php/extensions/no-debug-non-zts-20090626/
- Edit your php.ini file with your favorite text editor after making a backup:
cp -frp /usr/local/lib/php.ini /usr/local/lib/php.ini-BAK
Add these APC settings to the very bottom and save the php.ini file:
apc.optimization = 0
apc.use_request_time = 1
- Place the following code inside a info.php script on your site:
- Access that script on your site such as http://example.com/info.php. Look for the apc section:
If you don't see an apc section yet you might need to restart Apache with this command:
service httpd restart
Congratulations! You should now have successfully installed APC for PHP!
We value your feedback!
There is a step or detail missing from the instructions.
The information is incorrect or out-of-date.
It does not resolve the question/problem I have.
new! - Enter your name and email address above and we will post your feedback in the comments on this page!
2014-12-10 6:33 pm
Unfortanately this did not work. I thought it would be as simple as following the directions (which I did) but it did not. This guide should probably be updated for I'm guessing it is either out of date or not compatible with your current VPS deployments which likely run newer versions of PHP, etc.
2014-12-10 6:49 pm
I'm sorry that you had problems running the instructions above. However, we would need more information from you in order to determine why the instructions do not work. Did you meet the requirements stated at the beginning of the instructions (You'll need to have root access on either a VPS or dedicated server in order to install APC for PHP. You also will need to be running either the FastCGI or DSO PHP handlers for APC to function properly.) ? If you are a customer, can you please provide us account information so that we know what type of server was involved?
Did you receive any particular errors? Where did the installation fail? Please provide us with this information so that we can determine where the instructions have failed. This article is considered up-to-date at this point of time and we need to be able verify that a problem has occurred before. This is needed because anyone can comment on these pages and simply say it didn't work. Help us keep it up-to-date by indicating where a problem has occurred.
We appreciate your patience and understanding in helping us keep these documents as accurate an up-to-date as possible.
2014-12-10 7:37 pm
There were no errors during the instllation process, however, after running the final command to restart apache, it did not show that APC was installed when I checked the info.php file. It does appear I meet the requirements for I am on a VPS-1000S plan with root access, and according to info.php, I am runing CGI/FastCGI. I spoke to someone on support and for some reason they told me I had to disable FastCGI so now I'm even more confused. It appears the person I had spoken to who told me to disable FastCGI was not familar with APC for acccording to this doc, I need FastCGI.
UPDATE: I just removed and went through the steps again and it appears to be working now. Not sure why it wasn't before, possible that I missed a step during installation. Apreciate the lightning quick followup Arnel!
2014-12-10 7:21 pm
There were no errors during the instllation process, however, after running the final command to restart apache, it did not show that APC was installed when I checked the info.php file. It does appear I meet the requirements for I am on a VPS-1000S plan with root access, and according to info.php, I am runing CGI/FastCGI. I spoke to someone on support and for some reason they told me I had to disable FastCGI so now I'm even more confused. Is there anyway one of your technical support people who is familar with APC can install it on my VPS? It appears the person I had spoken to who told me to disable FastCGI was not familar with APC for acccording to this doc, I need FastCGI.
2014-12-10 7:43 pm
Thanks for the reply and apologies for the confusion with the support tech. I was about to write a ticket to have APC installed on your server, but I decided to double-check the info.php. When I did, I found that APC is already installed and that FASTCGI is setup on your server. If you ran the info.php screen on your server BEFORE the installation, it's always possible that the browser cached the page. Make sure to clear your browser cache. I ran a search for APC, and then double-checked the listed server configuration for FCGI.
If you continue to have problems with the installation (or you don't see it), provide a URL that you're using and we can look further into the matter.
I hope this issue is closed and everything is okay. Please let us know if you require any further assistance.
2014-12-10 7:45 pm
Hello Mark, I just saw your reply after I posted mine. Glad it's all working! No worries, about the steps - these things can be tedious and easy to miss. Hope all is well!
Have a great day!