<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nginx &#8211; lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</title>
	<atom:link href="http://lifelinux.com/category/webserver/nginx/feed/" rel="self" type="application/rss+xml" />
	<link>http://lifelinux.com</link>
	<description>All About Linux !</description>
	<lastBuildDate>Wed, 09 Oct 2013 07:56:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.18</generator>
	<item>
		<title>How To Install Nginx And PHP-FPM On CentOS 6 Via Yum</title>
		<link>http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/</link>
					<comments>http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/#comments</comments>
		
		<dc:creator><![CDATA[lifeLinux]]></dc:creator>
		<pubDate>Thu, 16 Feb 2012 16:17:40 +0000</pubDate>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Sys Admin]]></category>
		<category><![CDATA[WebServer]]></category>
		<category><![CDATA[chow command]]></category>
		<category><![CDATA[compile nginx and php]]></category>
		<category><![CDATA[freebsd nginx]]></category>
		<category><![CDATA[host names]]></category>
		<category><![CDATA[install nginx]]></category>
		<category><![CDATA[install nginx and php on linux]]></category>
		<category><![CDATA[install nginx and php-fpm]]></category>
		<category><![CDATA[install nginx on centos]]></category>
		<category><![CDATA[install nginx via yum]]></category>
		<category><![CDATA[install php-fpm]]></category>
		<category><![CDATA[install php-fpm via yum]]></category>
		<category><![CDATA[installing nginx]]></category>
		<category><![CDATA[installing nginx and php-fpm]]></category>
		<category><![CDATA[installing php-fpm]]></category>
		<category><![CDATA[mime types]]></category>
		<category><![CDATA[mkdir command]]></category>
		<category><![CDATA[necessary directories]]></category>
		<category><![CDATA[nginx and php-fpm]]></category>
		<category><![CDATA[nginx configuration file]]></category>
		<category><![CDATA[nginx named based virtual hosting]]></category>
		<category><![CDATA[nginx php-fpm]]></category>
		<category><![CDATA[nginx virtual hosting]]></category>
		<category><![CDATA[server config]]></category>
		<category><![CDATA[server error log]]></category>
		<category><![CDATA[vi command]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[worker processes]]></category>
		<category><![CDATA[www user]]></category>
		<category><![CDATA[yum install nginx]]></category>
		<category><![CDATA[yum install php-fpm]]></category>
		<guid isPermaLink="false">http://www.lifelinux.com/?p=1339</guid>

					<description><![CDATA[<p>In the last article, I showed you how to install Nginx and PHP (PHP-FPM) on CentOS 6 from source. Today, I&#8217;m going to show you how to install Nginx with PHP-FPM via yum. Before starting to install Nginx and PHP-FPM, you must uninstall all previous Apache and PHP related RPMs installed on your system. Login [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/">How To Install Nginx And PHP-FPM On CentOS 6 Via Yum</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p></p><p>In the <a href="http://www.lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/">last article</a>, I showed you how to install Nginx and PHP (PHP-FPM) on CentOS 6 from source. Today, I&#8217;m going to show you how to install Nginx with PHP-FPM via yum.<br />
<span id="more-1339"></span><br />
Before starting to install Nginx and PHP-FPM, you must uninstall all previous Apache and PHP related RPMs installed on your system. Login as root and type the following command</p>
<pre># yum remove httpd* php*</pre>
<h2>Enabling Additional Repositories</h2>
<p>By default, php-fpm is not available from the official CentOS repositories, but from the Remi RPM repository which itself depends on the EPEL repository; we can enable both repositories as follows:</p>
<pre># yum install yum-priorities -y
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm</pre>
<p>Sample outputs</p>
<pre>Retrieving http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
warning: /var/tmp/rpm-tmp.00kiDx: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]</pre>
<h2>Installing Nginx</h2>
<p>Type the following command</p>
<pre># yum install nginx</pre>
<p>Sample outputs</p>
<pre>Dependencies Resolved

================================================================================
 Package                  Arch      Version                    Repository  Size
================================================================================
Installing:
 nginx                    x86_64    0.8.54-1.el6               epel       358 k
Installing for dependencies:
 GeoIP                    x86_64    1.4.8-1.el6                epel       620 k
 fontconfig               x86_64    2.8.0-3.el6                base       186 k
 freetype                 x86_64    2.3.11-6.el6_1.8           updates    358 k
 gd                       x86_64    2.0.35-10.el6              base       142 k
 libX11                   x86_64    1.3-2.el6                  base       582 k
 libX11-common            noarch    1.3-2.el6                  base       188 k
 libXau                   x86_64    1.0.5-1.el6                base        22 k
 libXpm                   x86_64    3.5.8-2.el6                base        59 k
 libjpeg                  x86_64    6b-46.el6                  base       134 k
 libpng                   x86_64    2:1.2.46-1.el6_1           base       180 k
 libxcb                   x86_64    1.5-1.el6                  base       100 k
 libxslt                  x86_64    1.1.26-2.el6               base       450 k
 perl                     x86_64    4:5.10.1-119.el6_1.1       base        10 M
 perl-Module-Pluggable    x86_64    1:3.90-119.el6_1.1         base        37 k
 perl-Pod-Escapes         x86_64    1:1.04-119.el6_1.1         base        30 k
 perl-Pod-Simple          x86_64    1:3.13-119.el6_1.1         base       209 k
 perl-libs                x86_64    4:5.10.1-119.el6_1.1       base       575 k
 perl-version             x86_64    3:0.77-119.el6_1.1         base        49 k

Transaction Summary
================================================================================
Install      19 Package(s)
Upgrade       0 Package(s)

Total download size: 14 M
Installed size: 47 M
Is this ok [y/N]: y</pre>
<p>If you want to run nginx by default when the system boots, type the following command</p>
<pre># chkconfig --level 345 nginx on</pre>
<p>To start Nginx for the first time, type the following command</p>
<pre># /etc/init.d/nginx start</pre>
<p>Sample output</p>
<pre>Starting nginx:                                            [  OK  ]</pre>
<h2>Installing PHP-FPM</h2>
<p>Type the following command</p>
<pre># yum --enablerepo=remi install php php-fpm</pre>
<p>Sample outputs</p>
<pre>Dependencies Resolved

====================================================================================
 Package            Arch        Version                          Repository    Size
====================================================================================
Installing:
 php                x86_64      5.3.10-2.el6.remi                remi         2.3 M
 php-fpm            x86_64      5.3.10-2.el6.remi                remi         1.1 M
Installing for dependencies:
 apr                x86_64      1.3.9-3.el6_1.2                  base         123 k
 apr-util           x86_64      1.3.9-3.el6_0.1                  base          87 k
 apr-util-ldap      x86_64      1.3.9-3.el6_0.1                  base          15 k
 httpd              x86_64      2.2.15-15.el6.centos.1           updates      813 k
 httpd-tools        x86_64      2.2.15-15.el6.centos.1           updates       70 k
 libedit            x86_64      2.11-4.20080712cvs.1.el6         base          74 k
 mailcap            noarch      2.1.31-2.el6                     base          27 k
 php-cli            x86_64      5.3.10-2.el6.remi                remi         2.2 M

Transaction Summary
====================================================================================
Install      10 Package(s)
Upgrade       0 Package(s)

Total download size: 6.8 M
Installed size: 21 M
Is this ok [y/N]: y</pre>
<p>If you want to run php-fpm by default when the system boots, type the following command</p>
<pre># chkconfig --level 345 php-fpm on</pre>
<p>PHP was installed with only core modules. It&#8217;s very likely that additional modules will be desired, such as MySQL, XML, GD, etc. Type the following command</p>
<pre># yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt</pre>
<p>To start PHP-FPM for the first time, type the following command</p>
<pre># /etc/init.d/php-fpm restart</pre>
<p>Sample output</p>
<pre>Starting php-fpm:                                          <span style="color: #339966;">[ OK ]</span></pre>
<h2>Configure PHP-FPM and Nginx working together</h2>
<p>The configuration file for Nginx is located at /etc/nginx/nginx.conf. To edit nginx.conf type the following command</p>
<pre># vi /etc/nginx/nginx.conf</pre>
<p>Uncomment and edit as follows</p>
<pre>        ...
	location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm index.php;
        }
        ...
	location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        ...</pre>
