Nginx installation is very straight forward, we can download latest source code from http://nginx.org/en/download.html or point our yum source to http://nginx.org/packages/OS/OSRELEASE/$basearch/ and install using yum.
Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “5” or “6”, for 5.x or 6.x versions, respectively.
So for CentOS 6.3, we can point our YUM source to: http://nginx.org/packages/centos/6/$basearch/
If we install nginx using YUM, its binary is at /usr/sbin/nginx and configuration file at /etc/nginx/nginx.conf
[root@centos ~]# cat /etc/sysconfig/nginxWe can use service command to start and stop nginx service:
# Configuration file for the nginx service.
NGINX=/usr/sbin/nginx
CONFFILE=/etc/nginx/nginx.conf
[root@centos ~]# service nginx stopIn Apache, the most common way of running PHP is through php5_module, we need to compile PHP against Apache and load mod_php module in Apache configuration files.
Stopping nginx: [ OK ]
[root@centos ~]# service nginx start
Starting nginx: [ OK ]
[root@centos ~]# service nginx status
nginx (pid 2518) is running...
Unlike Apache, the most common way of running PHP in Nginx is through fastcgi
To configure fastcgi, add these lines to nginx.conf
location ~ \.php$ {Restart nginx to make our changes take effect
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
[root@centos conf.d]# service nginx restartAll the requests to PHP will be served by fastcgi running localhost port 9000, to start fastcgi on localhost, run this command
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
[root@centos conf.d]# php-cgi -b 127.0.0.1:9000 &Confirm php-cgi is listening on port 9000
[root@centos conf.d]# netstat -pan | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3209/php-cgi
Now create our info.php in directory /usr/share/nginx/html
[root@centos conf.d]# cat <<EOF > /usr/share/nginx/html/info.php
> <?php
> phpinfo();
> ?>
> EOF
Launch web browser and visit http://localhost/info.php, the value of Server API should be CGI/FastCGI
FastCGI Process Manager (FPM) provides more features useful for heavy load sites, in production we should use FPM instead.
Since PHP 5.3.3, FPM is included in the PHP cores, we can use --enable-fpm to turn on php-fpm when installing PHP.
References:
http://nginx.org
http://news.netcraft.com/archives/2013/11/01/november-2013-web-server-survey.html
http://php-fpm.org/download/
http://www.php.net/manual/en/install.fpm.install.php
No comments:
Post a Comment