常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

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

 
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 中文-桌面-开发-调试
阅读上一个主题 :: 阅读下一个主题  
作者 留言
wwj99001
半仙


注册时间: 2002-07-07
文章: 29
来自: 湖北 武汉

文章发表于: Sun 2002-07-07 10:49:37    发表主题: 快速自动安装Apache及其相关软件的Shell脚本 引用并回复

一个快速自动安装Apache及其相关软件的Shell脚本
文:王文俊 email:wwj99001@sina.com wwj99001@sohu.com 成文时间:2002年6月1日
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 �Cb >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 �Cu 命令,freebsd下使用pkg_delete命令。如果原先是手工编译安装的软件包,则只要用rm �Cfr 命令删除安装目录即可。
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 ..

_________________
I like FreeBSD!!!
返回页首
阅览会员资料 发送站内信件 MSN Messenger
wangbin
老妖


注册时间: 2003-06-20
文章: 1461

文章发表于: Sun 2003-07-20 21:13:02    发表主题: 引用并回复



好文,顶一下!

_________________
问:为什么不用ports?
答:装13。
我很欣赏。
返回页首
阅览会员资料 发送站内信件
allen1970
半仙


注册时间: 2002-11-23
文章: 30

文章发表于: Fri 2003-08-08 08:18:40    发表主题: 好文! 引用并回复

强!!!!!
返回页首
阅览会员资料 发送站内信件
dreamriver
半仙


注册时间: 2003-08-13
文章: 6

文章发表于: Sun 2003-10-12 15:30:14    发表主题: 引用并回复

下载的源代码还用解压缩吗?
返回页首
阅览会员资料 发送站内信件
dreamriver
半仙


注册时间: 2003-08-13
文章: 6

文章发表于: Sun 2003-10-12 20:54:46    发表主题: 引用并回复

运行脚本后系统提示:
Badly placed ()'s
那里出错了
返回页首
阅览会员资料 发送站内信件
从以前的文章开始显示:   
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 中文-桌面-开发-调试 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标