先说一下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. 如何 Scale Up/Down Deployment?- 每天5分钟玩转 Docker 容器技术(126)

    伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数.Deployment nginx-deployment 初始是两个副本. k8s-node1 和 k8s-node2 上各跑了一 ...

  2. requests关于Exceeded 30 redirects问题得出的结论

    昨天一个朋友在爬网页时出现的一个问题,以及后续我对这个问题进行了简单的测试. 先说出现的问题的简单描述. 首先是使用urllib请求网页: #urllib.request发起的请求 import ur ...

  3. linux mysql 修改 UTF-8编码

    版本大于5.5 [mysqld]下添加的应该为:   character-set-server=utf8   collation-server=utf8_general_ci 版本小于5.5 [cli ...

  4. 自己写的一个tomcat发布脚本

    闲来无事,就自己写一个shell脚本,方便自己以后在服务器上部署tomcat下的项目.我本地用maven打包,然后每次都要人工去切换一堆堆目录,有点繁琐,所以我写了下面的shell脚本. #! /bi ...

  5. git clone代码时候出现的报错

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Andale Mono"; color: #28fe14; backgr ...

  6. android Fragment的数据传递

    Bundle传递参数 Fragment1 fragment1 = new Fragment1();Bundle bundle = new Bundle();bundle.putString(" ...

  7. lvs_dr

    lvs_dr 实验需求(4台虚拟机) eth0 192.168.1.110 单网卡 client(可以使用windows浏览器代替,但会有缓存影响) eth0 192.168.1.186 单网卡 di ...

  8. 【转】linux shell ${}简单用法

    为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能: 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 我们可以用 ${ } 分别替换获得不 ...

  9. HTML学习——标签

    1.</hr>效果: 2.<q>简短文本引用, <blockquote>长文本引用, 表象:为文本添加一个双引号,实:一个语义,引用别人的话语. 3.&nb ...

  10. React-Native 之 Modal介绍与使用

    前言 遗漏的常用组件,刚发现官方有提供,这边也来介绍一下. 如本文有错或理解偏差欢迎联系我,会尽快改正更新! 如有什么问题,也可直接通过邮箱 277511806@qq.com 联系我. 本章涉及资源下 ...