在Ubuntu 6.1上编译安装Apache 2.2

在Ubuntu 6.1版本上进行Rails部署,由于需要配置实现一个Apache Server对多个Mongrel的均衡负载,而原来安装的Apache2.0.55版本不支持BalancerMember特性(需Apache 2.2+版本),因此决定对系统上的Apahce进行升级。
2.0升级到2.2的详细变动信息可以参照 Apache的文档

首先尝试用apt-get来升级,
sudo apt-get install apache2

不料Ubuntu下载下来的还是旧的Apache2.0版本,因此决定下载Apache2.2的安装包,手动安装。

1. 下载安装包
wget -c http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.gz

http://apache.mirror.phpchina.com是在中国比较快的Apache镜像,如果要选择其它镜像,可以到 http://httpd.apache.org/download.cgi查看。

2. 解压安装包
tar -xvf httpd-2.2.6.tar.gz

解压后可以看到当前目录下新建了httpd-2.2.6目录。

3. 进入该目录
cd httpd-2.2.6


4. 执行configure命令进行配置
我的配置命令是
./configure --enable-cache  --enable-mem-cache --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-balancer --enable-rewrite --enable-so

配置时可以设定./configure --prefix=PREFIX的PREFIX选项来指定安装目录,默认的安装目录是/usr/local/apache2,后面的enable选项指定了要安装的模块。如果需要更详细的配置信息可以参照 这里

5. 编译
make


6. 安装,先切换到安装目录(PREFIX指定的目录),执行命令
make install


7. 测试安装结果,先运行
killall httpd

终止所有正在运行的apache httpd进程,之后可以通过执行命令
/usr/local/apache2/bin/apachectl -k start
启动服务,
/usr/local/apache2/bin/apachectl -k stop
停止服务。

8. 这时候机器上仍然装有原来的Apache2.0版本,因此需要将旧版本从启动目录中移除。
rm -d /etc/init.d/apache2
rm -d /etc/init.d/apachectl


9.编写启动脚本,命名为apache2,保存至/etc/init.d,内容如下
#!/bin/bash
#description:http server
#chkconfig: 235 98 98
case "$1" in
start)
echo "Starting Apache daemon..."
/usr/local/apache2/bin/apachectl -k start
;;

stop)
echo "Stopping Apache daemon..."
/usr/local/apache2/bin/apachectl -k stop
;;

restart)
echo "Restarting Apache daemon..."
/usr/local/apache2/bin/apachectl -k restart
;;

status)
statusproc /usr/local/apache2/bin/httpd
;;

*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac


10. 修改原apache2命令对应的可执行文件,执行
which apache2

找到旧的apache2命令对应的可执行文件路径,如/usr/sbin/apache2,进入/usr/sbin目录,删除原来的可执行文件,同时建立符号链接指向刚才创建的apache2
rm -d apache2
ln -s /etc/init.d/apache2 /usr/sbin/apache2

这时候就可以通过apache2 start|stop|restart|status来分别启动、停止、重启apache服务和查看apache的运行状态了。

你可能感兴趣的:(apache,linux,ubuntu,bash,Rails)