在nginx中,我们使用的是php-fpm来对php页面解析,PHP-FPM其实是PHP源代码的一个补丁(模块),使用fastcgi协议对php页面做解析执行的。
在php5.5.3之前需要装PHP-FRM补丁包,5.5.3之后PHP中直接整合了PHP-FPM无需下载补丁包
目录
1)配置修改 fpm 配置 php-fpm.conf.default文件名称
6.在 nginx.conf文件的server中添加下面内容支持php
1)安装依赖包:
yum -y install gcc autoconf freetype gd libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel freetype-devel libjpeg-devel bzip2 bzip2-devel openssl openssl-devel
2)安装libmcrypt
实现php安全的依赖包
上传软件包:
解压,切到解压目录、指定安装路径、make编译安装
tar zxf libmcrypt-2.5.7
cd libmcrypt-2.5.7
./configure --prefix=/usr/local/libmcrypt && make && make install
3)解压php包
tar zxvf php-5.6.36.tar.gz -C /usr/local/src/
2.安装php
1)预编译
cd /usr/local/src/php-5.6.36/
./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/usr/local/php5.6/etc/ --with-bz2 --enable-maintainer-zts
参数选项:
Php配置选项中文手册
http://php.net/manual/zh/configure.about.php
相关选项的解释:
--prefix=/usr/local/php5.6 //安装位置
--with-mysql=mysqlnd //支持mysql
--with-pdo-mysql=mysqlnd //支持pdo模块
--with-mysqli=mysqlnd //支持mysqli模块
注:以上三项的作用:数据库与php不再一个服务器上,指定此方式,安装数据库连接驱动
--enable-mbstring #多字节字符串的支持
--with-curl #支持CURL
--with-gd #支持gd库
--enable-fpm #支持构建fpm
--with-openssl #支持openssl模块
--enable-sockets #启用socket支持
--enable-sysvshm #启用系统共享内存支持
--enable-sysvshm #启用系统共享内存支持
--with-freetype-dir #支持freetype、就要装freetype-devel、跟字体相关的、字体解析工具
--with-jpeg-dir
--with-png-dir
注:上面的二选项的作用:处理jpeg、png图片的、php可以动态生成jpeg图片
--with-zlib #是个压缩库、在互联网传输时用来压缩传输的
--with-libxml-dir=/usr #这个libxml是用来解析xml的、指定/usr下
--enable-xml #支持xml的
--with-mhash #支持mhash
--with-mcrypt=/usr/local/libmcrypt #libmcrypt-devel这个程序包所指定的
--with-config-file-path=/usr/local/php5.6/etc #指定配置文件的存放路径的
--with-config-file-scan-dir=/etc/php.d #配置文件扫描路径
--with-bz2 #支持BZip2
2)编译安装
make
make install
3.生成php.ini 配置文件
cp /usr/local/src/php-5.6.36/php.ini-production /usr/local/php5.6/etc/php.ini
1)配置修改 fpm 配置 php-fpm.conf.default文件名称
cd /usr/local/php5.6/etc/
cp php-fpm.conf.default php-fpm.conf
2)修改默认运行账号
修改默认运行用户,组为www,跟nginx的程序用户对应
[root@web etc]# vim php-fpm.conf
user = www
group = www
pid = run/php-fpm.pid
pm.max_children = 300 #fpm最大进程数
pm.start_servers = 20 #fpm 服务启动时开启进程数
pm.min_spare_servers = 20 # 最小 fpm 空闲进程,一般和 pm.start对应即可,当空闲进程小于20 php会增加空闲进程。
pm.max_spare_servers = 100 #最大 fpm 空闲进程
4.复制 php-fpm启动脚本到init.d
cp /usr/local/src/php-5.6.36/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
1)赋予执行权限
chmod +x /etc/init.d/php-fpm
5.添加开机启动
chkconfig --add php-fpm
chkconfig php-fpm on
1)启动服务
/etc/init.d/php-fpm start
查看端口状态:
6.在 nginx.conf文件的server中添加下面内容支持php
location / {
root /var/www/html;
index index.php ;
}
location ~ .*\.(php|php5)$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
7.配置nginx支持index.php
1)创建index.php文件
vim index.php
<?php
phpinfo(); #php代码函数,获取php信息
?>
vim test.php
<?php
$link=mysql_connect('192.168.30.22','test','123');
if ($link) echo "connection success....";
mysql_close();
?>
2)创建mysql创建测试账号
创建授权test账号
mysql -uroot -p123
mysql> grant all on *.* to test@'%' identified by '123';
mysql> flush privileges;
测试:
http://192.168.30.150/test.php
访问数据库成功。