Nginx 笔记与总结(10)Nginx 与 PHP 整合
Apache + PHP 的编译 和 Nginx + PHP 的编译,区别:
Apache 一般把 PHP 当作自己的一个模块来启动;
Nginx 则是把 HTTP 请求变量(如 get,user_agent)转发给 PHP 独立进程,与 Nginx 进行通信,称为 fastcgi 运行方式。
因此,为 Apache 所编译的 PHP 是不能用于 Nginx 的;为 Nginx 所编译的 PHP 要以 fpm(fastcgi,fastcgi 通俗地讲就是两个程序之间的通信)方式运行。
进入 PHP 解压后的目录:
cd /root/php-5.3.10
重新编译,编译的目录要和已经为 Apache 编译的 PHP 目录区分开(可以命名为 fastcgiphp 或者 fastphp)
配置:
./configure --prefix=/usr/local/fastphp \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-fpm
配置完成:
附:配置需要的选项可以通过 ./configure -help 命令来查找,例如
php 以 fpm 方式运行可以通过:
[root@localhost php-5.3.10]# ./configure --help|grep php-fpm
[root@localhost php-5.3.10]# ./configure --help|grep fpm
php 和 mysql 相关的选项可以通过:
[root@localhost php-5.3.10]# ./configure -help|grep mysql
mysqlnd 是 php mysql 的原生驱动目录。
再如 安装 php 时还需要安装 gd 图形库:
[root@localhost php-5.3.10]# ./configure -help|grep gd
nginx 与 php 整合
在 Apache 中,php 是作为 apache 的一个模块存在的;而 nginx 和 php 则是两个平等的模块, php 占用 9000 端口,当 nginx 收到运行 php 的请求后,将请求信息转发给 9000 端口的 php进程,让 php 进程处理指定目录下的 php 文件,php 处理完后再返回给 nginx, nginx 再把响应返回给用户。因此在 nginx 的配置中,需要针对 .php 的文件进行一次转发,转发给 php 进程。
【例】遇到 php 文件,把根目录定位到 html,把请求上下文转交给 9000 端口的 php 进程,并告诉 php 进程当前的脚本是 $document_root$fastcgi_scriptname,php 就会找到该脚本并处理
编辑nginx 的配置文件 vim /usr/local/nginx/conf/nginx.conf :
增加一段 location 信息
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;
}
$document_root 表示根目录;
$fastcgi_script_name 表示请求的文件
注意:这里的 root html 表示根目录(默认)是 /usr/local/nginx/html,所以在配置虚拟站点的时候需要配置正确的路径,例如虚拟站点的目录是 /usr/local/nginx/html/www.dee.com,那么就应该在配置文件中设置 root html/www.dee.com,否则当服务器找不到正确的路径时很可能会报 No input file specified.
平滑重启 nginx。
编译+安装 php
[root@localhost php-5.3.10]# make && make install
(时间较长,如果报错,在当前目录下 make clean)
编译安装完毕。
进入 cd /usr/local/fastphp/ 目录
cd /usr/local/fastphp/
php-fpm 是 php 进程管理器。
拷贝 /root/php-5.3.0/lphp.ini(开发环境 development) 文件到当前目录 的 lib 目录下:
[root@localhost fastphp]# cp /root/php-5.3.10/php.ini-development ./lib/php.ini
在 etc 目录下,把 php-fpm.conf.default 复制一份,名为 php-fpm.conf:
[root@localhost fastphp]# cp etc/php-fpm.conf.default etc/php-fpm.conf
运行 sbin/php-fpm:
[root@localhost fastphp]# ./sbin/php-fpm
查看 php 进程:
[root@localhost fastphp]# ps aux|grep php
【测试】
在 /usr/local/nginx/html/ 下 vim test.php:
[root@localhost fastphp]# cd /usr/local/nginx/html/
[root@localhost html]# vim test.php
<?php
phpinfo();
访问: http://192.168.254.100/test.php:
启动 mysql:
Nginx 笔记与总结(10)Nginx 与 PHP 整合的更多相关文章
- Nginx 笔记(三)nginx 配置实例 - 反向代理、负载均衡、动静分离
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.反向代理 反向代理准备工作: (1)在 liunx 系统安装 tomcat,使用默认端口 8080 ...
- Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.nginx 原理与优化参数配置 master-workers 的机制的好处 首先,对于每个 ...
- Nginx 笔记(二)nginx常用的命令和配置文件
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.nginx常用的命令 (1)启动命令 在/usr/local/nginx/sbin 目录下执行 ./ ...
- Nginx 笔记(一)nginx简介与安装
个人博客网:https://wushaopei.github.io/ (你想要这里多有) Nginx 简介: 1.介绍 nginx 的应用场景和具体可以做什么事情 2.介绍什么是反向代理 3.介 ...
- Nginx笔记总结十九:nginx + fancy实现漂亮的索引目录
编译:./configure --prefix=/usr/local/nginx --add-module=../ngx-fancyindex-master 配置: location / { fanc ...
- Nginx笔记总结十八:nginx统计响应的http状态码信息(ngx-http-status-code-counter)
编译:./configure --prefix=/usr/local/nginx --add-module=../ngx_http_status_code_counter-master make &a ...
- Nginx笔记总结十六:nginx优化指南
1.高层的配置 worker_processes 定义了nginx对外提供web服务时的worker进程数 worker_rlimit_nofile 更改worker进程最大打开文件数量限制,如果没有 ...
- Nginx笔记总结十五:nginx+keepalive+proxy_cache配置高可用nginx集群和高速缓存
nginx编译 wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz ./configure --prefix=/usr/loca ...
- Nginx笔记总结十四: nginx反向代理,用内网域名转发
user www www; worker_processes ; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile ...
- Nginx笔记总结十二:nginx版本号隐藏
vim nginx.conf http { server_tokens off;} php-fpm fastcgi.conf或fcgi.conf fastcgi_param SERVER_SOFTWA ...
随机推荐
- svn status 显示 ~xx
“~” 版本控制下的项目与其它类型的项目重名
- 蓝桥杯 入门训练 Fibonacci数列(水题,斐波那契数列)
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非 ...
- blend 从无到有系列之添加自定义Rectangle样式指定到资源文件
相关链接 http://www.cnblogs.com/wildfeng/archive/2012/03/30/2425248.html http://www.cnblogs.com/jv9/arch ...
- 网页中meta标记
网页中常常看见有这样的标记,他们是清浏览器缓存用的 <meta http-equiv="> PS:清除浏览器中的缓存,它和其它几句合起来用,就可以使你再次进入曾经访问过的页 ...
- phpcms分页使用
#pages { padding: 14px 10px; font-family: 宋体; } .text-c { text-align: center; } #pages span { displa ...
- 如何在ASP.NET 5和XUnit.NET中进行LocalDB集成测试
今天继续昨天的话题--单元测试,不过是在ASP.NET 5中的单元测试. 在当前的Visual Studio 2015 CTP6中,MSTest是不支持对ASP.NET 5项目进行单元测试的.因而,要 ...
- 以app形式启动chrome——关于chrome命令行
转自:http://wiselyman.iteye.com/blog/2179043 转自:http://bbs.ithome.com/thread-589651-1-1.html 转自:http:/ ...
- 让html元素随浏览器的大小自适应垂直居中
转自:http://www.cnblogs.com/linjiqin/archive/2011/06/15/2081362.html 表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高 ...
- 贪心 Codeforces Round #301 (Div. 2) B. School Marks
题目传送门 /* 贪心:首先要注意,y是中位数的要求:先把其他的都设置为1,那么最多有(n-1)/2个比y小的,cnt记录比y小的个数 num1是输出的1的个数,numy是除此之外的数都为y,此时的n ...
- Comon.Logging与Log4net联合使用
1.摘要 Common.Logging定义了一种接口的公共接口,尤其在Quartz.net中作为接口型的组件,而具体则使用log4net,nlog等组件. 2.使用步骤 Install-Package ...