Nginx下编译PHP+Mysql

先说一下PHP在Apache和Nginx下所扮演的角色

apache一般是把php当做自己的一个模块来启动的.

而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式,可以说.nginx和php是平级关系

因此,为apache所编译的php,是不能用于nginx的.

yum安装mysql

yum install mysql mysql-devel mysql-server

安装它们所以来的一些库,可以yum安装,依赖库在  http://www.90book.cn/416.html   下有说明 ,如 gd ,ttf,libxml,png,freetype 等,可根据在编译过程中提示的错误来逐步完善安装所需要的依赖库,以fpm(fastcgi)方式运行

yum install db         //yum 安装gd
yum install ttf        //yum 安装ttr
yum install freetype   //yum安装字体库
yum install libxml2
yum install libxml2-devel -y

其次还有png  ......

准备去下载php

//几乎包括所有的PHP版本

cd /usr/local/src/   然后以      5.4.22 版本测试  
wget  http://mirror.cogentco.com/pub/php/php-5.4.22.tar.gz 
tar zxvf php-5.4.22.tar.gz                
./configure --help|grep php-fpm   //执行返回下块代码

--with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

--with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

./configure --help|grep fpm      //执行返回下块代码

--enable-fpm              Enable building of the fpm SAPI executable

--with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

--with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

               should usually be set to match the fpm username (default: nobody)

--with-fpm-systemd      Activate systemd integration

注意: 我们编译的PHP 要有如下功能:

连接mysql, gd, ttf, 以fpm(fascgi)方式运行

./configure  --prefix=/usr/local/php 
--with-mysql=mysqlnd 
--enable-mysqlnd 
--with-gd 
--enable-gd-native-ttf 
--enable-gd-jis-conv 
--enable-fpm
make && make install

解析编译完毕后进入编译安装后的 /usr/local/php 目录

cp /usr/local/src/php-5.4.22/php.ini-development ./lib/php.ini
cp etc/php-fpm.conf.default etc/php-fpm.conf
./sbin/php-fpm 
ps aux| grep php   //查看进程返回以下代码
root    50336  0.3  0.2 139956  2988 ?     Ss 09:11 0:00 php-fpm: master process (/usr/local/fastphp/etc/php-fpm.conf)
nobody   50337  0.0  0.2 139956  2624 ?    S  09:11   0:00 php-fpm: pool www
nobody   50338  0.0  0.2 139956  2624 ?     S  09:11   0:00 php-fpm: pool www
root     50343  0.0  0.0 103248   836 pts/4 S+ 09:12   0:00 grep php

配置nginx

vim /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
         root html;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
          #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         include        fastcgi_params;
}

1:碰到php文件,

2: 把根目录定位到 html,

3: 把请求上下文转交给9000端口PHP进程,

4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname

./sbin/nginx -s reload

然后启动mysql服务,或者在nginx的html目录下来一个index.php文件查看phpinfo等,最后访问ip 

原文地址:https://www.cnblogs.com/wt645631686/p/6868472.html