<p>Restart Nginx to reload new configuration, enter</p>
<pre># /etc/init.d/nginx reload</pre>
<p>Now create the following PHP file in the document root</p>
<pre># vi /usr/share/nginx/html/info.php</pre>
<p>Append content as follows:</p>
<pre>&lt;?php
phpinfo();
?&gt;</pre>
<p>Access it http://YOUR-SERVER-IP</p>
<p><a href="http://www.lifelinux.com/wp-content/uploads/2012/02/php-fpm.jpg"><img loading="lazy" class="aligncenter size-medium wp-image-1348" title="php-fpm" alt="" src="http://www.lifelinux.com/wp-content/uploads/2012/02/php-fpm-300x220.jpg" width="300" height="220" srcset="http://lifelinux.com/wp-content/uploads/2012/02/php-fpm-300x220.jpg 300w, http://lifelinux.com/wp-content/uploads/2012/02/php-fpm.jpg 611w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<h2>Nginx Virtual Hosting Configuration</h2>
<p><strong>Your sample setup</strong><br />
IP: 192.168.1.113<br />
Domain: domain.local<br />
Hosted at: /home/www/domain.local</p>
<p>Type the following command to create user called www</p>
<pre># useradd www</pre>
<p>Create necessary directories</p>
<pre># mkdir -p /home/www/domain.local/public_html
# mkdir -p /home/www/domain.local/log
# chown -R www.www /home/www/
# chmod 755 /home/www/</pre>
<p>Creating virtual host config file</p>
<pre># cd /etc/nginx/conf.d/
# cp virtual.conf www.conf</pre>
<p>Open www.conf, enter</p>
<pre># vi /etc/nginx/conf.d/www.conf</pre>
<p>Append configuration as follows:</p>
<pre>server {
        server_name  domain.local;
        root /home/www/domain.local/public_html;
        access_log /home/www/domain.local/log/domain.local-access.log;
        error_log /home/www/domain.local/log/domain.local-error.log;

        location / {
                index  index.html index.htm index.php;
        }
        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}</pre>
