#!/bin/<span>bash
#filename:test.</span><span>sh</span><span>
#author:viticm
#createtime:</span><span>2013</span>-<span>5</span>-<span>31</span> <span>11</span>:<span>12</span>:<span>03</span><span>
#
use
: </span><span>install</span><span> web develop
cUser</span>=`<span>whoami</span><span>`
cCommand</span>=$<span>1</span><span>
cDownload</span>=<span>on
cBase</span>=<span>no
cWebUser</span>=<span>www
cInstallFile</span>=/web/<span>
cInstallPhpPath</span>=/usr/local/php/<span>
cInstallNginxPath</span>=/usr/local/nginx/<span>
cInstallMysqlPath</span>=/usr/local/mysql/<span>
cPhpMakefile</span>=/home/<span>Makefile
iSystemType</span>=<span>`getconf LONG_BIT`
Arr_OpenPortList</span>=<span>
""
</span><span>
cTestDomain</span>=<span>www.baidu.com
##### mysql config #####
cMysqlDefaultPasswd</span>=<span>mysql
cMysqlInstallPath</span>=/usr/local/mysql/<span>
cMysqlConfUploadFile</span>=`<span>pwd</span>`/<span>my.cnf
##### mysql config #####
####### PHP #######
cDate_TimeZone</span>=<span>
"</span><span>Asia/Shanghai</span><span>"
</span><span>
cDisplay_Errors</span>=<span>On
cError_Reporting</span>=<span>
"</span><span>E_ALL & ~E_NOTICE</span><span>"
</span><span>
cAllow_Call_Time_Pass_Reference</span>=<span>On
###### PHP ########
#### PHP</span>-<span>FPM CONFIGS ####
pm_max_children</span>=<span>64</span><span>
pm_start_servers</span>=<span>20</span><span>
pm_min_spare_servers</span>=<span>5</span><span>
pm_max_spare_servers</span>=<span>35</span><span>
pm_max_requests</span>=<span>1024</span><span>
pm_user</span>=<span>${cWebUser}
pm_group</span>=<span>${cWebUser}
#### PHP</span>-<span>FPM CONFIGS ####
usage()
{
</span><span>cat</span> EOF
Usage: $<span>0</span> <params>
-m
or
--mysql <span>install</span><span> mysql
</span>-n
or
--nginx <span>install</span><span> nginx
</span>-p
or
--php <span>install</span> php(
and
this can enter two params,like -p <span>5.3</span>( <span>5.4</span> ) <span>then</span> <span>install</span> php what version is <span>5.3</span><span> )
EOF
return
</span><span>0</span><span>
}
# on OEL, </span>/etc/issue states <span>
"</span><span>Enterprise Linux Enterprise Linux Server</span><span>"
</span><span>
SUPPORTED_OS</span>=<span>
'</span><span>CentOS|Red Hat Enterprise Linux Server|Enterprise Linux Enterprise Linux Server|Fedora|SUSE|Debian GNU/Linux|Ubuntu|Oracle Linux Server</span><span>'
</span>
<span>
if
</span> ! <span>egrep</span> -q <span>
"</span><span>$SUPPORTED_OS</span><span>"
</span> /etc/issue ; <span>then</span>
<span>cat</span> EOF
Unable to <span>install</span>: Your distribution is not suitable <span>
for
</span><span> installation using
Zend</span><span>'</span><span>s DEB/RPM repositories. </span>
<span>
EOF
exit
</span><span>1</span>
<span>fi</span><span>
# </span>-v
or
--<span>version
</span><span>
if
</span> [ <span>
"</span><span>$1</span><span>"
</span> = <span>
"</span><span>-v</span><span>"
</span> -o <span>
"</span><span>$1</span><span>"
</span> = <span>
"</span><span>--version</span><span>"
</span> ]; <span>then</span>
<span>
echo
</span> <span>
"</span><span>`basename $0` version 1.0.1</span><span>"
</span><span>
usage
exit
</span><span>0</span>
<span>fi</span><span>
# </span>-h
or
--<span>help
</span><span>
if
</span> [ <span>
"</span><span>$1</span><span>"
</span> = <span>
"</span><span>-h</span><span>"
</span> -o <span>
"</span><span>$1</span><span>"
</span> = <span>
"</span><span>--help</span><span>"
</span> ]; <span>then</span><span>
usage
exit
</span><span>0</span>
<span>fi</span><span>
MYUID</span>=`<span>id</span> -u <span>2</span>> /dev/<span>null</span><span>`
</span><span>
if
</span> [ ! -z <span>
"</span><span>$MYUID</span><span>"
</span> ]; <span>then</span>
<span>
if
</span> [
$MYUID
!= <span>0</span> ]; <span>then</span>
<span>
echo
</span> <span>
"</span><span>You need root privileges to run this script.</span><span>"
</span><span>;
#
exit
</span><span>2</span>
<span>fi</span>
<span>
else
</span>
<span>
echo
</span> <span>
"</span><span>Could not detect UID</span><span>"
</span><span>;
exit
</span><span>2</span>
<span>fi</span>
<span>cat</span> EOF
Hit ENTER to <span>install</span> web develop,
or
Ctrl+<span>C to abort now.
EOF
# give read a parameter,
as
it required </span><span>in</span><span> dash
read answer
#Base
</span><span>
function
</span><span> InstallBasePackage()
{
</span><span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>************************************************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Start install Base package( vim git wget base for mysql php nginx ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>************************************************************************</span><span>"
</span><span>
#clean iptables
# </span><span>
echo
</span> -e <span>
"</span><span>\e[0;36;1mfirst will clean iptables,please wait.\e[0m</span><span>"
</span><span>
# iptables </span>-<span>F
# iptables </span>-<span>X
# iptables </span>-<span>Z
</span><span>
if
</span> [[ ${cBase} == <span>
"</span><span>ok</span><span>"
</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;35;1myour base is ok,now will not install base package.\e[0m</span><span>"
</span>
<span>
else
</span><span>
#it will download from network .
</span><span>
echo
</span> -e <span>
"</span><span>\e[0;33;1mnow will test your network if worked,please wait some time.\e[0m</span><span>"
</span>
<span>ping</span> -c <span>5</span><span> ${cTestDomain}
</span><span>
if
</span> [[ $? -ne <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1myour network not worked,please check it.\e[0m</span><span>"
</span><span>
exit
</span><span>1</span>
<span>
else
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;35;1myour network is worked,now will download from your network.\e[0m</span><span>"
</span>
<span>fi</span>
<span>fi</span>
<span>
if
</span> [[ ${cBase} == <span>
"</span><span>no</span><span>"
</span> ]] ; <span>then</span><span>
#vim
# </span><span>yum</span> -y <span>install</span><span> vim
</span><span>yum</span> -y <span>install</span><span> ctags
</span><span>yum</span> -y <span>install</span><span> cscope
</span><span>yum</span> -y <span>install</span><span> ntp
#git
</span><span>yum</span> -y <span>install</span><span> git
#</span><span>wget</span>
<span>yum</span> -y <span>install</span> <span>wget</span><span>
#</span><span>gcc</span>
<span>yum</span> -y <span>install</span> <span>yum</span>-<span>fastestmirror
</span><span>yum</span> -y <span>install</span> <span>gcc</span> <span>gcc</span>-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel <span>bzip2</span> <span>bzip2</span>-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-<span>servers
#Nginx
</span><span>yum</span> -y <span>install</span> pcre-devel zlib-devel readline-<span>devel
#Php
</span><span>yum</span> -y <span>install</span> gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-<span>devel
#Mysql
</span><span>yum</span> -y <span>install</span> bison <span>gcc</span> <span>gcc</span>-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel*<span>
#bc
</span><span>yum</span> -y <span>install</span><span> bc
</span><span>fi</span><span>
#synchronous </span><span>time</span><span>
chkconfig ntpd on
ntpdate cn.pool.ntp.org
hwclock </span>--<span>systohc
#config ulimit configs
</span><span>
echo
</span><span> now will config limit allow handles.
</span><span>
echo
</span> <span>
"</span><span>* soft nofile 2048</span><span>"
</span> >> /etc/security/<span>limits.conf
</span><span>
echo
</span> <span>
"</span><span>* hard nofile 32768</span><span>"
</span> >> /etc/security/<span>limits.conf
</span><span>
echo
</span> <span>
"</span><span>config limits is ok, remember reboot your server.</span><span>"
</span>
<span>
if
</span> [[ $? -ne <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall base is failed.\e[0m</span><span>"
</span><span>
exit
</span><span>1</span>
<span>fi</span>
<span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>**************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Install base package is completed. *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>**************************************</span><span>"
</span><span>
}
#Mysql
</span><span>
function
</span><span> InstallMysql()
{
</span><span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Start install mysql( Percona-Server-5.6 ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************</span><span>"
</span><span>
local cMysqlPackage</span>=<span>
"</span><span>Percona-Server-5.6.10-alpha60.2.tar.gz</span><span>"
</span><span>
local cMysqlPackageDir</span>=<span>
"</span><span>Percona-Server-5.6.10-alpha60.2</span><span>"
</span>
<span>
if
</span> [[ ${cBase} == <span>
"</span><span>no</span><span>"
</span> ]] ; <span>then</span>
<span>yum</span> -y <span>install</span> <span>make</span>
<span>yum</span> -y <span>install</span><span> cmake
</span><span>yum</span> -y <span>install</span> libtermcap-<span>devel
</span><span>yum</span> -y <span>install</span> <span>patch</span>
<span>yum</span> -y <span>install</span> <span>perl</span>
<span>yum</span> -y <span>install</span><span> bison
</span><span>fi</span>
<span>
if
</span> [[ ${cDownload} == <span>
"</span><span>off</span><span>"
</span> ]] ; <span>then</span><span>
cd ${cInstallFile}
</span><span>fi</span>
<span>
if
</span> [ -x ./<span>${cMysqlPackageDir} ]
</span><span>then</span><span>
#</span><span>rm</span> -fr Percona-Server-<span>5.1</span>.<span>62</span>
<span>
echo
</span> <span>
"</span><span>Percona is exists,use it.</span><span>"
</span>
<span>
else
</span>
<span>
if
</span> [ -f ./<span>${cMysqlPackage} ]
</span><span>then</span>
<span>tar</span> -<span>zxvf ${cMysqlPackage}
</span><span>
else
</span>
<span>wget</span> -c http:<span>
<span>
if
</span> [[ $? -ne <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> <span>
"</span><span>download mysql is failed,please check your network.</span><span>"
</span><span>
exit
</span><span>1</span>
<span>fi</span>
<span>sleep</span> <span>3</span>
<span>tar</span> -<span>zxvf ${cMysqlPackage}
</span><span>fi</span>
<span>fi</span>
<span>
echo
</span> <span>
"</span><span>start install mysql</span><span>"
</span>
<span>sleep</span> <span>3</span><span>
#
delete
mysql </span><span>install</span><span> directory
cd ${cMysqlPackageDir}
</span><span>
if
</span> [[ <span>
""
</span> != `<span>ps</span> -A | <span>grep</span> mysqld` ]]; <span>then</span><span>
PRINTWARNING </span><span>
"</span><span>mysql is install and run now will uninstall it, or Ctrl+C to abort now.</span><span>"
</span><span>
read answer
service mysql stop
# </span><span>make</span><span> clean
# </span><span>make</span><span> uninstall
</span><span>rm</span> -<span>rf ${cMysqlInstallPath}
</span><span>fi</span><span>
CC</span>=<span>gcc</span> CFLAGS=<span>
"</span><span>-DBIG_JOINS=1 -DHAVE_DLOPEN=1 -O3</span><span>"
</span> CXX=g++ CXXFLAGS=<span>
"</span><span>-DBIG_JOINS=1 -DHAVE_DLOPEN=1 -felide-constructors -fno-rtti -O3</span><span>"
</span><span>
cmake </span>-DCMAKE_INSTALL_PREFIX=/usr/local/<span>mysql \
</span>-DMYSQL_UNIX_ADDR=/tmp/<span>mysql.sock \
</span>-DDEFAULT_CHARSET=<span>utf8 \
</span>-DDEFAULT_COLLATION=<span>utf8_general_ci \
</span>-DWITH_EXTRA_CHARSETS=<span>all \
</span>-DWITH_MYISAM_STORAGE_ENGINE=<span>1</span><span> \
</span>-DWITH_INNOBASE_STORAGE_ENGINE=<span>1</span><span> \
</span>-DWITH_READLINE=<span>1</span><span> \
</span>-DENABLED_LOCAL_INFILE=<span>1</span><span> \
</span>-DMYSQL_DATADIR=/
var
/mysql/<span>data
</span><span>sleep</span> <span>3</span>
<span>make</span> -j4 && <span>make</span> <span>install</span><span>
groupadd mysql
useradd </span>-<span>g mysql mysql
cd ${cMysqlInstallPath} </span>&& <span>
chown
</span> -R mysql . && <span>
chgrp
</span> -<span>R mysql .
</span><span>
echo
</span> <span>
"</span><span>make install is ok</span><span>"
</span>
<span>sleep</span> <span>3</span>
<span>
mkdir
</span> -p /
var
/mysql/data && <span>
chown
</span> mysql:mysql /
var
/mysql/ -<span>R
</span><span>
if
</span> [[ -f ${cMysqlConfUploadFile} ]] ; <span>then</span>
<span>cp</span> ${cMysqlConfUploadFile} /etc/<span>my.cnf
</span><span>
else
</span>
<span>cp</span> ${cMysqlInstallPath}support-files/my-
default
.cnf /etc/<span>my.cnf
#</span><span>sed</span> <span>
"</span><span>s/skip-locking/external-locking/g</span><span>"
</span> -i /etc/<span>my.cnf
#</span><span>sed</span> <span>
"</span><span>s/#innodb_/innodb_/g</span><span>"
</span> -i /etc/<span>my.cnf
#</span><span>sed</span> -i <span>
'</span><span>32 i\default-storage-engine=InnoDB</span><span>'
</span> -i /etc/<span>my.cnf
</span><span>fi</span><span>
${cMysqlInstallPath}</span>/scripts/mysql_install_db --basedir=${cMysqlInstallPath}/ --user=mysql --datadir=/
var
/mysql/<span>data
</span><span>ln</span> -s /usr/local/mysql/lib/libmysqlclient.so.<span>18</span> /usr/lib/libmysqlclient.so.<span>18</span>
<span>
echo
</span> <span>
"</span><span>install_db Initialize the database is complete</span><span>"
</span>
<span>sleep</span> <span>3</span>
<span>
echo
</span> <span>
"</span><span>Try to start the database</span><span>"
</span>
<span>cp</span> ${cMysqlInstallPath}support-files/mysql.server /etc/init.d/<span>mysql
</span><span>cp</span> ${cMysqlInstallPath}/bin/mysql /usr/sbin/<span>
service mysql start
cd ${cMysqlInstallPath} </span>&& <span>
chown
</span> -R mysql . && <span>
chgrp
</span> -<span>R mysql .
</span><span>
echo
</span> <span>
"</span><span>Database startup is complete</span><span>"
</span>
<span>sleep</span> <span>3</span>
<span>
echo
</span> <span>
"</span><span>Change your password after 10 seconds</span><span>"
</span>
<span>sleep</span> <span>10</span><span>
cd ${cMysqlInstallPath} </span>&& ./bin/mysqladmin -<span>uroot password ${cMysqlDefaultPasswd}
</span><span>
if
</span> [[ <span>
""
</span> == `<span>cat</span> /etc/rc.d/rc.local | <span>grep</span> <span>
"</span><span>service mysql start</span><span>"
</span>` ]] ; <span>then</span>
<span>
echo
</span> <span>
"</span><span>service mysql start</span><span>"
</span> >> /etc/rc.d/<span>rc.local
</span><span>fi</span>
<span>
if
</span> [[ $? -ne <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1mInstallation fails, check the above error\e[0m</span><span>"
</span><span>
exit
</span><span>1</span>
<span>
else
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;34;1mCongratulations, the installation was successful.Directory:</span><span>"
</span>${cMysqlInstallPath}<span>
"</span><span>\e[0m</span><span>"
</span>
<span>fi</span>
<span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Install Mysql is completed.( Use Percona-Server-5.6 ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************************</span><span>"
</span><span>
}
#Nginx
</span><span>
function
</span><span> InstallNginx()
{
cd ${cInstallFile}
local cNginxPackage</span>=tengine-<span>2.0</span>.<span>0</span>.<span>tar</span><span>.gz
local cNginxPackageDir</span>=tengine-<span>2.0</span>.<span>0</span>
<span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>***************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Start install Nginx( Use tengine ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>***************************************</span><span>"
</span>
<span>#
if
</span> [[
""
!= `ps -A | grep nginx` ]]; then<span>
# PRINTWARNING </span><span>
"</span><span>mysql is install and run now will uninstall it, or Ctrl+C to abort now.</span><span>"
</span><span>
# service nginx stop
# </span><span>make</span><span> uninstall
# </span><span>rm</span> -<span>rf ${cInstallNginxPath}
# </span><span>fi</span><span>
groupadd www
useradd </span>-<span>g www www
</span><span>
if
</span> [[ ${cDownload} == <span>
"</span><span>on</span><span>"
</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;33;1mnow download package form website,check your network if failed!\e[0m</span><span>"
</span><span>
#Nginx </span><span>1.3</span>.<span>0</span>
<span>
if
</span> [[ -f ${cInstallFile}${cNginxPackage} ]] ; <span>then</span>
<span>
echo
</span><span> ${cNginxPackage} is found.
</span><span>
else
</span>
<span>
echo
</span><span> now will download ${cNginxPackage} from network.
</span><span>wget</span> -c http:<span>
<span>fi</span><span>
#openssl
</span><span>
if
</span> [[ -f ${cInstallFile}openssl-<span>1.0</span>.1c.<span>tar</span>.gz ]] ; <span>then</span>
<span>
echo
</span> openssl-<span>1.0</span>.1c.<span>tar</span><span>.gz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download openssl-<span>1.0</span>.1c.<span>tar</span><span>.gz from network.
</span><span>wget</span> -c http:<span>
<span>fi</span><span>
#Nginx(pcre)
# </span><span>
if
</span> [[ -f ${cInstallFile}pcre-<span>8.30</span>.<span>tar</span>.gz ]] ; <span>then</span><span>
# </span><span>
echo
</span> pcre-<span>8.30</span>.<span>tar</span><span>.gz is found.
# </span><span>
else
</span><span>
# </span><span>
echo
</span> now will download pcre-<span>8.30</span>.<span>tar</span><span>.gz from network.
# </span><span>wget</span> http:<span>
# <span>fi</span><span>
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1mdownload package is failed,Please check your network.\e[0m</span><span>"
</span><span>
exit
</span><span>fi</span>
<span>fi</span><span>
#</span><span>install</span><span> pcre
# </span><span>tar</span> -zxvf pcre-<span>8.30</span>.<span>tar</span>.gz && cd pcre-<span>8.30</span>/ && ./<span>configure
# </span><span>make</span> -s -j4 && <span>make</span> <span>install</span><span>
# cd ..</span>/<span>
#</span><span>install</span><span> openssl
</span><span>
if
</span> [[ -d openssl-<span>1.0</span>.1c ]] ; <span>then</span><span>
PRINTUSEDIR openssl</span>-<span>1.0</span><span>.1c
</span><span>
else
</span>
<span>tar</span> zxvf openssl-<span>1.0</span>.1c.<span>tar</span>.gz #&& cd openssl-<span>1.0</span><span>.1c
</span><span>fi</span><span>
# .</span>/config --prefix=/usr/local/ --openssldir=/usr/local/openssl-<span>1.0</span>.1c shared zlib-dynamic enable-camellia enable-tlsext -<span>fPIC
# </span><span>make</span> && <span>make</span> <span>install</span> && cd ../<span>
#</span><span>install</span><span> nginx
</span><span>
if
</span> [[ -d ${cNginxPackageDir} ]] ; <span>then</span><span>
PRINTUSEDIR ${cNginxPackageDir}
</span><span>
else
</span>
<span>tar</span> -<span>xzvf ${cNginxPackage}
</span><span>fi</span><span>
cd ${cInstallFile}${cNginxPackageDir}
</span><span>make</span><span> clean
.</span>/configure --user=${cWebUser} --group=<span>${cWebUser} \
</span>--prefix=<span>${cInstallNginxPath} \
</span>--sbin-path=${cInstallNginxPath}sbin/<span>nginx \
</span>--conf-path=${cInstallNginxPath}conf/<span>nginx.conf \
</span>--with-<span>http_stub_status_module \
</span>--lock-path=/
var
/run/<span>nginx.lock \
</span>--pid-path=/
var
/run/<span>nginx.pid \
</span>--with-openssl=../openssl-<span>1.0</span><span>.1c \
</span>--with-pcre-<span>jit
</span><span>sleep</span> <span>10</span>
<span>make</span> && <span>make</span> <span>install</span><span>
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall nginx have some error,you can read it.\e[0m</span><span>"
</span><span>
exit
</span><span>
else
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;34;1mgood luck! install nginx sucess! \e[0m</span><span>"
</span>
<span>fi</span>
<span>#
if
</span> install nginx is sucess,then will config it.<span>
# </span><span>
echo
</span> <span>
"</span><span>Now will config the nginx,please wait.</span><span>"
</span>
<span>
if
</span> [[ -f ${cNginxConfFile} ]] ; <span>then</span>
<span>cp</span> -n ${cNginxConfFile} ${cInstallNginxPath}conf/<span>nginx.conf
</span><span>
else
</span>
<span>sed</span> -e <span>
"</span><span>2 c\user ${cWebUser};</span><span>"
</span> -i ${cInstallNginxPath}conf/<span>nginx.conf
</span><span>fi</span><span>
#start nginx
and
set start on boot
</span><span>
echo
</span> ${cInstallNginxPath}sbin/nginx >> /etc/rc.d/<span>rc.local
${cInstallNginxPath}sbin</span>/<span>nginx
#open port </span><span>3306</span>
and
<span>80</span><span>
iptables </span>-I INPUT -p tcp --dport <span>80</span> -<span>j ACCEPT
iptables </span>-I OUTPUT -p tcp --sport <span>80</span> -<span>j ACCEPT
iptables </span>-I INPUT -p tcp --dport <span>3306</span> -<span>j ACCEPT
iptables </span>-I OUTPUT -p tcp --sport <span>3306</span> -<span>j ACCEPT
</span>/etc/rc.d/init.d/<span>iptables save
service iptables restart
</span><span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>***********************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Install Nginx is completed.( Use tengine ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>***********************************************</span><span>"
</span><span>
}
#PHP
</span><span>
function
</span><span> InstallPHP()
{
cd ${cInstallFile}
</span><span>
echo
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>* Start install PHP.( Default version 5.3 ). *</span><span>"
</span>
<span>
echo
</span> <span>
"</span><span>**********************************************</span><span>"
</span><span>
local cPhpVersion</span>=${<span>2</span><span>}
local cPhpPackage</span>=<span>
""
</span><span>
local cPhpPackageDir</span>=<span>
""
</span>
<span>
if
</span> [[ -z ${cPhpVersion} ]]; <span>then</span>
<span>
echo
</span> <span>install</span>
default
php version <span>5.3</span><span>
cPhpVersion</span>=<span>
"</span><span>5.3</span><span>"
</span><span>
cPhpPackage</span>=<span>
"</span><span>php-5.3.28.tar.bz2</span><span>"
</span><span>
cPhpPackageDir</span>=<span>
"</span><span>php-5.3.28</span><span>"
</span>
<span>
else
</span>
<span>
if
</span> [[ <span>
"</span><span>5.3</span><span>"
</span> != ${cPhpVersion} && <span>
"</span><span>5.4</span><span>"
</span> != ${cPhpVersion} ]]; <span>then</span><span>
Useage
exit
</span><span>1</span>
<span>
else
</span>
<span>
if
</span> [[ <span>
"</span><span>5.3</span><span>"
</span> == ${cPhpVersion} ]]; <span>then</span><span>
cPhpPackage</span>=<span>
"</span><span>php-5.3.28.tar.bz2</span><span>"
</span><span>
cPhpPackageDir</span>=<span>
"</span><span>php-5.3.28</span><span>"
</span>
<span>
else
</span><span>
cPhpPackage</span>=<span>
"</span><span>php-5.4.15.tar.bz2</span><span>"
</span><span>
cPhpPackageDir</span>=<span>
"</span><span>php-5.4.15</span><span>"
</span>
<span>fi</span>
<span>fi</span>
<span>fi</span>
<span>
if
</span> [[ ${cDownload} == <span>
"</span><span>on</span><span>"
</span> ]] ; <span>then</span>
<span>
echo
</span> now download package form website,check your network <span>
if
</span> failed!<span>
#PHP5.</span><span>3.14</span>
<span>
if
</span> [[ -f ${cInstallFile}${cPhpPackage} ]] ; <span>then</span>
<span>
echo
</span><span> ${cPhpPackage} is found.
</span><span>
else
</span>
<span>
echo
</span><span> now will download php package from network.
</span><span>wget</span> -c http:<span>
<span>fi</span><span>
#PHP
</span><span>
if
</span> [[ -f ${cInstallFile}mcrypt-<span>2.6</span>.<span>8</span>.<span>tar</span>.gz ]] ; <span>then</span>
<span>
echo
</span> mcrypt-<span>2.6</span>.<span>8</span>.<span>tar</span><span>.gz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download mcrypt-<span>2.6</span>.<span>8</span>.<span>tar</span><span>.gz from network.
</span><span>wget</span> http:<span>
<span>fi</span>
<span>
if
</span> [[ -f ${cInstallFile}mhash-<span>0.9</span>.<span>9.9</span>.<span>tar</span>.gz ]] ; <span>then</span>
<span>
echo
</span> mhash-<span>0.9</span>.<span>9.9</span>.<span>tar</span><span>.gz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download mhash-<span>0.9</span>.<span>9.9</span>.<span>tar</span><span>.gz from network.
</span><span>wget</span> http:<span>
<span>fi</span>
<span>
if
</span> [[ -f ${cInstallFile}libmcrypt-<span>2.5</span>.<span>8</span>.<span>tar</span>.gz ]] ; <span>then</span>
<span>
echo
</span> libmcrypt-<span>2.5</span>.<span>8</span>.<span>tar</span><span>.gz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download libmcrypt-<span>2.5</span>.<span>8</span>.<span>tar</span><span>.gz from network.
</span><span>wget</span> http:<span>
<span>fi</span>
<span>
if
</span> [[ -f ${cInstallFile}libiconv-<span>1.14</span>.<span>tar</span>.gz ]] ; <span>then</span>
<span>
echo
</span> libiconv-<span>1.14</span>.<span>tar</span><span>.gz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download libiconv-<span>1.14</span>.<span>tar</span><span>.gz from network.
</span><span>wget</span> http:<span>
<span>fi</span>
<span>
if
</span> [[ -f ${cInstallFile}memcache-<span>3.0</span>.<span>6</span>.tgz ]] ; <span>then</span>
<span>
echo
</span> memcache-<span>3.0</span>.<span>6</span><span>.tgz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download memcache-<span>3.0</span>.<span>6</span><span>.tgz from network.
</span><span>wget</span> http:<span>
<span>fi</span>
<span>
if
</span> [[ -f ${cInstallFile}PDO_MYSQL-<span>1.0</span>.<span>2</span>.tgz ]] ; <span>then</span>
<span>
echo
</span> PDO_MYSQL-<span>1.0</span>.<span>2</span><span>.tgz is found.
</span><span>
else
</span>
<span>
echo
</span> now will download PDO_MYSQL-<span>1.0</span>.<span>2</span><span>.tgz from network.
</span><span>wget</span> http:<span>
<span>fi</span><span>
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1mdownload package failed,you can check your network if can work.\e[0m</span><span>"
</span><span>
exit
</span><span>fi</span>
<span>fi</span>
<span>
echo
</span> <span>
"</span><span>install some plugin for php</span><span>"
</span><span>
#</span><span>1</span>
<span>
if
</span> [[ -d libiconv-<span>1.14</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR libiconv</span>-<span>1.14</span>/
<span>
else
</span>
<span>tar</span> -zxvf libiconv-<span>1.14</span>.<span>tar</span>.gz && cd libiconv-<span>1.14</span>/
<span>fi</span><span>
.</span>/configure --prefix=/usr/<span>local
</span><span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../
<span>sleep</span> <span>1</span><span>
#</span><span>2</span>
<span>
if
</span> [[ -d libmcrypt-<span>2.5</span>.<span>8</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR libmcrypt</span>-<span>2.5</span>.<span>8</span>/
<span>
else
</span>
<span>tar</span> -zxvf libmcrypt-<span>2.5</span>.<span>8</span>.<span>tar</span>.gz && cd libmcrypt-<span>2.5</span>.<span>8</span>/
<span>fi</span><span>
.</span>/configure && <span>make</span> && <span>make</span> <span>install</span>
/sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-<span>install</span>
<span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../ && cd ../
<span>sleep</span> <span>2</span><span>
#</span><span>3</span>
<span>
if
</span> [[ -d mhash-<span>0.9</span>.<span>9.9</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR mhash</span>-<span>0.9</span>.<span>9.9</span>/
<span>
else
</span>
<span>tar</span> -zxvf mhash-<span>0.9</span>.<span>9.9</span>.<span>tar</span>.gz && cd mhash-<span>0.9</span>.<span>9.9</span>/
<span>fi</span><span>
.</span>/<span>configure
</span><span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../
<span>sleep</span> <span>3</span><span>
#</span><span>4</span>
<span>ln</span> -s /usr/local/lib/libmcrypt.la /usr/lib/<span>libmcrypt.la
</span><span>ln</span> -s /usr/local/lib/libmcrypt.so /usr/lib/<span>libmcrypt.so
</span><span>ln</span> -s /usr/local/lib/libmcrypt.so.<span>4</span> /usr/lib/libmcrypt.so.<span>4</span>
<span>ln</span> -s /usr/local/lib/libmcrypt.so.<span>4.4</span>.<span>8</span> /usr/lib/libmcrypt.so.<span>4.4</span>.<span>8</span>
<span>ln</span> -s /usr/local/lib/libmhash.a /usr/lib/<span>libmhash.a
</span><span>ln</span> -s /usr/local/lib/libmhash.la /usr/lib/<span>libmhash.la
</span><span>ln</span> -s /usr/local/lib/libmhash.so /usr/lib/<span>libmhash.so
</span><span>ln</span> -s /usr/local/lib/libmhash.so.<span>2</span> /usr/lib/libmhash.so.<span>2</span>
<span>ln</span> -s /usr/local/lib/libmhash.so.<span>2.0</span>.<span>1</span> /usr/lib/libmhash.so.<span>2.0</span>.<span>1</span>
<span>ln</span> -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-<span>config
</span><span>sleep</span> <span>1</span><span>
#</span><span>5</span>
/sbin/<span>ldconfig
</span><span>
if
</span> [[ -d mcrypt-<span>2.6</span>.<span>8</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR mcrypt</span>-<span>2.6</span>.<span>8</span>/
<span>
else
</span>
<span>tar</span> -zxvf mcrypt-<span>2.6</span>.<span>8</span>.<span>tar</span>.gz && cd mcrypt-<span>2.6</span>.<span>8</span>/
<span>fi</span><span>
.</span>/<span>configure
</span><span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../
<span>sleep</span> <span>2</span><span>
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall package false,please read the errors.\e[0m</span><span>"
</span><span>
exit
</span><span>fi</span>
<span>
echo
</span> <span>install</span> plugin <span>
for
</span><span> php is completed.
</span><span>
echo
</span> now will <span>install</span><span> php, version is ${cPhpVersion}
#</span><span>64</span> OR <span>32</span><span> SYSTEM LIB MUST BE DIFFERENT
</span><span>
if
</span> [[ ${iSystemType} == <span>64</span> ]] ; <span>then</span>
<span>cp</span> -frp /usr/lib64/libldap* /usr/<span>lib
</span><span>fi</span><span>
#</span><span>6</span><span>
cd ${cInstallFile}
</span><span>
if
</span> [[ -d ${cPhpPackageDir} ]] ; <span>then</span><span>
PRINTUSEDIR ${cPhpPackageDir}
</span><span>
else
</span>
<span>tar</span> -<span>xjvf ${cPhpPackage}
cd ${cPhpPackageDir}
</span><span>fi</span><span>
.</span>/configure --prefix=<span>${cInstallPhpPath} \
</span>--with-config-<span>file</span>-path=<span>${cInstallPhpPath}etc \
</span>--with-iconv-<span>dir</span>=/usr/local/ --with-freetype-<span>dir</span><span> \
</span>--with-mysql=<span>${cInstallMysqlPath} \
</span>--with-mysqli=${cInstallMysqlPath}bin/<span>mysql_config \
</span>--with-jpeg-<span>dir</span> --with-png-<span>dir</span> --with-<span>zlib \
</span>--with-mhash --enable-sockets --enable-<span>ftp</span><span> \
</span>--with-libxml-<span>dir</span> --enable-xml --disable-<span>rpath \
</span>--enable-safe-mode --enable-<span>bcmath \
</span>--enable-shmop --enable-<span>sysvsem \
</span>--enable-inline-optimization --with-<span>curl \
</span>--with-<span>curlwrappers \
</span>--enable-<span>mbregex \
</span>--enable-mbstring --with-mcrypt --with-<span>gd \
</span>--enable-gd-native-ttf --with-openssl --with-<span>mhash \
</span>--enable-pcntl --enable-sockets --with-ldap --with-ldap-<span>sasl \
</span>--enable-<span>fpm \
</span>--with-xmlrpc --enable-<span>zip</span> --enable-<span>soap \
</span>--without-<span>pear;
</span><span>make</span> -s -j4 ZEND_EXTRA_LIBS=<span>
'</span><span>-liconv</span><span>'
</span>
<span>make</span> <span>install</span>
<span>cp</span> php.ini-production ${cInstallPhpPath}etc/<span>php.ini
</span><span>ln</span> -s ${cInstallPhpPath}bin/php /usr/sbin/<span>php
#now we can config php.ini
</span><span>sed</span> <span>
"</span><span>538 c\display_errors = ${cDisplay_Errors}</span><span>"
</span> -i ${cInstallPhpPath}etc/<span>php.ini
</span><span>sed</span> <span>
"</span><span>521 c\error_reporting = ${cError_Reporting}</span><span>"
</span> -i ${cInstallPhpPath}etc/<span>php.ini
</span><span>sed</span> <span>
"</span><span>334 c\allow_call_time_pass_reference = ${cAllow_Call_Time_Pass_Reference}</span><span>"
</span> -i ${cInstallPhpPath}etc/<span>php.ini
</span><span>sed</span> <span>
"</span><span>1008 c\date.timezone = ${cDate_TimeZone}</span><span>"
</span> -i ${cInstallPhpPath}etc/<span>php.ini
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall PHP failed,you can read the errors or send email to me.\e[0m</span><span>"
</span><span>
exit
</span><span>fi</span>
<span>
echo
</span> -------------------------------
end
-----------------------------------<span>
cd ${cInstallFile}
</span><span>
echo
</span> <span>
"</span><span>######################install Extensions for PHP#################</span><span>"
</span>
<span>
echo
</span> -------------------------------start---------------------------------
<span>
if
</span> [[ -d memcache-<span>3.0</span>.<span>6</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR memcache</span>-<span>3.0</span>.<span>6</span>/
<span>
else
</span>
<span>tar</span> -zxvf memcache-<span>3.0</span>.<span>6</span><span>.tgz
cd memcache</span>-<span>3.0</span>.<span>6</span>/
<span>fi</span><span>
${cInstallPhpPath}bin</span>/<span>phpize
.</span>/configure --with-php-config=${cInstallPhpPath}bin/php-<span>config
</span><span>sleep</span> <span>1</span>
<span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../
<span>
if
</span> [[ -d PDO_MYSQL-<span>1.0</span>.<span>2</span>/ ]] ; <span>then</span><span>
PRINTUSEDIR PDO_MYSQL</span>-<span>1.0</span>.<span>2</span>/
<span>
else
</span>
<span>tar</span> -zxvf PDO_MYSQL-<span>1.0</span>.<span>2</span><span>.tgz
cd PDO_MYSQL</span>-<span>1.0</span>.<span>2</span>/
<span>fi</span><span>
${cInstallPhpPath}bin</span>/<span>phpize
.</span>/configure --with-php-config=${cInstallPhpPath}bin/php-config --with-pdo-mysql=<span>${cInstallMysqlPath}
</span><span>make</span> -s -j4 && <span>make</span> <span>install</span> && cd ../
<span>
echo
</span> <span>
"</span><span>[PDO_MYSQL]</span><span>"
</span> >> ${cInstallPhpPath}etc/<span>php.ini
</span><span>
echo
</span> <span>
"</span><span>extension=pdo_mysql.so</span><span>"
</span> >> ${cInstallPhpPath}etc/<span>php.ini
</span><span>
if
</span> [[ $? -ne <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall extensions for php is failed.\e[0m</span><span>"
</span><span>
exit
</span><span>1</span>
<span>fi</span>
<span>sleep</span> <span>5</span><span>
#PHP</span>-<span>FPM
</span>/usr/sbin/groupadd ${cWebUser} && /usr/sbin/useradd -<span>g ${cWebUser} ${cWebUser}
</span><span>
mkdir
</span> -p /
var
/log/nginx && <span>
chmod
</span> +<span>w</span> /
var
/log/nginx &&<span>
chown
</span> -R ${cWebUser}:${cWebUser} /
var
/log/<span>nginx
</span><span>
mkdir
</span> -p /data/${cWebUser} && <span>
chmod
</span> +<span>w</span> /data/${cWebUser} && <span>
chown
</span> -R ${cWebUser}:${cWebUser} /data/<span>${cWebUser}
</span><span>cp</span> -n ${cInstallPhpPath}etc/php-fpm.conf.
default
${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>
if
</span> [[ -f ${cPhpFpmConfFile} ]] ; <span>then</span>
<span>cp</span> -n ${cPhpFpmConfFile} ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>
else
</span>
<span>sed</span> <span>
"</span><span>s/;pid = /pid = /g</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/;error_log = /error_log = /g</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/pm.max_children = .*/pm.max_children = ${pm_max_children}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/pm.start_servers = .*/pm.start_servers = ${pm_start_servers}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/pm.min_spare_servers =.*/pm.min_spare_servers = ${pm_min_spare_servers}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/pm.max_spare_servers =.*/pm.max_spare_servers = ${pm_max_spare_servers}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/pm.max_requests =.*/pm.max_spare_servers = ${pm_max_requests}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/user =.*/user = ${pm_user}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>sed</span> <span>
"</span><span>s/group =.*/group = ${pm_group}/</span><span>"
</span> -i ${cInstallPhpPath}etc/php-<span>fpm.conf
</span><span>fi</span><span>
#start php</span>-<span>fpm
and
set start on boot
</span><span>cp</span> ${cInstallFile}${cPhpPackageDir}/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-<span>fpm
</span><span>
chmod
</span> +x /etc/rc.d/init.d/php-<span>fpm
</span><span>
echo
</span> service php-fpm start >> /etc/rc.d/<span>rc.local
service php</span>-<span>fpm start
bExit</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[ ${bExit} != <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1minstall Extensions for PHP failed! \e[0m</span><span>"
</span><span>
exit
</span><span>1</span>
<span>
else
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;34;1mgood luck! you install Extensions for PHP is secess! \e[0m</span><span>"
</span>
<span>fi</span><span>
}
#download tips
</span><span>
function
</span><span> DownloadTip()
{
</span><span>
if
</span> [[ ${cDownload} == <span>
"</span><span>on</span><span>"
</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;35;1mDownload is on,the package will download from website.Please check your network is worked.\e[0m</span><span>"
</span>
<span>
else
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;30;1mDownload is off,make sure your package is Existing.\e[0m</span><span>"
</span>
<span>#
if
</span> download
if
off,now can download from our svn.
<span>fi</span>
<span>
if
</span> [[ -f ${cOtherOfflinePackageFile} ]] ; <span>then</span>
<span>tar</span> -xzvf ${cOtherOfflinePackageFile} -<span>C ${cInstallFile}
</span><span>fi</span><span>
}
#this </span><span>
function
</span> can
use
insert <span>string</span> above <span>last</span><span> line
#this have two parameters,one is </span><span>string</span> another is <span>file</span><span> path.
#</span><span>string</span> ervery line must be division by <span>
'</span><span>|</span><span>'
</span>
<span>
function
</span><span> InsertStrAboveLastLine()
{
oldIFS</span>=<span>
$IFS
IFS</span>=<span>
"</span><span>|</span><span>"
</span>
<span>
for
</span> item <span>in</span> $<span>1</span>
<span>
do
</span><span>
iInsertLine</span>=`<span>awk</span> <span>
'</span><span>END{print NR}</span><span>'
</span> $<span>2</span><span>`
cNewItem</span>=`<span>
echo
</span> ${item} | <span>sed</span> <span>
'</span><span>/^$/d</span><span>'
</span><span>`
</span><span>
if
</span> [[ ${cNewItem} != <span>
""
</span> ]] ; <span>then</span><span>
#</span><span>
echo
</span> this is <span>null</span>
<span>#
else
</span><span>
#</span><span>
echo
</span><span> item:${cNewItem}
</span><span>sed</span> -e <span>
"</span><span>${iInsertLine} i\ ${cNewItem}</span><span>"
</span> -i $<span>2</span>
<span>fi</span><span>
#iInsertLine</span>=`<span>awk</span> <span>
'</span><span>END{print NR}</span><span>'
</span><span> ${cTestFile}`
#</span><span>sed</span> -e <span>
"</span><span>${iInsertLine} i\ ${item}</span><span>"
</span> -<span>i ${cTestFile}
</span><span>done</span><span>
IFS</span>=<span>
$oldIFS
}
#@desc: set iptable rules
#@param: void
#@
return
: void
</span><span>
function
</span><span> SetIptables()
{
Arr_OpenPortList</span>=<span>
"</span><span>${1}</span><span>"
</span>
<span>
echo
</span><span> now will config iptables, open port list is:
PrintArrList </span><span>
"</span><span>${Arr_OpenPortList}</span><span>"
</span>
<span>
for
</span> port <span>in</span><span> ${Arr_OpenPortList}
</span><span>
do
</span><span>
iptables </span>-I INPUT -i eth0 -p tcp --dport ${port} -<span>j ACCEPT
iptables </span>-I OUTPUT -o eth0 -p tcp --sport ${port} -<span>j ACCEPT
</span><span>done</span>
/etc/init.d/<span>iptables save
service iptables restart
}
#@desc:
print
array
list
#@param:
array
#@
return
void
</span><span>
function
</span><span> PrintArrList()
{
Arr_List</span>=<span>
"</span><span>${1}</span><span>"
</span>
<span>
for
</span> item <span>in</span><span> ${Arr_List}
</span><span>
do
</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;33;1m${item}\e[0m</span><span>"
</span>
<span>done</span><span>
}
#@desc:
print
use
</span><span>dir</span><span> str
#@param: </span><span>string</span> <span>dirname</span><span>
#@
return
: void
</span><span>
function
</span><span> PRINTUSEDIR()
{
cDirName</span>=$<span>1</span>
<span>
echo
</span> ${cDirName} is found,
use
it
and
<span>make</span><span> uninstall.
cd ${cDirName} </span>&& <span>make</span><span> uninstall
}
#@desc
print
red error
and
exit
#@param </span><span>string</span><span>
$cErrorStr
#@
return
void
</span><span>
function
</span><span> PRINTERR()
{
cErrorStr</span>=${<span>1</span><span>}
</span><span>
echo
</span> -e <span>
"</span><span>\e[0;31;1mERROR:${cErrorStr}\e[0m</span><span>"
</span><span>
exit
</span><span>1</span><span>
}
#@desc
print
yellow warning
and
not
exit
#@param </span><span>string</span><span>
$cWarningStr
#@
return
void
</span><span>
function
</span><span> PRINTWARNING()
{
cWarningStr</span>=${<span>1</span><span>}
</span><span>
echo
</span> -e <span>
"</span><span>\e[0;33;1mWARNING:${cWarningStr}\e[0m</span><span>"
</span><span>
}
#create </span><span>install</span> <span>file</span>
<span>
if
</span> [[
$cCommand
!= -base ]] ; <span>then</span><span>
`</span><span>
mkdir
</span> -<span>p ${cInstallFile}`
bInstallFile</span>=`<span>
echo
</span> $?<span>`
</span><span>
if
</span> [[
$bInstallFile
!= <span>0</span> ]] ; <span>then</span>
<span>
echo
</span> -e <span>
"</span><span>\e[0;31;1mmake ${cInstallFile} file is failed! \e[0m</span><span>"
</span><span>
exit
</span><span>
else
</span><span>
cd ${cInstallFile}
</span><span>fi</span>
<span>fi</span><span>
###################main##################
</span><span>
if
</span> [[
$cCommand
== <span>
"</span><span>-base</span><span>"
</span> ]] ; <span>then</span><span>
DownloadTip
# </span><span>
if
</span> [[ ${cDownload} == <span>
"</span><span>off</span><span>"
</span> ]] ; <span>then</span><span>
# </span><span>
echo
</span><span> Download is off,please modify it.
#
exit
# </span><span>
else
</span><span>
InstallBasePackage
#</span><span>fi</span>
<span>elif</span> [[
$cCommand
== <span>
"</span><span>-m</span><span>"
</span> || <span>
"</span><span>--mysql</span><span>"
</span> == ${cCommand} ]] ; <span>then</span><span>
DownloadTip
InstallMysql
</span><span>elif</span> [[
$cCommand
== <span>
"</span><span>-n</span><span>"
</span> || <span>
"</span><span>--nginx</span><span>"
</span> == ${cCommand} ]] ; <span>then</span><span>
DownloadTip
InstallNginx
</span><span>elif</span> [[
$cCommand
== <span>
"</span><span>-p</span><span>"
</span> || <span>
"</span><span>--php</span><span>"
</span> == ${cCommand} ]] ; <span>then</span><span>
DownloadTip
InstallPHP
</span><span>elif</span> [[
$cCommand
== <span>
"</span><span>--test</span><span>"
</span> ]] ; <span>then</span><span>
InsertStrAboveLastLine </span><span>
"</span><span>|1|2|3|4|5|</span><span>"
</span> /home/<span>test.txt
</span><span>
else
</span><span>
DownloadTip
InstallBasePackage
</span><span>sleep</span> <span>3</span><span>
InstallMysql
</span><span>sleep</span> <span>3</span><span>
InstallPHP
</span><span>sleep</span> <span>3</span><span>
InstallNginx
</span><span>sleep</span> <span>3</span><span>
SetIptables </span><span>
"</span><span>${Arr_OpenPortList}</span><span>"
</span><span>
exit
</span><span>0</span>
<span>fi</span></params>