分享
 
 
 

一个快速自动安装Apache及其相关软件的Shell脚本

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

Apache是一个功能强大配置灵活的免费WWW服务器软件。虽然各种免费的linux、bsd unix版本都提供了它的预先编译好的安装软件包,但大部分操作系统套件都只提供基本的软件,对于它的增强模块和支持软件都只提供部分预编译包或不提供预编译包,需要用户自己编译和配置这些套件。而且在许多情况下为了更高的效率和安全性,用户也不得不自己手工编译apache套件,这是一个相当复杂和麻烦的事情。用户自己编译了apache及相关软件包后升级也是一个麻烦的问题,对此,笔者在实践中编写了一个快速自动安装Apache及mysql、php4、mod_perl、mm、openssl、mod_ssl的Shell脚本。

这个脚本能自动在当前目录查找安装软件包并自动安装。在下次重新安装时只需用最新安装程序包代替原包即可顺利升级,并且安装脚本会自动删除以前安装时的临时文件目录,替我省去了很多麻烦。本脚本在freebsd4.5下编译通过,它可以在多种linux、unix下运行,如openbsd下,省去了在不提供全部apache 软件预编译包的linux、unix系统下手工编译apache及相关软件包的麻烦。为了方便更多的apache使用者,现将脚本代码奉献如下。

使用方法及说明:

1、 请先到如下网址下载安装apache及其相关软件的源代码

apache_1.3.xx 下载地址 http://www.apache.org/dist/httpd

mysql_xx 下载地址 http://www.mysql.com/downloads

php-4.xx 下载地址 http://www.php.net/downloads.php

mod_perl-xx 下载地址 http://www.apache.org/dist/perl

mm-xx 下载地址 http://www.engelschall.com/sw/mm

openssl-xx 下载地址 http://www.openssl.org/source

mod_ssl-xx-1.3.xx(必须与所下载的apache版本号一致) 下载地址 http://www.modssl.org/source

2、 将本文一排“#”号以下的代码从IE中复制到任意文本编辑器中保存为纯文本形式,文件名随便定,如aaa.txt 。

3、 将下载软件包和aaa.txt文件上传到linux或unix服务器上的同一个目录中。执行:

cat aaa.txt |col –b >build.sh

chmod u+x build.sh

4、 备份自己的apache配置文件,linux在/etc/httpd/conf 目录中,freebsd在/usr/local/etc/apache目录中。备份mysql的数据库, linux在/var/lib/mysql下,freebsd在/var/db/mysql目录下。

5、 卸载原先安装的apache、mysql、 php 等软件。Linux下使用rpm –u 命令,freebsd下使用pkg_delete命令。如果原先是手工编译安装的软件包,则只要用rm –fr 命令删除安装目录即可。

6、 以root身份运行build.sh开始安装。然后将备份的apache配置文件和mysql数据库恢复到apache 和mysql的相应目录中。

7、 如果不想安装全部的软件包,只需将本脚本中不想安装的软件包相应部分注销掉即可。

8、 如果读者还想安装apache的其他组件,可以参照本脚本和软件包的安装指导稍做修改即可。

###########################################################################

#!/bin/sh

build () {

for rmtmp in $1*

do

if [ -d $rmtmp ]

then

echo "Found old temp install source dir in ./$rmtmp/, Delete it !"

rm -fr $rmtmp

fi

done

for getfile in $1*

do

if [ -f $getfile ]

then

echo "Found install source file $getfile,EXPAND !"

gzip -dc $getfile | tar xf -

fi

done

for getdir in $1*

do

if [ -d $getdir ]

then

GETDIR=$getdir

echo "EXPAND SOURCE TO $getdir OK !"

echo

return 0

fi

done

echo "exit build, no need source file for $1* ,or expand erorr!"

exit

}

clear

build apache_

APACHE=$GETDIR

build mysql-

MYSQL=$GETDIR

build php-

PHP=$GETDIR

build openssl-

OPENSSL=$GETDIR

build mod_ssl-

MODSSL=$GETDIR

build mod_perl-

MODPERL=$GETDIR

# install mysql

cd $MYSQL

echo "########## Install $MYSQL ####################"

sleep 3

./configure --prefix=/usr/local/mysql --with-charset=gb2312

make

make install

scripts/mysql_install_db

# install php

cd ../$APACHE

#cd $APACHE

##如果安装本软件包,请将cd ../$所在行注销,将上一行的注销去掉

echo "########## Install $PHP ####################"

sleep 3

./configure --prefix=/usr/local/apache

cd ../$PHP

./configure --with-mysql=/usr/local/mysql \

--enable-track-vars \

--with-apache=../$APACHE

make

make install

cp php.ini-dist /usr/local/lib/php.ini

# install openssl

cd ../$OPENSSL

#cd $OPENSSL

##如果只安装本软件包,请将cd ../$所在行注销,将上一行的注销去掉

echo "########## Install $OPENSSL ####################"

sleep 3

./config

make

make test

make install

# install mod_ssl

SSL_BASE=/usr/local/ssl

export SSL_BASE

cd ../$MODSSL

#cd $MODSSL

##如果只安装本软件包,请将cd ../$所在行注销,将上一行的注销去掉

echo "########## Install $MODSSL ####################"

sleep 3

./configure --with-apache=../$APACHE

# --with-crt=/path/to/your/server.crt

# --with-key=/path/to/your/server.key

#如果有自己的CA认证就取消上两行的注销号并指定相关文件的路径,

#否则不必管以上两行

# install mod_perl

cd ../$MODPERL

#cd $MODPERL

##如果只安装本软件包,请将cd ../$所在行注销,将上一行的注销去掉

echo "########## Install $MODPERL ####################"

sleep 3

perl Makefile.PL \

APACHE_SRC=../$APACHE/src \

NO_HTTPD=1 \

USE_APACI=1 \

PREP_HTTPD=1 \

EVERYTHING=1

make

make test

make install

# install apache

cd ../$APACHE

#cd $APACHE

##如果安装本软件包,请将cd ../$所在行注销,将上一行的注销去掉

echo "########## Install $APACHE ####################"

sleep 3

./configure \

--prefix=/usr/local/apache \

--activate-module=src/modules/perl/libperl.a \

--enable-module=ssl \

--enable-module=so \

--disable-rule=EXPAT

--activate-module=src/modules/php4/libphp4.a

make certificate

#如果在编译mod_ssl时指定了自己的CA认证,则必须注销上一行

#如果不想编译成DSO(动态琏接库)方式,请去掉--enable-module=so \ 这一行

make

make install

cd ..

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有