共计 6191 个字符,预计需要花费 16 分钟才能阅读完成。
操作系统环境
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-371.9.1.el5 #1 SMP Tue Jun 10 17:49:56 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/issue
CentOS release 5.10 (Final)
Kernel \r on an \m
[root@localhost ~]#
PS:以下操作我只在如上系统进行验证使用,仅供参考
1. 更新 yum 源
CentOS 5.6 更新 yum 源
我这里使用的搜狐的源,博友们可以自己穿件源
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.save
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
yum update
yum makecache
2. 安装高版本 mysql
wget http://centos.ustc.edu.cn/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5.9-1.el5.remi.noarch.rpm
rpm -ivh *.rpm
echo ‘priority=1’ >> /etc/yum.repos.d/remi.repo
echo ‘priority=1’ >> /etc/yum.repos.d/epel-testing.repo
echo ‘priority=1’ >> /etc/yum.repos.d/epel.repo
检查 mysql 是否有可升级版本。发现有版本可以升级到 mysql5.5.11。
yum –enablerepo=remi list mysql
删除操作系统自带的低版本的 mysql
yum remove mysql
通过新 yum 源安装高版本的 mysql
yum -y –enablerepo=remi install mysql mysql-server mysql.x86_64 mysql-devel.x86_64
3. 安装支持包 automake autoconfig 和 libtool
验证 automake 是否安装 rpm -qa |grep automake
验证 autoconfig 是否安装 /usr/bin/autoconf -V
auotmake 1.4 以上版本需要安装 libuuid-devel,zlib-devel,mysql-devel 三个开发包
查看以安装的 rpm 包:rpm -qa|grep 包名
rpm -qa|grep libuuid
rpm -qa|grep zlib-devel
rpm -qa|grep mysql-devel
如果你使用 RedHat5.x 和 Centos 5.x 会找不到 libuuid-devel 包,请看下面。
RedHat5.x 和 Centos 5.x 安装:yum install uuidd
安装其它支持包:yum install libtool zlib-devel
下面的 readline 包系统自带了,ncurses 包系统默认没有,我也安装,你安不安自已定吧。
[root@locatfs local]# yum install readline-devel readline
[root@locatfs local]# yum install ncurses-devel.x86_64 ncurses.x86_64
4. 安装 ext4 格式工具
[root@locatfs local]# yum install e4fsprogs e4fsprogs-devel
加载 ext4 模块,让系统支持 ext4 文件系统
[root@locatfs local]# modprobe ext4
5. 安装 tb-common-utils
tb-common-utils 是淘宝开发使用的一个公共库
tbsys 是对操作系统服务的封装,tbnet 则提供了网络框架。tbnet 和 tbsys 被作为 tb-common-utils 被开源了,可以访问 http://code.taobao.org/trac/tb-common-utils/wiki
TFS 依赖于底层开发包 tbnet。tb-common-utils 里面含有 tbsys 和 tbnet
首先编译安装 tblib(tb-common-utils),这里我安装在和 tfs 同一个路径。
(http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils)
gtest 库是单元测试框架,下面先安装安装 gtest
下载 gtest 见本文下面的资源,
[root@locatfs local]# unzip gtest-1.6.0.zip
[root@locatfs local]# cd gtest-1.6.0
[root@locatfs local]# ./configure
[root@locatfs local]# make
[root@locatfs local]# cd make/
[root@locatfs local]# make
[root@locatfs local]# ./sample1_unittest
安装 tb-common-utils
新建一个下载目录,并进入这个目录。下载源码:这里下载版本 18 的因为淘宝开发的东西不往下兼容
svn checkout -r 18 http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils
编译和安装 tbnet, tbsys 库
ps: 建议将这行命令直接写入~/.bash_profile,然后执行“. ~/.bash_profile”
修改:
[root@locatfs local]# vi /etc/profile
添加:(计划安装在 /usr/local/tb/lib 目录)
export TBLIB_ROOT=/usr/local/tb/lib
生效:
[root@locatfs local]# source /etc/profile
[root@locatfs local]# cd tb-common-utils/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh
安装完成后, 在 TBLIB_ROOT 表示的目录(/usr/local/tb/lib),应该可以看到 include、lib 两个目录。
6. 编译安装 TFS—-
编译安装 tfs (安装到 /usr/local/tfs 目录)
[root@locatfs local]# svn checkout http://code.taobao.org/svn/tfs/tags/release-2.2.10 tfs-2.2.10
进入 tfs 目录
[root@locatfs local]# cd tfs-2.2.10/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh init
[root@locatfs local]# ./configure –prefix=/usr/local/tfs –without-tcmalloc
[root@locatfs local]# make
[root@locatfs local]# make install
7. 安装 nginx-tfs 模块
TFS 模块使用了一个开源的 JSON 库来支持 JSON,先安装 yajl-2.0.1
—————————————— 分割线 ——————————————
yajl-2.0.1 与 gtest 下载
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2014 年资料 / 7 月 /31 日 /CentOS 5 下安装 tfs 并使用 Nginx 做访问
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
—————————————— 分割线 ——————————————
[root@localhost opt]# cd lloyd-yajl-12ee82a/
[root@localhost lloyd-yajl-12ee82a]# ./configure –prefix=/usr/local/yajl && make && make install
报错
== removing old build files
== running CMake in build directory
./configure: line 41: cmake: command not found
The “cmake” program is required to configure yajl.
It’s available from most ports/packaging systems and http://cmake.org
解决办法:
yum -y install cmake
继续编译通过
下载 tengine 此软件是 nginx 的升华版本,在 nginx 上二次开发
wget http://tengine.taobao.org/download/tengine-2.0.3.tar.gz
下载 nginx-tfs 模块
wget https://codeload.github.com/alibaba/nginx-tfs/zip/master
安装 tengine 并添加 ngix-tfs 模块
[root@localhost tengine-2.0.3]# ./configure –prefix=/usr/local/nginx –add-module=/opt/nginx-tfs-master && make && make install
报错
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre=<path> option.
解决办法
[root@localhost tengine-2.0.3]# yum -y install pcre-devel
继续编译 tengine
[root@localhost tengine-2.0.3]# ./configure –prefix=/usr/local/nginx –add-module=/opt/nginx-tfs-master && make && make install
启动 nginx 报错
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libyajl.so.2: cannot open shared object file: No such file or directory
xx 解决办法
[root@localhost tengine-2.0.3]# ln -s /usr/local/lib/libyajl.so.2 /usr/lib64/libyajl.so.2
再次测试成功
启动 nginx
[root@localhost tengine-2.0.3]# /usr/local/nginx/sbin/nginx
8. 使用 nginx 访问上传图片路径
修改 nginx 配置文件
在 nginx 的 http 模块中添加 upstream
tfs_upstream tfs_ns {
server 192.168.1.230:8108;
type ns;
}
在 nginx 的 server 模块中添加 tfs_pass
server {
listen 80;
server_name localhost;
tfs_keepalive max_cached=100 bucket_count=10;
tfs_log “pipe:/usr/sbin/cronolog -p 30min /var/log/nginx/logs/cronolog/%Y/%m/%Y-%m-%d-%H-%M-tfs_access.log”;
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
tfs_pass tfs://tfs_ns;
}
}
使用 url 访问图片
例如上传的返回值是 xxxxxxxxxxxxxxxxxxxxxx.jpg
访问使用 http:/NameserverIP/v1/tfs/xxxxxxxxxxxxxxxxxxxxxx.jpg
————————————– 分割线 ————————————–
CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
————————————– 分割线 ————————————–
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里