nginx+php5.5 Environment Installation
1. Installing dependent Packages
Yum install-y gcc gcc-c++ make cmake* autoconf* Apr apr-util libcurl* libxml2 libxml2-devel gd gd-devel Bzip2-dev El freetype* ncurse* bison* openssl* libjpeg*
2. Download php5.5
Http://www.php.net/downloads.phpwget http://cn2.php.net/distributions/php-5.5.22.tar.gz
3. Compiling the installation
TAR-XVF php-5.5.22.tar.gzcd php-5.5.22./configure--prefix=/usr/local/php5--with-config-file-path=/usr/local/php5 /etc--with-bz2--with-curl--enable-ftp--enable-sockets--disable-ipv6--with-gd--with-jpeg-dir=/usr/ Local--with-png-dir=/usr/local--with-freetype-dir=/usr/local--enable-gd-native-ttf--with-iconv-dir=/usr/ Local--enable-mbstring--enable-calendar--with-gettext--with-libxml-dir=/usr/local--with-zlib--with-pdo-mysql= Mysqlnd--with-mysqli=mysqlnd--with-mysql=mysqlnd--enable-dom--enable-xml--enable-fpm--with-libdir= Lib64makemake Install
Note: This parameter supports, FTP, image function, PDO and other support, because the use of PHP comes with mysqlnd, so there is no need to install the MySQL Lib library.
If you are a 64-bit system, add--with-libdir=lib64 after the parameters
If PHP does not require the support of curl and FTP, the above –with-curl–enable-ftp can be removed.
4. Configure PHP
CP php.ini-production/usr/local/php5/etc/php.inicp/usr/local/php5/etc/php-fpm.conf.default/usr/local/php5/etc/ Php-fpm.conf
5. Start PHP-FPM
/usr/local/php5/sbin/php-fpm
Execute the above command, if no error is normally said to start normal, if not at ease, can also be judged by the port is php no boot
# NETSTAT-LNT | grep 9000tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
6. Installing Nginx
Reference http://running.iteye.com/blog/326873
7. Configure Nginx
vi/usr/local/nginx/conf/nginx.conf Server { listen ; #server_name 127.0.0.1; Root /data/www/test/; CharSet Utf-8; Index index.html index.php; Location/{ try_files $uri $uri//index.php? $args; } # Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { EXPIRES-1S;
try_files $uri =404; Fastcgi_split_path_info ^ (. +\.php) (/.+) $; Include Fastcgi_params; Fastcgi_param path_info $fastcgi _path_info; Fastcgi_index index.php; Fastcgi_param script_filename $document _root$fastcgi_script_name; Fastcgi_pass 127.0.0.1:9000; } Location ~. *\. (Jpg| Jpg|jpeg| Jpeg|css|bmp|gif| Gif|png| PNG) $ { access_log off; } }
8. Writing Test files
cd/data/www/phptest/vi/data/www/phptest/index.php
9. Start PHP-FPM and Nginx test
PHP-FPM start
/usr/local/php5/sbin/php-fpm
Nginx Boot
/usr/local/nginx/sbin/nginx
10.PHP-FPM Common Commands
INT, term immediately terminates
QUIT Smooth Termination
USR1 Reopen log file
USR2 smoothly overloads all worker processes and reloads the configuration and binary modules
Example:
PHP-FPM off:
Kill-int ' Cat/usr/local/php/var/run/php-fpm.pid '
PHP-FPM Restart:
KILL-USR2 ' Cat/usr/local/php/var/run/php-fpm.pid '
To view the number of PHP-FPM processes:
PS aux | Grep-c PHP-FPM
11. Change to Stock
Nginx will connect the loopback address 9000 port to execute PHP files, need to use the TCP/IP protocol, the speed is slow. We recommend that you switch to connect using the socket.
Create socket file
#touch/tmp/php-cgi/php-cgi.socket
Vim nginx.conf
Modify:
# Fastcgi_pass 127.0.0.1:9000;fastcgi_pass Unix:/tmp/php-cgi/php-cgi.socket;
In php-fpm.conf, modify the configuration to:
#listen = 127.0.0.1:9000listen =/tmp/php-cgi/php-cgi.socket