熟练使用一个操作系统时,避免不了需要安装一些软件。在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