熟练使用一个操作系统时,避免不了需要安装一些软件。在Windows操作系统上面安装软件只需要一直按“下一步......”可是现在出现一个问题,如果你想要增加或者删除一个软件的某些功能,那我们就爱莫能助了!
在这个方面Linux要比Windows优秀许多,Linux上面的软件几乎都是经过GPL的授权,所以每个软件都会提供源代码,你可以自行的修改程序代码,这个很棒吧!这就是开放源码的优点。
既然Linux有这么好的优点我们何不实验一下呢!接下来跟我们用源码安装一个软件
这里我们以httpd-2.4.4为例
安装httpd-2.4.4 还需要安装apr apr-util pcre
# tar -jxv -f apr-1.4.6.tar.bz2 -C /root/f1/
将apr-1.4.6.tar.bz2解压到 /root/f1/
依次解压下列文件到/root/f1/目录
apr-1.4.6.tar.bz2
apr-util-1.5.1.tar.bz2
httpd-2.4.4.tar.bz2
pcre-8.32.tar.bz2
安装apr
# tar zxvf apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure --prefix=/usr/local/apr
# make
# make install
# make clean
安装apr-util
# tar zxvf apr-util-1.5.1.tar.bz2
# cd apr-util-1.5.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install
# make clean
安装pcre
# tar zxvf pcre-8.32.tar.bz2
# cd pcre-8.32
# ./configure --prefix=/usr/local/pcre
# make
# meke install
三个必要的组件我们已经安装好了,接下来我们来安装httpd-2.4.4
安装
#httpd-2.4.4.tar.bz2
# ./configure --prefix=/usr/local/http //安装到此目录,自动创建http目录
# make
# make install
已经把四个组件全部安装完成了 现在我们来启动apache2.4.4
# cd /usr/local/http/bin/ 进入安装目录http下的bin目录
执行apachect1 这个脚本,这个脚本实际调用的是httpd 主程序
# ./apachectl start //启动
# netstat -tupln | grep 80 //查看80端口是否启动
从上图来看已经启动成功了
接下来我们停止http服务
# ./apachectl stop //停止
现在已经安装好了 现在我们想做一些训练 自己如何编写apachect1 这个脚本呢
前面我们已经说了apachect1实际调用的是httpd这个主程序
我们将自己写的脚本放在 /etc/init.d
# cd /etc/init.d/
# vim httpd 这个文件名是你将来 运行service httpd 的名字
脚本的内容如下
#!/bin/bash
#description: httpd server
#chkconfig: - 88 90
HTTPD='/usr/local/http/bin/httpd'
CONFFILE='/usr/local/http/conf/httpd.conf'
. /etc/init.d/functions
start(){
echo -n "httpd is starting..........."
sleep 1
$HTTPD -f $CONFFILE && RETVAL=0||RETVAL=1
[ $RETVAL -eq 0 ] && echo -e "\033[31m [OK] \033[0m" || echo -e "\033[31m [fail] \033[0m"
}
stop(){
echo -n "httpd is stoping......."
sleep 1
killproc httpd && RETVAL=0||RETVAL=1
[ $RETVAL -eq 0 ] || echo -e "\033[31m [fail] \033[0m"
}
case $1 in
start)
start
;;
stop)
stop
;;
下面我们来试一下刚刚编写的脚本
从图上可以看到 可以启动和停止httpd
至此我们已经完整的安装了httpd-2.4.4