博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx与php的整合
阅读量:6868 次
发布时间:2019-06-26

本文共 1871 字,大约阅读时间需要 6 分钟。

"Nginx与php的整合"与"apache与php的整合“有所不同,apache是把php当作自己的一个模块进行启动;而nginx是把http请求变量(如get,usr_agent等)和请求的上下位原模原样的转发给php进程,即php是独立的进程,同时保持与nginx进行通信,这样的工作方式叫fastcgi。php进程的端口是9000。

所以说,apache的php不能用于nginx。

准备工作

1.首先请到php的官方网站里下载php。(注意!截止本文的时候,请下载5.6.21版本,不要7.0.6版本,7.0.6版本在搭配mysql上好像有点问题。)

2.安装mysql和mysql-devel,mysql就不多说了;

3.#yum install ttf,ttf是字体的软件;

4.#yum install gd gd-devel,gd是画图的软件;

5.#yum install freetype,这个也是字体有关的软件;

这些都下载准备完毕之后,就可以编译了。

编译过程

php的编译过程略恶心,这玩意不能网上照抄,抄的话就会出现编译不成功的情况,以mysql为例。

先通过#tar -zxvf php-5.6.21.tar.gz将下载包拆包解压缩之后,会跟以往一样得到configure文件,但是由于是要把php同nginx\mysql\gd\tty等软件整合,所以就不能./configure之后当甩手掌柜,而是要在configure的时候指定mysql\gd\tty的地址。

我们先用#./configure -help|grep mysql 查看一下mysql需要什么。

每一行的意思后面有注释,拿着英文字典去查,这里我们用到--with-mysql=DIR,但是这里不用DIR用mysqlnd,mysqlnd是php新的驱动,专门用于mysql的。

以此类推,#./configure -help|grep gd 等等,一个一个的把相关文件的要求查好。

然后#./configure --prefix=/usr/local/php --with-pdo-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm,回车之后就会大篇的滚动字幕,然后提示thanks和安装的文件。

下一步就是#make && make install,整个过程较长。

如果在make这一步,出现了“make: *** [sapi/cli/php] 错误 1”的提示,就#make ZEND_EXTRA_LIBS='-liconv',完之后#make test,最后#make install

编译之后

整个make过程结束之后,来到php的文件夹ls一下,发现里面应该是bin  etc  include  lib  php  sbin  var这几个文件夹,然后再sbin里有一个php-fpm,启动这个就是启动php进程管理器。

启动php进程管理器之后,就返回到nginx的nginx.conf文件,在server进行如下的编辑:

1
2
3
4
5
6
7
 
location ~ \.php$
        
{
            
fastcgi_pass    127.0.0.1:9000;
            
fastcgi_index   index.php;
           
fastcgi_param   SCRIPT_FILENAME 
/usr/local/nginx/html/
$fastcgi_script_name;
           
include         fastcgi_params;
        
}

这段代码的意思是,匹配到所有的.php 文件就交给fastcgi处理,默认主页是index.php,fastcgi_param很重要,配不对就会502,这个是指向路径,比如用户要请求的是abc.php,那么nginx就把它转到/usr/local/nginx/html/abc.php。

保存退出之后,在/usr/local/nginx/html/下建立一个叫test.php文件,里面的内容就是:

<?php

phpinfo();

保存退出之后,在浏览器输入地址:localhost/test.php,就会看到php的主页了。里面成功与gd和mysql勾搭上了:

 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1770922

转载地址:http://dxkfl.baihongyu.com/

你可能感兴趣的文章
Linux 上使用 Gmail SMTP 服务器发送邮件通知
查看>>
Linux下的定时任务Crontab
查看>>
动态规划之矩阵连乘问题
查看>>
电视剧《奋斗》能叫奋斗吗?
查看>>
关于在Windows Mobile下今日插件使用WTL的问题
查看>>
不用第三方之C#实现大容量报表系统
查看>>
[翻译]ADO.NET Entity Framework Beta2(三)/实体框架入门
查看>>
LoadRunner的那些事--lr11+IE8录制就崩溃卡死,firefox录制正常的解决方案
查看>>
JVM垃圾回收(GC)整理总结学习
查看>>
最流行的5个前端框架对比
查看>>
Activity的生命周期整理
查看>>
深入代码详谈irqbalance【转】
查看>>
算法-有向环和拓扑排序
查看>>
网站设计风格及色彩搭配技巧
查看>>
利用XMLBean轻轻松松读写XML
查看>>
[Android] Android5.1系统自带的应用启动次数统计
查看>>
C#中生成的随机数为什么不随机?
查看>>
Linux I2C(一)之常用的几种实例化(i2c_client ) 【转】
查看>>
windows下一个,OracleServiceXXX和Oracle 关系实例
查看>>
Eclipse上传代码到GitHub
查看>>