<p>You can also check the current status as well as the configuration syntax:</p>
<pre># /etc/init.d/nginx configtest</pre>
<p>Sample outputs</p>
<pre>the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful</pre>
<p>Now edit /etc/php-fpm.d/www.conf to change the users who own the php-fpm processes to www, enter</p>
<pre># vi /etc/php-fpm.d/www.conf</pre>
<p>Find &#8220;group of processes&#8221; and edit as follows:</p>
<pre>; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = <span style="color: #008000;">www</span>
; RPM: Keep a group allowed to write in log dir.
group = <span style="color: #008000;">www</span></pre>
<p>Finally restart nginx</p>
<pre># /etc/init.d/nginx restart
# /etc/init.d/php-fpm restart</pre>
<g:plusone href="http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/" size="standard"  annotation="none"   ></g:plusone><p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/">How To Install Nginx And PHP-FPM On CentOS 6 Via Yum</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://lifelinux.com/how-to-install-nginx-and-php-fpm-on-centos-6-via-yum/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>How To Install Nginx And PHP (PHP-FPM) On CentOS 6</title>
		<link>http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/</link>
					<comments>http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/#comments</comments>
		
		<dc:creator><![CDATA[lifeLinux]]></dc:creator>
		<pubDate>Thu, 15 Sep 2011 14:16:45 +0000</pubDate>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[WebServer]]></category>
		<category><![CDATA[compile nginx and php]]></category>
		<category><![CDATA[install nginx]]></category>
		<category><![CDATA[install nginx and php on linux]]></category>
		<category><![CDATA[install nginx on centos]]></category>
		<category><![CDATA[install php-fpm]]></category>
		<category><![CDATA[installing nginx]]></category>
		<category><![CDATA[installing nginx and php-fpm]]></category>
		<category><![CDATA[installing php-fpm]]></category>
		<category><![CDATA[nginx and php-fpm]]></category>
		<category><![CDATA[vi command]]></category>
		<guid isPermaLink="false">http://www.lifelinux.com/?p=1203</guid>

					<description><![CDATA[<p>In this article, I&#8217;ll go over the steps of how to install Nginx and PHP (PHP-FPM) working together on CentOS 6. To start I used clean version of CentOS 6. The first step is update CentOS to latest version, type the following command # yum update -y Install some packages need for the following steps [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/">How To Install Nginx And PHP (PHP-FPM) On CentOS 6</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p></p><p>In this article, I&#8217;ll go over the steps of how to install Nginx and PHP (PHP-FPM) working together on CentOS 6. To start I used clean version of CentOS 6.<br />
<span id="more-1203"></span><br />
The first step is update CentOS to latest version, type the following command</p>
<pre># yum update -y</pre>
<p>Install some packages need for the following steps</p>
<pre># yum install gcc.x86_64 gcc-c++.x86_64 make.x86_64 wget.x86_64</pre>
<h2>Install Nginx</h2>
<p>Download latest version of Nginx at http://nginx.org/</p>
<pre># wget http://nginx.org/download/nginx-1.0.5.tar.gz</pre>
<p>Extract nginx-1.0.5.tar.gz package</p>
<pre># tar zxvf nginx-1.0.5.tar.gz
# cd nginx-1.0.5</pre>
<p>To build nginx, type the following command</p>
<pre># ./configure --prefix=/webserver/nginx --without-mail_pop3_module --without-mail_imap_module  --without-mail_smtp_module --with-http_ssl_module  --with-http_stub_status_module  --with-http_gzip_static_module
# make
# make install</pre>
<p>You may get some errors like the following</p>
<pre>./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre= option.</pre>
<p>To fix it, enter</p>
<pre># yum install pcre-devel.x86_64</pre>
<pre>/configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.</pre>
<p>To fix it, enter</p>
<pre># yum install openssl.x86_64 openssl-devel.x86_64</pre>
<p>When build process completed successfully, it&#8217;ll display as follows</p>
<pre>  Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

  nginx path prefix: "/webserver/nginx"
  nginx binary file: "/webserver/nginx/sbin/nginx"
  nginx configuration prefix: "/webserver/nginx/conf"
  nginx configuration file: "/webserver/nginx/conf/nginx.conf"
  nginx pid file: "/webserver/nginx/logs/nginx.pid"
  nginx error log file: "/webserver/nginx/logs/error.log"
  nginx http access log file: "/webserver/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"</pre>
<p>If you want to run Nginx by default when the system boots, create file called nginx in /etc/init.d/ with following content</p>
<pre>#!/bin/sh
#
# nginx – this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /opt/nginx/conf/nginx.conf
# pidfile: /opt/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] &amp;&amp; exit 0

nginx="/webserver/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/webserver/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
	[ -x $nginx ] || exit 5
	[ -f $NGINX_CONF_FILE ] || exit 6
	echo -n $"Starting $prog: "
	daemon $nginx -c $NGINX_CONF_FILE
	retval=$?
	echo
	[ $retval -eq 0 ] &amp;&amp; touch $lockfile
	return $retval
}

stop() {
	echo -n $"Stopping $prog: "
	killproc $prog -QUIT
	retval=$?
	echo
	[ $retval -eq 0 ] &amp;&amp; rm -f $lockfile
	return $retval
}

restart() {
	configtest || return $?
	stop
	start
}

reload() {
	configtest || return $?
	echo -n $”Reloading $prog: ”
	killproc $nginx -HUP
	RETVAL=$?
	echo
}

force_reload() {
	restart
}

configtest() {
	$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
	status $prog
}

rh_status_q() {
	rh_status &gt;/dev/null 2&gt;&amp;1
}

case "$1" in
	start)
		rh_status_q &amp;&amp; exit 0
		$1
	;;
	stop)
		rh_status_q || exit 0
		$1
	;;
	restart|configtest)
		$1
	;;
	reload)
		rh_status_q || exit 7
		$1
	;;
	force-reload)
		force_reload
	;;
	status)
		rh_status
	;;
	condrestart|try-restart)
		rh_status_q || exit 0
	;;
	*)
		echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
		exit 2
