Introduction
Apache is popular web server software that is used by most web hosting providers. PHP5-FPM is a FastCGI implementation for PHP. It is useful for processing PHP scripts on busy websites.
Rationale
Normally, Apache uses mod_php to process PHP pages on your VPS. Mod_php consumes more resources than PHP5-FPM. Since Apache is also compatible with PHP5-FPM, we can use that option to reduce the resource usage and improve performance.
Installation
Step 1
Install and activate apache2-mpm-event
by running the following commands:
sudo apt-get update
sudo apt-get install apache2-mpm-event
You can test Apache’s server status with this command:
sudo service apache2 status
If the service is running, “apache2 is running” will be printed to your terminal. Otherwise, you can start the service with this command:
sudo service apache2 start
Step 2
To use PHP5-FPM with Apache, we need to install libapache2-mod-fastcgi
module. The libapache2-mod-fastcgi
module is not available in the Ubuntu package. Therefore, we need to update the apt
sources. Follow these steps.
- Run the following command to edit the source list:
sudo nano /etc/apt/sources.list
- Add the following lines at the end of the file:
deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
- Press CTRL + X, then Y to save the file.
- Install
libapache2-mod-fastcgi
:sudo apt-get update sudo apt-get install libapache2-mod-fastcgi
Step 3
Install PHP5-FPM with the following command:
sudo apt-get install php5-fpm
Step 4
Create the PHP5-FPM configuration file for Apache:
sudo nano /etc/apache2/conf-available/php5-fpm.conf
… then add the following lines:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
Press CTRL + X, then Y to save the file.
Enable the new modules and configuration for Apache:
sudo a2enmod actions fastcgi alias
sudo a2enconf php5-fpm
Finally, restart Apache:
sudo service apache2 restart
Step 5
Test your installation by creating a test PHP file:
sudo nano /var/www/html/info.php
Add the following content to the file:
<?php phpinfo(); ?>
Press CTRL + X, then Y to save the file.
Now open the http://[SERVER_IP_ADDRESS]/info.php
in browser. Upon success, you will see information about PHP and your server. Your setup is now complete.