LNMP 全功能编译安装 for CentOS 6.3笔记(3)

# tar -jxvf php-5.4.13.tar.bz2

# cd php-5.4.13

此处编译安装了我们项目经常用到的PHP模块,如有其它需要可以自定义添加.

#./configure --prefix=/usr/local/php5 --enable-fastcgi --enable-fpm --with-libxml-dir=/usr/local/lib --with-zlib-dir=/usr/local/lib --with-MySQL=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --enable-soap --enable-sockets --enable-xml --enable-mbstring --with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-curl=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype/ --enable-bcmath --enable-maintainer-zts

在“./configure”编译选项中,“--enable-fastcgi”是启用对PHP的FastCGI支持,“--enable-fpm”是激活对FastCGI模式的fpm支持

# make

# make install

安装结束后:

添加php配置文件,需要CP 一个源码里面的php.ini-development或php.ini-production

到/usr/local/php/lib 为 php.ini

# cd ~/php-5.4.13

# cp php.ini-development /usr/local/php5/lib/php.ini

PHP配置: (修改php.ini,默认目录/usr/local/php5/lib/php.ini)

# vi /usr/local/php5/lib/php.ini

-------------------------

expose_php = Off

display_errors = Off

date.timezone =PRC

log_errors = On

error_log = /usr/local/nginx/logs/php_error.log

-------------------------

配置启动FastCGI进程:

# cd /usr/local/php5/etc/

# cp php-fpm.conf.default php-fpm.conf

优化配置:

# vi php-fpm.conf

内存小于4G服务器(值可逐级递减):

修改如下参数:

--------------

pm=dynamic

pm.max_children=40

pm.start_servers=10

pm.min_spare_servers=10

pm.max_spare_servers=40

--------------

内存大于4G服务器(值可逐级递增):

修改如下参数:

--------------

pm=static

pm.max_children=100

--------------

启动服务:

# /usr/local/php5/sbin/php-fpm

# ps -ef|grep php-fpm

----------------------------

root 3829 1 0 01:33 ? 00:00:00 php-fpm: master process

(/usr/local/php5/etc/php-fpm.conf)

nobody 3830 3829 0 01:33 ? 00:00:00 php-fpm: pool www

nobody 3831 3829 0 01:33 ? 00:00:00 php-fpm: pool www

root 3836 1908 0 01:36 pts/0 00:00:00 grep php-fpm

----------------------------

重启fpm:

# pkill php-fpm

# /usr/local/php5/sbin/php-fpm

配置nginx支持php:

由于Nginx本身不会对PHP进行解析,因此要实现Nginx对PHP的支持,其实是将对PHP页面的请求交给fastCGI进程监听的IP地址及端口。如果把php-fpm当做动态应用服务器,那么Nginx其实就是一个反向代理服务器。

Nginx通过反向代理功能实现对PHP的解析,这就是Nginx实现PHP动态解析的原理。

这里假定Nginx的安装目录为/usr/local,则Nginx配置文件的路径为/usr/local/nginx/conf/nginx.conf。下面是在Nginx下支持PHP解析的一个虚拟主机配置实例。

# vi /usr/local/nginx/conf/nginx.conf

添加到http层级:

----------------

server {

server_name ;

location / {

index index.html index.php;

root /usr/local/nginx/html/www.abc.com;

}

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/www.abc.com$fastcgi_script_name;

include fastcgi_params;

}

}

------------------

通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,而这里的IP地址和端口就是FastCGI进程监听的IP地址和端口。

fastcgi_param指令指定放置PHP动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,这里是/usr/local/nginx/html/www.abc.com目录,建议将这个目录与Nginx虚拟主机指定的根目录保持一致.

fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件,这里通过include指令将FastCGI参数配置文件包含了进来。

测试NGINX是否加载PHP

# vi /usr/local/nginx/html/www.abc.com/info.php

---------------

<?php

echo phpinfo();

?>

---------------

重启nginx服务

# service nginx restart

检查80端口是否打开

# lsof -i:80

浏览器输入(注意修改本机HOST文件)

显示有如下测试页面内容,PHP在GNINX下加载成功

LNMP 全功能编译安装 for CentOS 6.3笔记

LNMP 全功能编译安装 for CentOS 6.3笔记

在配置完成Nginx+FastCGI之后,为了保证Nginx下PHP环境的高速稳定运行,需要添加一些FastCGI优化缓存指令。

推荐在项目稳定后可添加如下代码。

项目页面测试阶段或经常改动页面可能造成新添加的功能无法实现,不推荐使用。

下面给出一个优化实例,将下面代码添加到Nginx主配置文件中的HTTP层级。

# vi /usr/local/nginx/conf/nginx.conf

添加到http层级:

--------------------------

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

fastcgi_cache TEST;

fastcgi_cache_valid 200 302 1h;

fastcgi_cache_valid 301 1d;

fastcgi_cache_valid any 1m;

-----------------------

至此,MYSQL+Nginx+PHP(Fastcgi)大功告成。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6ba9efbe2670b5511fcc0ab5c8c2699c.html