esac</pre>
<p>Chmod nginx with executed permission, enter</p>
<pre># chmod +x /etc/init.d/nginx</pre>
<p>To start Nginx for the first time, type the following command</p>
<pre># /etc/init.d/nginx start</pre>
<h2>Install PHP (PHP-FPM)</h2>
<p>Download latest version of PHP at http://download.php.net</p>
<pre># wget http://www.php.net/get/php-5.3.8.tar.gz/from/ca.php.net/mirror</pre>
<p>To Extract its, enter</p>
<pre># tar zxvf php-5.3.8.tar.gz
# cd php-5.3.8</pre>
<p>To build PHP, I&#8217;ll create bash file called build.sh with following content</p>
<pre>#!/bin/sh
"./configure" \
"--prefix=/webserver/php" \
"--enable-fpm" \
"--with-libdir=lib64" \
"--with-bz2" \
"--with-config-file-path=/webserver/php/etc" \
"--with-config-file-scan-dir=/webserver/php/etc/php.d" \
"--with-curl=/usr/local/lib" \
"--with-gd" \
"--with-gettext" \
"--with-jpeg-dir=/usr/local/lib" \
"--with-freetype-dir=/usr/local/lib" \
"--with-kerberos" \
"--with-mcrypt" \
"--with-mhash" \
"--with-mysql" \
"--with-mysqli" \
"--with-pcre-regex=/usr" \
"--with-pdo-mysql=shared" \
"--with-pdo-sqlite=shared" \
"--with-pear=/usr/local/lib/php" \
"--with-png-dir=/usr/local/lib" \
"--with-pspell" \
"--with-sqlite=shared" \
"--with-tidy" \
"--with-xmlrpc" \
"--with-xsl" \
"--with-zlib" \
"--with-zlib-dir=/usr/local/lib" \
"--with-openssl" \
"--with-iconv" \
"--enable-bcmath" \
"--enable-calendar" \
"--enable-exif" \
"--enable-ftp" \
"--enable-gd-native-ttf" \
"--enable-libxml" \
"--enable-magic-quotes" \
"--enable-soap" \
"--enable-sockets" \
"--enable-mbstring" \
"--enable-zip" \
"--enable-wddx"</pre>
<p>Type the following command to install PHP</p>
<pre># sh build.sh
# make
# make install</pre>
<p>If you have problems building PHP then read the <a href="http://www.lifelinux.com/error-compiling-php-on-centos-x64/">article</a>.<br />
Next step, copy php.ini to /webserver/php/etc/, enter</p>
<pre># cp php.ini-production /webserver/php/etc/php.ini</pre>
<p>Rename php-fpm.conf, enter</p>
<pre># cd /webserver/php/etc
# cp php-fpm.conf.default php-fpm.conf</pre>
<p>Edit php-fpm.conf with following content</p>
<pre>[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = nobody
group = nobody
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500</pre>
<p>If you want to run PHP-FPM by default when the system boots, create file called php-fpm in /etc/init.d/ with following content</p>
<pre>#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO

php_fpm_BIN=/webserver/php/sbin/php-fpm
php_fpm_CONF=/webserver/php/etc/php-fpm.conf
php_fpm_PID=/webserver/php/var/run/php-fpm.pid

php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
	try=0

	while test $try -lt 35 ; do

		case "$1" in
			'created')
			if [ -f "$2" ] ; then
				try=''
				break
			fi
			;;

			'removed')
			if [ ! -f "$2" ] ; then
				try=''
				break
			fi
			;;
		esac

		echo -n .
		try=`expr $try + 1`
		sleep 1

	done

}

