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 便可以了
而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 便可以了
相关文章推荐
- Mac OS Lion 下编译安装Nginx 1.0.12 + PHP 5.3.10 + Mysql 5.5.18 + Xdebug + PHPUnit
- 编译安装spawn-fcgi(nginx通过FastCGI方式调用PHP)
- [转]Ubuntu 11.10编译安装nginx、PHP 5.3.8、mysql
- ubuntu编译安装PHP5.4.0+Nginx(FPM/FastCGI)
- Nginx PHP MySql 编译安装
- php编译安装、加速及与nginx的整合
- Mysql+Nginx+Apache2+PHP网站环境搭建(编译安装)
- CentOS 6.2 上编译安装 Nginx 1.0.15 + PHP 5.3.12 + MySQL 5.1.62
- 在 Debian 上源码编译和安装 Nginx+PHP+FastCGI+MySQL
- 获取安装后Apache、MySQL、Nginx、PHP编译时参数
- 64位 CentOS 5.6 中 Nginx + php + mysql 的编译安装
- 在CENT OS 上编译安装NGINX+PHP+MYSQL
- 编译安装LNMP Centos 6.5 x64 + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19
- php编译安装、加速及与nginx的整合
- ubuntu编译安装PHP5.4.0+Nginx(FPM/FastCGI)
- CentOS下编译安装Nginx+PHP+MySQL
- CentOS 6.0(X64)下编译安装LNMP平台( Nginx1.0.10 + PHP5.3.8 + Mysql5.5.18 )
- CentOS 编译 nginx+php+mysql 安装手记
- 在 Debian 上源码编译和安装 Nginx+PHP+FastCGI+MySQL
- wdOS系统下源码编译安装LNAMP(linux+nginx+apache+mysql+php)