php + nginx 编译安装

来源:互联网 发布:网上淘宝兼职可靠吗 编辑:程序博客网 时间:2024/05/17 04:53

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

nginx则是把http请求变量(get,user_agent)转发给php进程,php独立进程,nginx进行通信.称为 fastcgi运行方式.

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


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

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

./configure  --prefix=/usr/local/php7 \   #安装php的目录

--with-mysql=mysqlnd \

--enable-mysqlnd \

--with-gd \

--enable-gd-native-ttf \

--enable-gd-jis-conv \ (每个斜线后面都要加空格,编译不通过)

--enable-fpm  #使php已fastcgi 方式运行,独立进程

"\" 表示在命令行 可以换行,但是每个参数与 \ 之间 要有空格,否则编译完php 在php的安装目录中不会有sbin  目录

================================================================================

编译完之后操作步骤

1、cp /usr/local/src/php-7/php.ini-development     /usr/local/php7/lib/php.ini # 拷贝php配置文件

2、cp /usr/local/php7/etc/php-fpm.conf.default  /usr/local/php7/etc/php-fpm.conf  #产生 php-fpm 配置文件


开启php-fpm

3、/usr/local/php7/sbin/php-fpm

但是编译php7可能有以下问题


/usr/local/php7/sbin/php-fpm

[02-Jan-2016 01:56:48] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 125.

php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 125.

[02-Jan-2016 01:55:33] ERROR: No pool defined. at least one pool section must be specified in config file
[02-Jan-2016 01:55:33] ERROR: failed to post process the configuration
[02-Jan-2016 01:55:33] ERROR: FPM initialization failed

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

从最初的warning开始追起 大概知道是在/usr/local/php7/etc/php-fpm.d/缺少了一个.conf文件 然后进入此目录

发现有一个 www.conf.default 按照常识应该应该进行如下操作

cp www.conf.default www.conf

再次运行/usr/local/php7/sbin/php-fpm

便可以了!!

===============================================

编译完之后再来配置nginx

nginx+php的配置比较简单,核心就一句话---- 把请求的信息转发给9000端口的PHP进程,让PHP进程处理 指定目录下的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;

}


至此重启nginx 便可以了



















0 0