case "$1" in
	start)
		echo -n "Starting php-fpm "

		$php_fpm_BIN $php_opts

		if [ "$?" != 0 ] ; then
			echo " failed"
			exit 1
		fi

		wait_for_pid created $php_fpm_PID

		if [ -n "$try" ] ; then
			echo " failed"
			exit 1
		else
			echo " done"
		fi
	;;

	stop)
		echo -n "Gracefully shutting down php-fpm "

		if [ ! -r $php_fpm_PID ] ; then
			echo "warning, no pid file found - php-fpm is not running ?"
			exit 1
		fi

		kill -QUIT `cat $php_fpm_PID`

		wait_for_pid removed $php_fpm_PID

		if [ -n "$try" ] ; then
			echo " failed. Use force-exit"
			exit 1
		else
			echo " done"
		fi
	;;

	force-quit)
		echo -n "Terminating php-fpm "

		if [ ! -r $php_fpm_PID ] ; then
			echo "warning, no pid file found - php-fpm is not running ?"
			exit 1
		fi

		kill -TERM `cat $php_fpm_PID`

		wait_for_pid removed $php_fpm_PID

		if [ -n "$try" ] ; then
			echo " failed"
			exit 1
		else
			echo " done"
		fi
	;;

	restart)
		$0 stop
		$0 start
	;;

	reload)

		echo -n "Reload service php-fpm "

		if [ ! -r $php_fpm_PID ] ; then
			echo "warning, no pid file found - php-fpm is not running ?"
			exit 1
		fi

		kill -USR2 `cat $php_fpm_PID`

		echo " done"
	;;

	*)
		echo "Usage: $0 {start|stop|force-quit|restart|reload}"
		exit 1
	;;

