Nginx+Php-fpm+MySQL+Redis源代码编译安装指南


说明:本教程主要包括以下三个部分:

1.      源代码编译安装Nginx

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

3.      配置虚拟主机

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

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

所有源程序路径位于:[email protected]:/home/shihai/Desktop/Nginx文件夹下,如下图所示:

程序安装路径位于:/usr/local文件夹下

第一部分:安装Nginx

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

安装PCRE库——为了rewrite

tar –zxvf pcre-8.21.tar.gz

cd pcre-8.21

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

make

make install

安装zlib库——为了gzip压缩

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加密

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——服务器软件

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

当你看到上图所示内容时,说明Nginx服务器已经安装成功

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

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

tar -zxvf ncurses-5.4.tar.gz

cd ncurses-5.4

./configure

make

make install

安装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请求

tar -zxvf curl-7.39.0.tar.gz

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

make

make install

安装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-mcrypt

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扩展模块

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-fpmrestart

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

新建虚拟主机配置文件目录

/usr/local/nginx-1.2.8# mkdir vhosts

cd vhosts

touch scott.qq.com.conf

vim scottshi.qq.com.conf

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

server {

listen 8001;/*监听端口号*/

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;/*服务器错误页面*/

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/*;

保存退出后,重启nginx服务器,重新载入配置文件,使用命令如下:

/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等

时间: 2024-08-27 12:57:51

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

记录一次自己对nginx+fastcgi(fpm)+mysql压力测试结果

nginx + fastcgi(fpm) 压力测试: CentOS release 5.9 16核12G内存 静态页面: 并发1000,压测200秒,测试结果: 系统最大负载5.47 成功响应: 2563065, 502:0, 失败:0 PHP页面(对mysql进行一次带索引的查询,数据库记录500条): 并发1000,压测200秒,测试结果: 系统最大负载15.66 成功响应: 114368, 502:712, 失败:58715 并发200,压测200秒,测试结果: 系统最大负载25.81 成

LNMP搭建(CentOS 6.3+Nginx 1.2.0+PHP 5.3.15(fpm)+ MySQL 5.5.35)

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过三年了.Igor 将源代码以类BSD许可证的形式发布. 系统环境: # cat /etc/redhat-release CentOS release 6.3 (Final) 1.安装所需的第三方库 yum -y install gcc

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

MYSQL 源代码 编译原理 AST和解析树 代码语法解析

MYSQL 源代码 编译原理 AST和解析树 代码语法解析 http://blog.csdn.net/wfp458113181wfp/article/details/17082355 使用AST树 分类:             antlr              2013-12-02 22:39     255人阅读     评论(0)     收藏     举报 目录(?)[+] 第五章使用AST树中间结果来计算表达式值 创建ASTS 第五章.使用AST树中间结果来计算表达式值 现在我们已

linux下apache+mysql+php开发环境纯源代码编译搭建

linux下apache+mysql+php开发环境纯源代码编译搭建 记录一下我在fedora core 1下通过源代码编译出来的apache+mysql+php开发环境的全部过程 通常安装一台服务器当然使用rpm是最方便的,不需要考虑太多配置的问题,就可以轻松获得需要的环境了.不过rpm包互相关联的问题也不是这么容易解决. apache,mysql,php这三个应用从源代码编译安装还是比较简单的,配置参数不算复杂,而且没有太多的依赖关系,从源码编译出来的系统也比较稳定一些,方便未来打补丁和升级

懒人用 php + nginx + mysql + redis

以前一直用apache,直接下个wamp一键安装ok能用了,今天用nginx服务器了,苦B的装php装mysql装nginx再装redis,还有麻烦的配置和版本的对应,装完我十分不爽就琢磨着能不能把wamp的Apache换成nginx接着用所以实现吧, 我的wamp是安装在D盘的目录如下D:\wamp: 把nginx解压包放在这里D:\wamp\bin\ 因为wamp的php的配置文件时放在 D:\wamp\bin\apache\apache2.2.22\bin之下面的 所以在这里拷贝一份php

Win7+VS2010:mysql 源代码编译与调试

win7+vs2010源代码编译mysql 近期因为在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制.眼下萌生了要研究一下mysql数据库源代码的想法.那么好吧,说干就干.首先我们须要实现对源代码的编译.这里我们选择win7+VS2010来实现,可是试了非常多次都失败了.这是我多次配置环境时遇到的问题,各种博客文章总是不太全然,或者说没有说明一些遇到的问题的解决方式,这可能跟详细的操作系统和环境有关.本文就说说我安装的情况. 1. 准备工作 (1)OS:win7 旗舰版 64

nginx+play framework +mongoDB+redis +mysql+LBS实战总结

nginx+play framework +mongoDB+redis +mysql+LBS实战总结(一) 使用这个样的组合结构已经很久了,主要是实现web-server,不是做网站,二是纯粹的数据服务server.早就想总结一下,一直没有时间,最近也是一而再再而三的解决了使用途中的各种问题,从此片开始到之后悔慢慢的将这些经验教训总结下来,一边自己和朋友们借鉴使用.此片算是开篇吧,首先对这几种技术或者说平台做简单的介绍吧,顺便推荐一些文章给大家. nginx:本身是一个web server ,在