编译安装 Apache Traffic Server 3.0.0 通过 

本来想这篇文章不发算了~因为事实是trafficserver 的一个bug删掉了我的所有数据,而我也没有在用它~

不过想想我的这些噩梦般的遭遇可能会帮到一些人,便还是贴了出来~

我是在trafficserver 正式发布了3.0.0版本后,从apache官网下载的trafficserver的源码包(http://www.apache.org/dist//trafficserver/trafficserver-3.0.0.tar.bz2)。

解压,进入目录:
我的configure:
[root@PowerPC trafficserver-3.0.0]# ./configure \
> --prefix=/usr/local/trafficserver \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/trafficserver \
> --localstatedir=/var/run \
> --enable-purify \
> --enable-tproxy=auto \
> --with-user=cache \
> --with-group=web

倒也没什么特别的,检查依赖,报错:

checking for Tcl configuration... configure: error: Can't find Tcl configuration, install the TCL dev package


解决方案:yum install tcl-devel
再次检查,通过。接下来 make 编译,再次报错:

cc1plus: warnings being treated as errors
LogAccess.cc: In member function ‘int LogAccess::marshal_record(char*, char*)’:
LogAccess.cc:729: warning: comparison between signed and unsigned integer expressions


这是configure文件的问题,警告就导致编译程序退出了~修改一下,打开configure,
删除所有含有 "-Werror"的地方,一共有11处:

[root@PowerPC trafficserver-3.0.0]# cat configure |grep Werror
# or remarks (even with -Werror). So we grep stderr for any message
# or remarks (even with -Werror). So we grep stderr for any message
# or remarks (even with -Werror). So we grep stderr for any message
# common_opt="-pipe -Wall -Werror -Wconversion -Wno-sign-conversion"
common_opt="-pipe -Wall -Werror"
common_opt="-pipe -Wall -Werror"
common_opt="-pipe -Wall -Werror"
common_opt="-pipe -Wall -Werror"
common_opt="-pipe -Wall -Werror"
CFLAGS="$CFLAGS -Werror"
CFLAGS="$CFLAGS -Werror"


具体操作,vi里面replace即可,
:%s/\-Werror/ /g
11 substitutions on 11 lines

完了之后,编译通过,之后 make install 安装.

启动trafficserver,又报错了~

traffic_server: error while loading shared libraries: libtsutil.so.3: cannot open shared object file: No such file or directory


看来是动态链接库的问题,编辑位于 /etc 下的ld.so.conf文件,加入trafficserver的lib路径(/usr/local/libexec/trafficserver).
再重新刷新下ldconfig,
ldconfig -v
即可。
之后就可以正常启动了~

关于trafficserver的配置,可以说是比同类的Squid cache和Varnish cache 都要复杂,看的人都冒汗。

下面是所有配置文件的列表:
[root@PowerPC trafficserver]# ls -l
total 216
-rw-r--r-- 1 cache web 1324 Jun 16 07:08 ae_ua.config
drwxr-xr-x 3 cache web 4096 Jun 16 07:08 body_factory
-rw-r--r-- 1 cache web 1210 Jun 16 07:26 cache.config
-rw-r--r-- 1 cache web 657 Jun 16 07:26 cluster.config
-rw-r--r-- 1 cache web 1868 Jun 16 07:26 congestion.config
-rw-r--r-- 1 cache web 746 Jun 16 07:26 hosting.config
-rw-r--r-- 1 cache web 1313 Jun 16 07:26 icp.config
drwxr-xr-x 2 cache web 4096 Jun 16 07:26 internal
-rw-r--r-- 1 cache web 254 Jun 16 07:26 ip_allow.config
-rw-r--r-- 1 cache web 328 Jun 16 07:26 log_hosts.config
-rw-r--r-- 1 cache web 15076 Jun 16 07:26 logs_xml.config
-rw-r--r-- 1 cache web 365 Jun 16 07:08 mgr.cnf
-rw-r--r-- 1 cache web 1362 Jun 16 07:26 parent.config
-rw-r--r-- 1 cache web 310 Jun 16 07:26 plugin.config
-rw-r--r-- 1 cache web 318 Jun 16 07:08 plugin.db
-rw-r--r-- 1 cache web 0 Jun 16 07:26 proxy.pac
-rw-r--r-- 1 cache web 27444 Jun 16 07:26 records.config
-rw-r--r-- 1 cache web 7047 Jun 16 07:26 remap.config
drwx------ 2 cache web 4096 Jun 16 07:26 snapshots
-rw-r--r-- 1 cache web 1677 Jun 16 07:26 socks.config
-rw-r--r-- 1 cache web 2139 Jun 16 07:26 splitdns.config
-rw-r--r-- 1 cache web 430 Jun 16 07:26 ssl_multicert.config
-rw-r--r-- 1 cache web 68821 Jun 16 07:26 stats.config.xml
-rw-r--r-- 1 cache web 2960 Jun 16 07:26 storage.config
-rw-r--r-- 1 root root 19 Jun 16 07:08 trafficserver-release
-rw-r--r-- 1 cache web 1420 Jun 16 07:26 update.config
-rw-r--r-- 1 cache web 464 Jun 16 07:26 vaddrs.config
-rw-r--r-- 1 cache web 1278 Jun 16 07:26 volume.config
-rw-r--r-- 1 cache web 0 Jun 16 07:26 wpad.dat

很是恐怖~ 不过可以不时的参考官方的帮助文档(http://trafficserver.apache.org/docs/v2/admin/files.htm)。

而我在粗略的配置了一通后,居然报错了~

[Jun 16 15:08:00.991] Manager {3078682880} ERROR: [bindProxyPort] Unable to bind socket: 80 : Permission denied
[Jun 16 15:08:00.991] Manager {3078682880} ERROR: (last system error 13: Permission denied)


我很是不解~有人说,可能是我之前使用了root运行过服务,所以导致了部分文件不能被写入。最好的办法是卸载,重装,恢复初始化。

我便运行了"make uninstall && make distclean",于是我便杯具了~

评论