码迷,mamicode.com
首页 > Web开发 > 详细

Nginx与php的整合

时间:2016-05-07 01:11:51      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:nginx   mysql   php   整合   

"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进行如下的编辑:

 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勾搭上了:

技术分享

技术分享

本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1770922

Nginx与php的整合

标签:nginx   mysql   php   整合   

原文地址:http://chenx1242.blog.51cto.com/10430133/1770922

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!