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.

  1. Login to your server via SSH with your root SSH access.
  2. Change directories with the following command:

    cd /usr/local/src

  3. Get the source code for APC with the following code:

    wget http://pecl.php.net/get/APC-3.1.13.tgz

  4. Now extract the APC archive with this command:

    tar xvzf APC-3.1.13.tgz

  5. Navigate into the extracted folder:

    cd APC-3.1.13

  6. Now run the following command to configure APC to your PHP environment:

    phpize

    You should get something like this back:

    Configuring for:
    PHP Api Version: 20090626
    Zend Module Api No: 20090626
    Zend Extension Api No: 220090626

  7. Next configure the source code to run on your server with this command:

    ./configure

    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
    ..........
    creating libtool
    appending configuration tag "CXX" to libtool
    configure: creating ./config.status
    config.status: creating config.h

  8. Now you'll want to actually create the APC software with this command:

    make

    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:
    /usr/local/src/APC-3.1.13/modules
    Build complete.

  9. 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"

  10. 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/

  11. 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
    vi /usr/local/lib/php.ini

    Add these APC settings to the very bottom and save the php.ini file:

    extension=apc.so
    apc.enabled=1
    apc.shm_size=128
    apc.cache_by_default="1"
    apc.shm_segments="1"
    apc.ttl="7200"
    apc.user_ttl="7200"
    apc.gc_ttl="1800"
    apc.optimization = 0
    apc.num_files_hint="1024"
    apc.use_request_time = 1
    apc.mmap_file_mask="/tmp/apc.XXXXXX"
    apc.enable_cli="0"
    apc.slam_defense="0"
    apc.file_update_protection="2"
    apc.max_file_size="1M"
    apc.stat="1"
    apc.write_lock="1"
    apc.report_autofilter="0"
    apc.include_once_override="0"
    apc.rfc1867="0"
    apc.rfc1867_prefix="upload_"
    apc.rfc1867_name="APC_UPLOAD_PROGRESS"
    apc.rfc1867_freq="0"
    apc.localcache="0"
    apc.localcache.size="512"
    apc.coredump_unmap="0"

  12. Place the following code inside a info.php script on your site:

    <?php
    phpinfo();
    ?>

  13. Access that script on your site such as http://example.com/info.php. Look for the apc section: apc enabled in phpinfo

    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!

Did you find this article helpful?

We value your feedback!

Why was this article not helpful? (Check all that apply)
The article is too difficult or too technical to follow.
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.
How did you find this article?
Please tell us how we can improve this article:
Email Address
Name

new! - Enter your name and email address above and we will post your feedback in the comments on this page!

Related Questions

Here are a few questions related to this article that our customers have asked:
Ooops! It looks like there are no questions about this page.
Would you like to ask a question about this page? If so, click the button below!
Ask a Question
n/a Points
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.

Staff
18,399 Points
2014-12-10 6:49 pm
Hello Mark,

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.

Regards,
Arnel C.
n/a Points
2014-12-10 7:37 pm

Hi Arnel, 

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! 

Best Regards,

mark

n/a Points
2014-12-10 7:21 pm

Hi Arnel, 

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.

Thanks,

mark

Staff
18,399 Points
2014-12-10 7:43 pm
Hello Mark,

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.

Regards,
Arnel C.
Staff
18,399 Points
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!
Arnel C.

Post a Comment

Name:
Email Address:
Phone Number:
Comment:
Submit

Please note: Your name and comment will be displayed, but we will not show your email address.

6 Questions & Comments

Post a comment

Back to first comment | top

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!