centos用shell脚本安装LAMP环境Word文件下载.docx
- 文档编号:17183767
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:14
- 大小:18.74KB
centos用shell脚本安装LAMP环境Word文件下载.docx
《centos用shell脚本安装LAMP环境Word文件下载.docx》由会员分享,可在线阅读,更多相关《centos用shell脚本安装LAMP环境Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
$2"
echo"
"
}
#非root用户不能执行该脚本
if["
$UID"
!
=0];
then
"
INFO35"
0"
Mustberootrorunthisscript."
exit1
fi
#USAGE函数定义脚本用法,可反复调用,basename其实就是脚本名,\n表示换行。
functionUSAGE()
0.1"
Pleaseseethescriptoftheusage:
basename=$(basename"
$0"
)
INFO\
36"
\
$(echo-e"
Usage:
\n\n./$basename(apache|mysql|php)install\n./$basenameapache(start|stop|restart)\n./$basenamemysql(start|stop|restart)\n"
)"
#YUM_INSTALL函数安装依赖包,可反复调用,$@表示所有参数都分别被双引号引住"
$1"
"
,而$*表示所有这些参数都被双引号引住"
$1$2"
functionYUM_INSTALL()
forain$@;
do
INFO321"
Installdependonthe[$a]"
yum-yinstall$a||exit1
if[$a="
libXpm-devel"
];
then
ln-s/usr/lib/x86_64-linux-gnu/libXpm.so/usr/lib/libXpm.so
#elif[$a="
libsasl2-dev"
];
#cp/usr/lib/x86_64-linux-gnu/libldap*/usr/lib/
done
#INSTALL函数定义安装程序,可一反复调用,安装apache程序的时候要先安装3个依赖包,在安装mysql的时候要用cmake编译。
$1表示要安装的程序,$2表示yum安装对应的依赖包,$3表示程序解压后的目录,$4表示程序源码包。
functionINSTALL()
YUM_INSTALL"
&
cd$SOURCE_PATH
[-d$3]&
rm-r$3;
INFO314"
Unpackthe$4installationpackage......"
tarzxvf$4;
cd$3;
pwd;
INFO324"
Configurethe$1......"
if[$1=apache];
cp-rf../apr-1.4.8srclib/apr
cp-rf../apr-util-1.5.2srclib/apr-util
./configure$5||exit1
elif[$1=mysql];
cmake$5||exit1
elif[$1=openssl];
./config$5||exit1
elif[$1=libpng];
cpscripts/makefile.linuxmakefile
elif[$1=jpegsrc.v6b.tar.gz];
cp/usr/share/libtool/config.guess./
cp/usr/share/libtool/config.sub./
mkdir-p/usr/local/env/jpeg/bin
mkdir-p/usr/local/env/jpeg/lib
mkdir-p/usr/local/env/jpeg/include
mkdir-p/usr/local/env/jpeg/man/man1
else
INFO363"
Compile$1......"
make||exit1&
INFO344"
Install$1......"
;
makeinstall&
INFO334"
$1installationissuccessful......"
if[$1=mysql];
echo$INSTALL_PATH/mysql/lib/mysql>
>
/etc/ld.so.conf
/sbin/ldconfig&
Add$1libraryfiletold.so.conf......"
if[$1=libiconv];
/usr/local/env/libiconv/lib"
if[$1=libxml2];
/usr/local/env/libxml2/lib"
if[$1=libmcrypt];
/usr/local/env/libmcrypt/lib"
if[$1=mhash];
/usr/local/lib"
/usr/local/lib64"
if[$1=gettext];
/usr/local/env/gettext/lib"
if[$1=gd];
sed-i'
27avoid(*data);
'
/usr/local/env/gd/include/gd_io.h
/usr/local/env/gd/lib"
if[$1=freetype];
/usr/local/env/freetype/lib"
if[$1=jpegsrc.v6b.tar.gz];
/usr/local/env/jpeg/lib"
Addjpeglibraryfiletold.so.conf......"
#SERVICE函数定义程序启动,关闭,重启。
functionSERVICE()
if[$1=apache-a$2=start];
$INSTALL_PATH/$1/bin/apachectl-kstart&
\
INFO33"
2.5"
Apachestartupsuccess......"
exit
elif[$1=apache-a$2=stop];
$INSTALL_PATH/$1/bin/apachectl-kstop&
INFO31"
Apachehasstopped......"
elif[$1=apache-a$2=restart];
$INSTALL_PATH/$1/bin/apachectl-kstop;
sleep2
INFO34"
Apachehasrestarted......"
elif[$1=mysql-a$2=start];
/bin/bash$INSTALL_PATH/$1/bin/mysqld_safe--defaults-file=$INSTALL_PATH/$1/f2>
1>
/dev/null&
Mysqlstartupsuccess......"
$(netstat-ntpl|grep"
/:
:
3306"
elif[$1=mysql-a$2=stop];
kill$(netstat-ntpl|awk'
3306/{print$NF}'
|awk-F'
/'
{print$1}'
)&
Mysqlhasstopped......"
elif[$1=mysql-a$2=restart];
3"
Mysqlhasrestarted......"
#CONFIG_MYSQL函数用来定义mysql的配置。
functionCONFIG_MYSQL()
INFO323"
Configurethemysql......"
groupsmysql||groupaddmysql&
idmysql||useradd-gmysqlmysql
cd$INSTALL_PATH/mysql;
pwd
./scripts/mysql_install_db\
--user=mysql\
--basedir=$INSTALL_PATH/mysql/\
--datadir=$INSTALL_PATH/mysql/data/\
--defaults-file=$INSTALL_PATH/mysql/f
sleep3
cp$(dirname$SOURCE_PATH)/conf/f./
INFO352"
Mysqlconfigurationiscomplete......"
#CONFIG_HTTPD函数用来配置apache。
functionCONFIG_HTTPD()
Configuretheapache......"
<
?
php\nphpinfo();
\n?
$INSTALL_PATH/apache/htdocs/phpinfo.php
s/^\\\\AddTypeapplication\/x-gzip.gz.tgz$/&
\n\\\\AddTypeapplication\/x-httpd-php.php/'
$INSTALL_PATH/apache/conf/httpd.conf
s/^#ServerName:
80$/&
\nServerName127.0.0.1:
80/'
Apacheconfigurationiscomplete......"
#CONFIG_PHP函数用来配置php。
functionCONFIG_PHP()
Configurethephp......"
cp$SOURCE_PATH/$1/php.ini-development$INSTALL_PATH/php5/etc/php.ini
Phpconfigurationiscomplete......"
#INSTALL_BRANCH函数定义程序安装,${TAR_NAME[@]}是shell脚本中数组写法,即取全部元素,即TAR_NAME里面的所有包,SERVER_NAME表示包的名称,COMPILE_DIR表示包名+版本后,即解压后的目录名。
functionINSTALL_BRANCH()
foriin${TAR_NAME[@]};
SERVER_NAME=$(echo$i|awk-F"
-[0-9]"
COMPILE_DIR=$(echo$i|awk-F"
.tar.gz"
if[$1=$SERVER_NAME-a$1=apr];
INSTALLapr"
$COMPILE_DIR"
$i"
--prefix=/usr/local/env/apr"
elif[$1=$SERVER_NAME-a$1=apr-util];
INSTALLapr-util"
--prefix=/usr/local/env/apr-util--with-apr=/usr/local/env/apr"
elif[$1=$SERVER_NAME-a$1=pcre];
INSTALLpcre"
--prefix=/usr/local/env/pcre"
elif[$1=$SERVER_NAME-a$1=httpd];
INSTALLapache"
$HTTP_YUM"
$HTTP_PARAMETERS"
CONFIG_HTTPD
elif[$1=$SERVER_NAME-a$1=mysql];
INSTALLmysql"
$MYSQL_YUM"
$MYSQL_PARAMETERS"
CONFIG_MYSQL
elif[$1=$SERVER_NAME-a$1=libiconv];
INSTALLlibiconv"
--prefix=/usr/local/env/libiconv"
elif[$1=$SERVER_NAME-a$1=libxml2];
INSTALLlibxml2"
--prefix=/usr/local/env/libxml2--with-iconv=/usr/local/env/libiconv"
elif[$1=$SERVER_NAME-a$1=curl];
INSTALLcurl"
--prefix=/usr/local/env/curl--enable-utf8"
elif[$1=$SERVER_NAME-a$1=libmcrypt];
INSTALLlibmcrypt"
--prefix=/usr/local/env/libmcrypt"
elif[$1=$SERVER_NAME-a$1=mhash];
INSTALLmhash"
elif[$1=$SERVER_NAME-a$1=mcrypt];
INSTALLmcrypt"
--prefix=/usr/local/env/mcrypt\
--with-libmcrypt-prefix=/usr/local/env/libmcrypt\
--with-libiconv-prefix=/usr/local/env/libiconv"
elif[$1=$SERVER_NAME-a$1=gettext];
INSTALLgettext"
--prefix=/usr/local/env/gettext\
--with-libiconv-prefix=/usr/local/env/libiconv\
--with-libxml2-prefix=/usr/local/env/libxml2"
elif[$1=$SERVER_NAME-a$1=freetype];
INSTALLfreetype"
--prefix=/usr/local/env/freetype"
elif[$1=$SERVER_NAME-a$1=jpegsrc.v6b.tar.gz];
COMPILE_DIR="
jpeg-6b"
INSTALLjpegsrc.v6b.tar.gz"
--prefix=/usr/local/env/jpeg--enable-shared--enable-static"
elif[$1=$SERVER_NAME-a$1=libpng];
INSTALLlibpng"
elif[$1=$SERVER_NAME-a$1=gd];
INSTALLgd"
--prefix=/usr/local/env/gd--with-png=/usr\
--with-freetype=/usr/local/env/freetype\
--with-jpeg=/usr/local/env/jpeg--with-fontconfig=/usr--with-xpm=/usr"
elif[$1=$SERVER_NAME-a$1=openssl];
INSTALLopenssl"
-fPIC--prefix=/usr/local/env/opensslshared"
elif[$1=$SERVER_NAME-a$1=php];
INSTALLphp5"
$PHP5_YUM"
$PHP5_PARAMETERS"
CONFIG_PHP"
break
continue
#MOD_CASE函数用KASE定义选择安装程序。
functionMOD_CASE()
if[[$1=~apache|mysql|php]]&
[[$2=~install|start|stop|restart]];
INFO32"
1.5"
Inputthecorrect,accordingtotheoptiontoperformrelatedoperations......"
if[$2=install];
case"
$1$2"
in
apacheinstall"
Startto$1the$2......"
INSTALL_BRANCHapr
INSTALL_BRANCHapr-util
INSTALL_BRANCHpcre
INSTALL_BRANCHhttpd
mysqlinstall"
INSTALL_BRANCHmysql
phpinstall"
exportLD_LIBRARY_PATH=/lib/:
/usr/lib/:
/usr/local/lib:
/usr/local/lamp/mysql/lib
INSTALL_BRANCHlibiconv
INSTALL_BRANCHlibxml2
INSTALL_BRANCHcurl
INSTALL_BRANCHlibmcrypt
INSTALL_BRANCHmhash
INSTALL_BRANCHmcrypt
INSTALL_BRANCHgettext
INSTALL_BRANCHfreetype
INSTALL_BRANCH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- centos shell 脚本 安装 LAMP 环境