esac</pre>
<p>Chmod php-fpm with executed permission, enter</p>
<pre># chmod +x /etc/init.d/php-fpm</pre>
<p>To start PHP-FPM for the first time, type the following command</p>
<pre># /etc/init.d/php-fpm start</pre>
<h2>Configure PHP-FPM and Nginx working together</h2>
<p>The configuration file for Nginx is located at /webserver/nginx/conf/nginx.conf. To edit nginx.conf type the following command</p>
<pre># vi /webserver/nginx/conf/nginx.conf</pre>
<p>Uncomment the following lines</p>
<pre>        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }</pre>
<p>Type the following command to restart Nginx</p>
<pre># /etc/init.d/nginx restart</pre>
<g:plusone href="http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/" size="standard"  annotation="none"   ></g:plusone><p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/">How To Install Nginx And PHP (PHP-FPM) On CentOS 6</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://lifelinux.com/how-to-install-nginx-and-php-php-fpm-on-centos-6/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
		<item>
		<title>Nginx 413 Request Entity Too Large</title>
		<link>http://lifelinux.com/nginx-413-request-entity-too-large/</link>
					<comments>http://lifelinux.com/nginx-413-request-entity-too-large/#respond</comments>
		
		<dc:creator><![CDATA[lifeLinux]]></dc:creator>
		<pubDate>Fri, 26 Aug 2011 13:10:04 +0000</pubDate>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[WebServer]]></category>
		<category><![CDATA[client request]]></category>
		<category><![CDATA[client_max_body_size]]></category>
		<category><![CDATA[content length]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[image upload]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Request Entity Too Large]]></category>
		<category><![CDATA[reverse proxy]]></category>
		<category><![CDATA[size image]]></category>
		<guid isPermaLink="false">http://www.lifelinux.com/?p=1132</guid>

					<description><![CDATA[<p>I&#8217;m currently running web server using Nginx. And when i try to upload file more than 1M, i got Nginx error 403: Request entity too large. How do I fix this problem and allow file upload upto 2MB in size? client_max_body_size assigns the maximum accepted body size of client request, indicated by the line Content-Length [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://lifelinux.com/nginx-413-request-entity-too-large/">Nginx 413 Request Entity Too Large</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p></p><p>I&#8217;m currently running web server using Nginx. And when i try to upload file more than 1M, i got Nginx error 403: Request entity too large. How do I fix this problem and allow file upload upto 2MB in size?<br />
<span id="more-1132"></span><br />
<strong>client_max_body_size</strong> assigns the maximum accepted body size of client request, indicated by the line Content-Length in the header of request. If size is greater the given one, then the client gets the error &#8220;Request Entity Too Large&#8221; (413). To fix this, type the following command as root</p>
<pre>
# vi /usr/local/nginx/conf/nginx.conf
</pre>
<p>Add client_max_body_size in http section</p>
<pre>
http {
    ....
    client_max_body_size 2M;
    ....
}
</pre>
<p>Save and close the file. Reload the nginx, type the following command</p>
<pre>
# /usr/local/nginx/sbin/nginx -s reload
</pre>
<g:plusone href="http://lifelinux.com/nginx-413-request-entity-too-large/" size="standard"  annotation="none"   ></g:plusone><p>The post <a rel="nofollow" href="http://lifelinux.com/nginx-413-request-entity-too-large/">Nginx 413 Request Entity Too Large</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://lifelinux.com/nginx-413-request-entity-too-large/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How To Optimize Nginx For Maximum Performance</title>
		<link>http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/</link>
					<comments>http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/#comments</comments>
		
		<dc:creator><![CDATA[lifeLinux]]></dc:creator>
		<pubDate>Thu, 25 Aug 2011 13:52:25 +0000</pubDate>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[WebServer]]></category>
		<category><![CDATA[best performance for nginx]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[optimize nginx]]></category>
		<category><![CDATA[Optimizing Nginx]]></category>
		<category><![CDATA[Optimizing Nginx for High Traffic Loads]]></category>
		<category><![CDATA[turning nginx]]></category>
		<guid isPermaLink="false">http://www.lifelinux.com/?p=1027</guid>

					<description><![CDATA[<p>Nginx is an open-source Web Server. It is a high-performance HTTP server that uses very low server resources, is reliable and integrates beautifully with Linux. In this article, I&#8217;ll talk about optimizing your nginx server for maximum performance. Install Nginx with a minimal number of modules Run Nginx with only the required modules. This reduces [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/">How To Optimize Nginx For Maximum Performance</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p></p><p><strong>Nginx</strong> is an open-source Web Server. It is a high-performance HTTP server that uses very low server resources, is reliable and integrates beautifully with Linux. In this article, I&#8217;ll talk about optimizing your nginx server for maximum performance.<br />
<span id="more-1027"></span></p>
<h2>Install Nginx with a minimal number of modules</h2>
<p>Run Nginx with only the required modules. This reduces the memory footprint and hence the server performance. Example configuration</p>
<pre>
./configure --prefix=/webserver/nginx --without-mail_pop3_module --without-mail_imap_module  --without-mail_smtp_module --with-http_ssl_module  --with-http_stub_status_module  --with-http_gzip_static_module
</pre>
<h2>worker_processes</h2>
<p>A worker process is a single-threaded process. If Nginx is doing CPU-intensive work such as SSL or gzipping and you have 2 or more CPUs/cores, then you may set worker_processes to be equal to the number of CPUs or cores. Example, i&#8217;m running nginx on server has CPU is X3340 (4 cores) then i set <strong>worker_processes = 4</strong>. If you are serving a lot of static files and the total size of the files is bigger than the available memory, then you may increase worker_processes to fully utilize disk bandwidth.</p>
<h2>worker_connections</h2>
<p>This sets the number of connections that each worker can handle. You can determine the value by using <strong>ulimit -n</strong> command which output is something like 1024, then your worker connections would need to be set to 1024 or less but 1024 is a good default setting.<br />
You can work out the maximum clients value by multiplying this and the worker_processes settings</p>
<pre>
max_clients = worker_processes * worker_connections
</pre>
<h2>Buffers</h2>
<p>One of the most important things you need to tweak is the buffer sizes you allow Nginx to use. If the buffer sizes are set too low Nginx will have to store the responses from upstreams in a temporary file which causes both write and read IO, the more traffic you get the more of a problem this becomes. Edit and set the buffer size limitations for all clients as follows:</p>
<pre>
client_body_buffer_size 8K;
client_header_buffer_size 1k;
client_max_body_size 2m;
large_client_header_buffers 2 1k;
</pre>
<p>Where,</p>
<p><strong>1. client_body_buffer_size:</strong> The directive specifies the client request body buffer size. If the request body is more than the buffer, then the entire request body or some part is written in a temporary file.<br />
<strong>2. client_header_buffer_size:</strong> Directive sets the headerbuffer size for the request header from client. For the overwhelming majority of requests it is completely sufficient a buffer size of 1K.<br />
<strong>3. client_max_body_size:</strong> Directive assigns the maximum accepted body size of client request, indicated by the line Content-Length in the header of request. If size is greater the given one, then the client gets the error &#8220;Request Entity Too Large&#8221; (413).<br />
<strong>4. large_client_header_buffers:</strong> Directive assigns the maximum number and size of buffers for large headers to read from client request. The request line can not be bigger than the size of one buffer, if the client send a bigger header nginx returns error &#8220;Request URI too large&#8221; (414). The longest header line of request also must be not more than the size of one buffer, otherwise the client get the error &#8220;Bad request&#8221; (400).</p>
<p>You also need to control timeouts to improve server performance and cut clients. Edit it as follows:</p>
<pre>
client_body_timeout   10;
client_header_timeout 10;
keepalive_timeout     15;
send_timeout          10;
</pre>
<p>Where,</p>
<p><strong>1. client_body_timeout:</strong> Directive sets the read timeout for the request body from client. The timeout is set only if a body is not get in one readstep. If after this time the client send nothing, nginx returns error &#8220;Request time out&#8221; (408).<br />
<strong>2. client_header_timeout:</strong> Directive assigns timeout with reading of the title of the request of client. The timeout is set only if a header is not get in one readstep. If after this time the client send nothing, nginx returns error &#8220;Request time out&#8221; (408).<br />
<strong>3. keepalive_timeout:</strong> The first parameter assigns the timeout for keep-alive connections with the client. The server will close connections after this time. The optional second parameter assigns the time value in the header Keep-Alive: timeout=time of the response. This header can convince some browsers to close the connection, so that the server does not have to. Without this parameter, nginx does not send a Keep-Alive header (though this is not what makes a connection &#8220;keep-alive&#8221;).<br />
<strong>4. send_timeout:</strong> Directive assigns response timeout to client. Timeout is established not on entire transfer of answer, but only between two operations of reading, if after this time client will take nothing, then nginx is shutting down the connection.</p>
<g:plusone href="http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/" size="standard"  annotation="none"   ></g:plusone><p>The post <a rel="nofollow" href="http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/">How To Optimize Nginx For Maximum Performance</a> appeared first on <a rel="nofollow" href="http://lifelinux.com">lifeLinux: Linux Tips, Hacks, Tutorials, Ebooks</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://lifelinux.com/how-to-optimize-nginx-for-maximum-performance/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
