在Ubuntu 6.1版本上进行Rails部署,由于需要配置实现一个Apache Server对多个Mongrel的均衡负载,而原来安装的Apache2.0.55版本不支持BalancerMember特性(需Apache 2.2+版本),因此决定对系统上的Apahce进行升级。
2.0升级到2.2的详细变动信息可以参照[url=http://lamp.haloso.net/Apache/ApacheMenu/upgrading.html]Apache的文档[/url]。
首先尝试用apt-get来升级,
[code]sudo apt-get install apache2[/code]
不料Ubuntu下载下来的还是旧的Apache2.0版本,因此决定下载Apache2.2的安装包,手动安装。
1. 下载安装包
[code]wget -c http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.gz[/code]
[url]http://apache.mirror.phpchina.com[/url]是在中国比较快的Apache镜像,如果要选择其它镜像,可以到[url]http://httpd.apache.org/download.cgi[/url]查看。
2. 解压安装包
[code]tar -xvf httpd-2.2.6.tar.gz[/code]
解压后可以看到当前目录下新建了httpd-2.2.6目录。
3. 进入该目录
[code]cd httpd-2.2.6[/code]
4. 执行configure命令进行配置
我的配置命令是
[code]./configure --enable-cache --enable-mem-cache --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-balancer --enable-rewrite --enable-so[/code]
配置时可以设定./configure --prefix=PREFIX的PREFIX选项来指定安装目录,默认的安装目录是/usr/local/apache2,后面的enable选项指定了要安装的模块。如果需要更详细的配置信息可以参照[url=http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html]这里[/url]。
5. 编译
[code]make[/code]
6. 安装,先切换到安装目录(PREFIX指定的目录),执行命令
[code]make install[/code]
7. 测试安装结果,先运行
[code]killall httpd[/code]
终止所有正在运行的apache httpd进程,之后可以通过执行命令
[code]/usr/local/apache2/bin/apachectl -k start[/code]启动服务,
[code]/usr/local/apache2/bin/apachectl -k stop[/code]停止服务。
8. 这时候机器上仍然装有原来的Apache2.0版本,因此需要将旧版本从启动目录中移除。
[code]
rm -d /etc/init.d/apache2
rm -d /etc/init.d/apachectl
[/code]
9.编写启动脚本,命名为apache2,保存至/etc/init.d,内容如下
[code]
#!/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
[/code]
10. 修改原apache2命令对应的可执行文件,执行
[code]which apache2[/code]
找到旧的apache2命令对应的可执行文件路径,如/usr/sbin/apache2,进入/usr/sbin目录,删除原来的可执行文件,同时建立符号链接指向刚才创建的apache2
[code]
rm -d apache2
ln -s /etc/init.d/apache2 /usr/sbin/apache2
[/code]
这时候就可以通过apache2 start|stop|restart|status来分别启动、停止、重启apache服务和查看apache的运行状态了。
2.0升级到2.2的详细变动信息可以参照[url=http://lamp.haloso.net/Apache/ApacheMenu/upgrading.html]Apache的文档[/url]。
首先尝试用apt-get来升级,
[code]sudo apt-get install apache2[/code]
不料Ubuntu下载下来的还是旧的Apache2.0版本,因此决定下载Apache2.2的安装包,手动安装。
1. 下载安装包
[code]wget -c http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.gz[/code]
[url]http://apache.mirror.phpchina.com[/url]是在中国比较快的Apache镜像,如果要选择其它镜像,可以到[url]http://httpd.apache.org/download.cgi[/url]查看。
2. 解压安装包
[code]tar -xvf httpd-2.2.6.tar.gz[/code]
解压后可以看到当前目录下新建了httpd-2.2.6目录。
3. 进入该目录
[code]cd httpd-2.2.6[/code]
4. 执行configure命令进行配置
我的配置命令是
[code]./configure --enable-cache --enable-mem-cache --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-balancer --enable-rewrite --enable-so[/code]
配置时可以设定./configure --prefix=PREFIX的PREFIX选项来指定安装目录,默认的安装目录是/usr/local/apache2,后面的enable选项指定了要安装的模块。如果需要更详细的配置信息可以参照[url=http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html]这里[/url]。
5. 编译
[code]make[/code]
6. 安装,先切换到安装目录(PREFIX指定的目录),执行命令
[code]make install[/code]
7. 测试安装结果,先运行
[code]killall httpd[/code]
终止所有正在运行的apache httpd进程,之后可以通过执行命令
[code]/usr/local/apache2/bin/apachectl -k start[/code]启动服务,
[code]/usr/local/apache2/bin/apachectl -k stop[/code]停止服务。
8. 这时候机器上仍然装有原来的Apache2.0版本,因此需要将旧版本从启动目录中移除。
[code]
rm -d /etc/init.d/apache2
rm -d /etc/init.d/apachectl
[/code]
9.编写启动脚本,命名为apache2,保存至/etc/init.d,内容如下
[code]
#!/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
[/code]
10. 修改原apache2命令对应的可执行文件,执行
[code]which apache2[/code]
找到旧的apache2命令对应的可执行文件路径,如/usr/sbin/apache2,进入/usr/sbin目录,删除原来的可执行文件,同时建立符号链接指向刚才创建的apache2
[code]
rm -d apache2
ln -s /etc/init.d/apache2 /usr/sbin/apache2
[/code]
这时候就可以通过apache2 start|stop|restart|status来分别启动、停止、重启apache服务和查看apache的运行状态了。