Contents...
FastCGI work as a middle ground between the PHP Apache module and the CGI application. When PHP scripts executed with FastCGI each request is passed from the web server to FastCGI via a communication socket. It Allows for much greater scalability as the web server and the PHP interpreter can be split into their own individual server environments if necessary. However a similar end result can also be achieved using nginx in front of Apache (such that nginx handles basic requests itself and only passes dynamic requests to Apache).
In this tutorial I will show how you can setup Apache with PHP and FastCGI on CentOS and RHEL system.
Setup Apache with PHP and FastCGI
Follow the below steps to setup Apache with PHP and FastCGI.
Step #1 : Install EPEL and REMI Repository
First of all you have to install EPEL and REMI repository on your system. Follow the below link to install EPEL and REMI repository.
Step #2 : Apache Installation
Now install the latest Apache on your system. Follow the bellow command to install latest Apache.
# yum install httpd
Step #3 : PHP and FastCGI Installation
Once installing Apache on your system now install PHP and FastCGI apache module on your system. Follow the bellow command to install the PHP and FastCGI.
# yum install php php-cli mod_fcgid
Step #4 : Disable Default PHP Handler
You have to disable default PHP handler on your system before using PHP/FastCGI handler. Edit the PHP configuration file for Apache /etc/httpd/conf.d/php.conf and comment out the below lines as shown below.
# <FilesMatch \.php$> # SetHandler application/x-httpd-php # </FilesMatch>
Step #5 : Enable FastCGI Handler
You have successfully installed Apache FastCGI module, now lets navigate to /var/www/cgi-bin directory, if this directory does not exist now create it. Then create php.fastcgi file and the below lines to this file. Make sure php.ini and php-cgi file should be there on the system.
# vim /var/www/cgi-bin/php.fastcgi #!/bin/bash PHPRC="/etc/php.ini" PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000 export PHPRC export PHP_FCGI_CHILDREN export PHP_FCGI_MAX_REQUESTS exec /usr/bin/php-cgi
Next change the permission of php.fastcgi script to make it executable by apache user.
# chown apache:apache /var/www/cgi-bin/php.fastcgi # chmod +x /var/www/cgi-bin/php.fastcgi
Step #6 : Setup VirtualHost with FastCGI
Now create a apache virtualhost file with fastcgi support.
# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80> ServerName www.looklinux.com ServerAdmin [email protected] DocumentRoot/var/www/html ScriptAlias/cgi-canister/"/var/www/cgi-receptacle/" <Directory "/var/www/html"> Alternatives +Indexes +FollowSymLinks +ExecCGI AddHandler php-fastcgi .php Activity php-fastcgi/cgi-canister/php.fastcgi AllowOverride All Request allow,deny Permit from All </Directory> </VirtualHost>
Save and close file.
Step #7 : Restart Apache
Now restart the apache web service to apply changes.
# service httpd restart
Step #8 : Testing
To test your setup create a phpinfo page in your web document root /var/www/html/phpinfo.php and add the below lines.
<?php phpinfo(); ?>
Save and close file.
Now open your web browser and access the below URL and look at the value Server API if you get the CGI/FastCGI value it means your server successfully configured with FastCGI.
http://www.looklinux.com/phpinfo.php
If you find this tutorial helpful please share with your friends to keep it alive. For more helpful topic browse my website www.looklinux.com. To become an author at LookLinux Submit Article. Stay connected to Facebook.
Leave a Comment