说明:本教程由三部分组成如下:

1.      源码编译安装Nginx

2.      源码编译安装php以及mysql、redis扩展模块

3.      配置虚拟主机

文中所涉及安装包程序均提供下载链接,欢迎使用

执行环境以及前置条件:Ubuntu 12.04 LTS 已安装g++编译环境

全部源程序路径位于:root@ubuntu:/home/shihai/Desktop/Nginx目录下。例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGpzc2VoYWlnZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

程序安装路径位于:/usr/local目录下

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGpzc2VoYWlnZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

第一部分:安装Nginx

安装Nginx前须要安装依赖库PCRE库、zlib库、SSL库

安装PCRE库——为了rewrite

pcre库下载地址

tar –zxvf pcre-8.21.tar.gz

cd pcre-8.21

./configure --prefix=/usr/local/pcre-8.21

make

make install

安装zlib库——为了gzip压缩

zlib下载地址

tar –zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --prefix=/usr/local/zlib-1.2.8

make

make install

安装ssl库——支持ssl加密

openssl下载地址

tar -zxvf openssl-1.0.1c.tar.gz

cd openssl-1.0.1c

./config --prefix=/usr/local/openssl-1.0.1

make

make install

安装nginx——server软件

nginx下载地址

tar -zxvf nginx-1.2.8.tar.gz

cd nginx-1.2.8

./configure --prefix=/usr/local/nginx-1.2.8 \

--with-pcre=../pcre-8.21/ \

--with-zlib=../zlib-1.2.8/

make

make install

设定nginx启动的配置文件

/usr/local/nginx-1.2.8/sbin# ./nginx -c /usr/local/nginx-1.2.8/conf/nginx.conf

/usr/local/nginx-1.2.8/sbin# ./nginx -s reload

查看nginx进程

ps –ef|grep nginx

打开localhost

当你看到上图所看到的内容时。说明Nginxserver已经成功安装

第二部分:安装php以及mysql、redis扩展模块

安装ncurses——安装mysql前置条件:

ncurses下载地址

tar -zxvf ncurses-5.4.tar.gz

cd ncurses-5.4

./configure

make

make install

安装mysql——此处使用是源代码包编译安装

mysql下载地址

tar -zxvf mysql-5.1.73.tar.gz

cd mysql-5.1.73

./configure --prefix=/usr/local/mysql-5.1.73

make

make install

安装curl库——用于curl请求

curl库下载地址

tar -zxvf curl-7.39.0.tar.gz

./configure --prefix=/usr/local/curl-7.39.0

make

make install

安装libxml2库——用于xml解析

tar –xjf libxml2-2.6.23.tar.bz

cd libxml2-2.6.23

./configure

make

make install

rpm –ivh libxml2-devel-2.6.23-1.i386.rpm


安装php

php下载地址

tar -zxvf php-5.2.14.tar.gz

gunzip php-5.2.14-fpm-0.5.14.diff.gz

patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff

cd php-5.2.14

./configure --prefix=/usr/local/php-5.2.14\

--enable-fastcgi \

--enable-fpm \

--enable-sockets \

--enable-mbstring \

--with-mysql=/usr/local/mysql-5.1.73 \

--with-mysqli=/usr/local/mysql-5.1.73/bin/mysql_config\

--with-pdo-mysql=/usr/local/mysql-5.1.73 \

--with-curl=/usr/local/curl-7.39.0 \

--with-openssl=/usr/local/openssl-1.0.1 \

--with-libxml2

make

make install

启动php-fpm使用例如以下命令:

/usr/local/php-5.2.14/sbin# ./php-fpm start

启动php-fpm的时候出现

Startingphp_fpm Dec 29 15:27:32.502790 [ERROR] fpm_unix_conf_wp(), line 124: pleasespecify user and group other than root, pool 'default'

解决的方法:进入文件夹:/usr/local/php-5.2.14/etc仅仅须要改动php-fpm.conf

