您的位置:首页 > 运维架构 > Nginx

php + nginx 编译安装

2017-01-06 13:34 246 查看
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+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 便可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: