先说一下PHP在Apache和Nginx下所扮演的角色

apache一般是把php当做自己的一个模块来启动的.

而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式,可以说.nginx和php是平级关系

因此,为apache所编译的php,是不能用于nginx的.

yum安装mysql

yum install mysql mysql-devel mysql-server

安装它们所以来的一些库,可以yum安装,依赖库在  http://www.90book.cn/416.html   下有说明 ,如 gd ,ttf,libxml,png,freetype 等,可根据在编译过程中提示的错误来逐步完善安装所需要的依赖库,以fpm(fastcgi)方式运行

yum install db         //yum 安装gd
yum install ttf        //yum 安装ttr
yum install freetype   //yum安装字体库
yum install libxml2
yum install libxml2-devel -y

其次还有png  ......

准备去下载php

//几乎包括所有的PHP版本

cd /usr/local/src/   然后以      5.4.22 版本测试  
wget  http://mirror.cogentco.com/pub/php/php-5.4.22.tar.gz 
tar zxvf php-5.4.22.tar.gz                
./configure --help|grep php-fpm   //执行返回下块代码

--with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

--with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

./configure --help|grep fpm      //执行返回下块代码

--enable-fpm              Enable building of the fpm SAPI executable

--with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

--with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

should usually be set to match the fpm username (default: nobody)

--with-fpm-systemd      Activate systemd integration

注意: 我们编译的PHP 要有如下功能:

连接mysql, gd, ttf, 以fpm(fascgi)方式运行

./configure  --prefix=/usr/local/php \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-fpm
make && make install

解析编译完毕后进入编译安装后的 /usr/local/php 目录

cp /usr/local/src/php-5.4.22/php.ini-development ./lib/php.ini
cp etc/php-fpm.conf.default etc/php-fpm.conf
./sbin/php-fpm 
ps aux| grep php   //查看进程返回以下代码
root    50336  0.3  0.2 139956  2988 ?     Ss 09:11 0:00 php-fpm: master process (/usr/local/fastphp/etc/php-fpm.conf)
nobody   50337  0.0  0.2 139956  2624 ?    S  09:11   0:00 php-fpm: pool www
nobody   50338  0.0  0.2 139956  2624 ?     S  09:11   0:00 php-fpm: pool www
root     50343  0.0  0.0 103248   836 pts/4 S+ 09:12   0:00 grep php

配置nginx

vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
         root html;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
          #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         include        fastcgi_params;
}

1:碰到php文件,

2: 把根目录定位到 html,

3: 把请求上下文转交给9000端口PHP进程,

4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname

./sbin/nginx -s reload

然后启动mysql服务,或者在nginx的html目录下来一个index.php文件查看phpinfo等,最后访问ip

Nginx下编译PHP+Mysql的更多相关文章

  1. CentOS 下编译安装MySQL

    CnetOS 下编译安装 MySql 查看是否存在旧版本: rpm -qa | grep mysql 卸载旧版本: rpm -e mysql   #普通删除模式 rpm -e --nodeps mys ...

  2. CentOS Linux下编译安装MySQL

    本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.4 64位操作系统下实践 ...

  3. Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】

    一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake ...

  4. CentOS下编译安装MySQL 5.6.21

    一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake:http://www.cnblog ...

  5. ubuntu 14.04 64位 下 编译安装MySQL 5.7.11

    步骤一: 先去mysql的官方网站 去down 编译源码包 mysql 网址:www.mysql.com downloads  (MySQL Community Server) 下载版本选择  sou ...

  6. Linux下编译安装MySQL

    一.环境准备yum install -y ncurses-devel libaio-develyum install -y cmake makeuseradd -s /sbin/nologin -M ...

  7. Linux CentOS6.5下编译安装MySQL 5.6

    检查:卸载掉原有MySql 因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已 ...

  8. Linux(CentOS6.5)下编译安装MySQL Community Server 5.7.12

      组件 官方网站 直接下载地址 备注 mysql http://dev.mysql.com/downloads/mysql/ http://mirrors.sohu.com/mysql/MySQL- ...

  9. ubuntu 下编译安装 mysql php nginx 及常见错误 (持续添加)

    mysql mysql 可以使用mysql 官方提供的apt源进行安装 参见这里 php 安装前先安装一些常见库 sudo apt-get install libpng16-16 libpng16-d ...

随机推荐

  1. mybatis实战教程二:多对一关联查询(一对多)

    多对一关联查询 一.数据库关系.article表和user表示多对一的关系 CREATE TABLE `article` ( `id` ) NOT NULL AUTO_INCREMENT, `user ...

  2. 函数式编程--为什么会出现lambda表达式?

    java一直处在发张和演化的过程中,其中有2个版本从根本上改变了代码的编写方式.第一个就是JDK5之后增加的泛型,还有一个就是现在介绍的函数式编程,lambda表达式. lambda表达式是java8 ...

  3. Eclipse设置代码自动提示

    Eclipse只需几步简单的设置就可以像idea那样代码自动提示了,喜欢的小伙伴可以赶紧动手设置,提升效率. 第一步:打开Eclipse --> Window --> Preference ...

  4. 理解JS中的call、apply、bind方法(*****************************************************************)

    在JavaScript中,call.apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向. call.apply.bind方法的共同点和区别:app ...

  5. <global-results>标签来定义全局的<result>

    <global-results> <result name="error">/Error.jsp</result>   <!--   Ac ...

  6. Ajax 基础笔记

    Ajax内容: 同步交互与异步交互 同步交互:客户端向服务器端发送请求,服务器端向客户端进行响应,这个过程中客户端不能做其他事情 异步交互:客户端向服务器端发送请求,服务器端向客户端进行响应,这个过程 ...

  7. 【转】布同:如何循序渐进学习Python语言

    大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...

  8. spring boot热部署

    1.pom配置 参考:http://412887952-qq-com.iteye.com/blog/2300313 2.intellij配置 参考:http://blog.csdn.net/wjc47 ...

  9. java根据模板导出pdf

    在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模板,有的只是随便把数据放里面生成文件,完全不考虑数据怎样放置的以及以后的维护性,想想还是自己总结一个完全版的导出 ...

  10. 知识点干货—多线程同步【6】之synchronized

    "明日复明日,明日何其多. 我生待明日,万事成蹉跎. 世人若被明日累,春去秋来老将至. 朝看水东流,暮看日西坠. 百年明日能几何?请君听我明日歌. 明日复明日,明日何其多! 日日待明日,万世 ...