Unix user of processes

 <!--    <value name="user">nobody</value>   -->

Unix group of processes

 <!--    <value name="group">nobody</value>   -->

将<!––>去掉就可以。至于user/group依据实际情况改动(www)。

又一次启动 /usr/local/php-5.2.14/sbin# ./php-fpm restart 成功了

安装redis扩展模块

redis下载地址

unzip phpredis-master.zip

exportPATH=/usr/local/php-5.2.14/bin/:$PATH

cp -r phpredis-master php-5.2.14/ext/

cd php-5.2.14/ext/phpredis-master

phpize

./configure--with-php-config=/usr/local/php-5.2.14/bin/php-config

make

make install

扩展库路径:/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

在php扩展库路径下,能够找到编译生成的redis扩展库文件redis.so

打开路径/usr/local/php-5.2.14/lib/php.ini下的php.ini文件。使用命令例如以下:

vim php.ini

文件内容高速查找(按下“N”能够查找下一个匹配位置),使用命令例如以下:

:?extension

找到如图所看到的的指定位置后插入下面内容:

extension = redis.so

php会自己主动到扩展库路径下载入redis.so文件

假设没找到php.ini文件。能够全盘搜索该文件,使用命令例如以下:

find / -name php.ini

搜索结果显示此路径下存在/etc/php5/cli/php.ini文件,于是拷贝至/usr/local/php-5.2.14/lib,使用命令例如以下:

/usr/local/php-5.2.14/lib# cp /etc/php5/cli/php.ini php.ini

此处须要重新启动php-fpm才干生效。使用命令例如以下:

/usr/local/php-5.2.14/sbin# ./php-fpm restart

第三部分:配置nginx虚拟主机

新建虚拟主机配置文件文件夹

/usr/local/nginx-1.2.8# mkdir vhosts

cd vhosts

touch scott.qq.com.conf

vim scottshi.qq.com.conf

输入下面内容配置自己定义虚拟主机:

server {

listen 8001;/*监听port号*/

server_name scott.qq.com;/*域名*/

access_log/usr/local/nginxweb/htdocs/access.log;/*网站訪问日志*/

location / {

root /usr/local/nginxweb/htdocs/;/*页面文件文件夹*/

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;/*server错误页面*/

location = /50x.html {

root html;

}

# pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000; /*Nginx转发请求地址*/

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/usr/local/nginxweb/htdocs/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

保存退出后,进入nginx的配置文件nginx.conf

/usr/local/nginx-1.2.8/conf# vim nginx.conf

与默认server层级并列且位于http层级之内。加入例如以下内容,使得自己定义虚拟主机生效:

include /usr/local/nginx-1.2.8/vhosts/*;

保存退出后,重新启动nginxserver,又一次加载配置文件,使用命令例如以下:

/usr/local/nginx-1.2.8/sbin# ./nginx –s reload

编写php測试页面:

进入文件夹/usr/local/nginxweb/htdocs/,新建test.php文件,输入test.php页面内容:

<?php

Phpinfo();

?>

保存退出

使用浏览器,訪问下面地址:

scott.qq.com:8001/test.php

此页面会显示配置php时的指令还有各个功能模块。包含fastcgi、mysql、curl、redis等

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGpzc2VoYWlnZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

版权声明:本文博主原创文章,博客,未经同意不得转载。

Nginx+Php-fpm+MySQL+Redis源码编译安装指南的更多相关文章

  1. 使用 Redis 源码编译发布 Windows 版 Redis For Windows 发行包

    Redis 是个高性能的键值数据库,现在日常项目开发过程中,目前个人开发项目基本都会用到 Redis,主要是用来做 缓存 和 分布式锁 的底层支持,个人喜欢用 .NET 技术体系,所以一般部署也是用 ...

  2. 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)

    [需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...

  3. MySQL5.7.13源码编译安装指南

    系统 CenterOs 6.5 1.安装依赖包(cmake make gcc等,其实好多都有了,不需要更新,为了防止世界被破坏,就装下) yum install gcc gcc-c++ -yyum i ...

  4. MySQL5.7.13源码编译安装指南(转)

    系统 CenterOs 6.5 1.安装依赖包(cmake make gcc等,其实好多都有了,不需要更新,为了防止世界被破坏,就装下) yum install gcc gcc-c++ -yyum i ...

  5. nginx在centos 7中源码编译安装【添加grpc的支持】

    安装依赖软件 1.安装编译工具gcc gcc是一个开源编译器集合,用于处理各种各样的语言:C.C++.Java.Ada等,在linux世界中是最通用的编译器,支持大量处理器:x86.AMD64.Pow ...

  6. [教程]centos卸载、安装mysql(源码编译安装方式)

    -----------1 卸载系统自带的msyql包 rpm -qa|grep mysql rpm -e --nodeps mysql-server-5.1.71-1.el6.x86_64 --强制卸 ...

  7. Redis源码编译安装

    介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵 ...

  8. Linux下搭建redis(源码编译)

    [准备环境] Linux centos7 redis下载包  地址:http://www.redis.cn/download.html  前往下载稳定版本 [步骤] 1.下载成功后 把包上传到服务器 ...

  9. 源码编译mysql 5.5+ 安装过程全记录

    前言:从mysql 5.5版本开始,mysql源码安装开始使用cmake了,编译安装跟以前的版本有点不一样了. 一,安装步骤: 1.安装前准备工作 a.下载mysql源代码包,到mysql下载页面选择 ...

随机推荐

  1. net MVC 的八个扩展点

    net MVC 的八个扩展点 MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供的扩展点可以达到事半功倍的效果,另一方面Asp.net MVC优秀的 ...

  2. in与exist , not in与not exist 的区别(转)

    in和exists  in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的.  如果查询的 ...

  3. usb host鼠标不能使用原因

    linux kernel 3.4.5的板子插入USB鼠标,出现例如以下错误LOG: [  191.177508] Plug in USB Port2 [  191.363516] usb 1-1: n ...

  4. muduo网络图书馆评测

    上个月看到朋友推荐mudo网络图书馆,该代码是在国内同行中,开源工程后.甚至钦佩.根据mudo手动和035代码的版本看起来正在建设中.感觉是一个比较成熟且易于使用的网络库.我的手也有自己的网络库,虽然 ...

  5. Ctrl+Alt+T 文档大纲

  6. C#实现远程机器管理

    原文:C#实现远程机器管理 目前处于待离职状态,原先所有的工作都在进行交接,过程当中不乏有很多先前整理的和动手尝试实现的功能:我的主页中已经列出来一部分内容,有兴趣的可以前往看一看. 接下来的内容主要 ...

  7. 【SICP读书笔记(四)】练习2.27 --- 表序列reverse的扩展:树结构的deep-reverse

    题目要求是,修改练习2.18所做的reverse过程,得到一个deep-reverse过程.它以一个表为参数,返回另一个表作为值,结果表中的元素反转过来,其中的子树也反转. 例如: (define x ...

  8. android下调试声卡驱动之概述

    在Android中音频系统使用的是ALSA系统架构.ASoC--ALSA System on Chip .是建立在标准ALSA驱动层上,为了更好地支持 嵌入式处理器和移动设备中的音频Codec的一套软 ...

  9. OCP解决问题053-16 MEMORY_TARGET

    16.Setting which of the following initialization parameters enables Automatic Memory Management? A. ...

  10. 英特尔® 硬件加速执行管理器安装指南 — Microsoft Windows*

    介绍 本文将指导您安装英特尔® 硬件加速执行管理器(英特尔® HAXM),这是一款可以使用英特尔® 虚拟化技术(VT)加快 Android* 开发速度的硬件辅助虚拟化引擎(管理程序). 前提条件 英特 ...