|
@@ -1,763 +0,0 @@
|
|
|
-#! /bin/bash -e
|
|
|
-#
|
|
|
-platform=`uname -i`
|
|
|
-if [ $platform != "x86_64" ];then
|
|
|
- echo "\033[31mthis script is only for 64bit Operating System !\033[0m"
|
|
|
- exit 1
|
|
|
-fi
|
|
|
-system=`cat /etc/redhat-release |awk '{print $1}'`
|
|
|
-if [ $system != "CentOS" ];then
|
|
|
- echo "\033[31mthis script is only for CentOS 6 !\033[0m"
|
|
|
- exit 1
|
|
|
-fi
|
|
|
-mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
|
|
|
-wget -c http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo
|
|
|
-
|
|
|
-DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
|
|
-CPU_PROCESSOR=`grep 'processor' /proc/cpuinfo | sort -u | wc -l`
|
|
|
-HOSTNAME=`hostname -s`
|
|
|
-USER=`whoami`
|
|
|
-IPADDR=`ifconfig eth0|grep 'inet addr'|sed 's/^.*addr://g' |sed 's/Bcast:.*$//g'`
|
|
|
-CPU_AVERAGE=`cat /proc/loadavg | cut -c1-14`
|
|
|
-MemTotal=$[`grep MemTotal /proc/meminfo |awk '{print $2}'`/1024/1024+1]
|
|
|
-BASEPATH=$(cd `dirname $0`; pwd)
|
|
|
-DOWNURL="http://cdn.iyueni.com/download/package/"
|
|
|
-
|
|
|
-function system {
|
|
|
- echo -e "\033[41;33m|-----------System Infomation-----------\033[0m"
|
|
|
- echo -e "| DATE :$DATE"
|
|
|
- echo -e "| HOSTNAME :$HOSTNAME"
|
|
|
- echo -e "| USER :$USER"
|
|
|
- echo -e "| Root dir :$BASEPATH"
|
|
|
- echo -e "| IP :$IPADDR"
|
|
|
- echo -e "| CPU_AVERAGE :$CPU_AVERAGE"
|
|
|
- echo -e "| CPU_PROCESSOR:$CPU_PROCESSOR"
|
|
|
- echo -e "| MemTotal :${MemTotal}G"
|
|
|
-}
|
|
|
-
|
|
|
-function process {
|
|
|
- echo -e "\033[41;33m|-----------Current Process-----------\033[0m"
|
|
|
- for service in nginx php mysql
|
|
|
- do
|
|
|
- if [ `ps aux|grep $service |grep -v grep|wc -l` -gt 0 ];then
|
|
|
- echo -e "\033[32m$service.......................[RUNNING]\033[0m"
|
|
|
- else
|
|
|
- echo -e "\033[31m$service.......................[NOT RUN]\033[0m"
|
|
|
- fi
|
|
|
- done
|
|
|
-}
|
|
|
-
|
|
|
-function configSysctl {
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_max_tw_buckets' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_max_tw_buckets = 10000" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_max_tw_buckets *=.*/net.ipv4.tcp_max_tw_buckets = 10000/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.ip_local_port_range' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.ip_local_port_range *=.*/net.ipv4.ip_local_port_range = 1024 65000/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_tw_recycle' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_tw_recycle *=.*/net.ipv4.tcp_tw_recycle = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_tw_reuse' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_tw_reuse *=.*/net.ipv4.tcp_tw_reuse = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_syncookies' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_syncookies *=.*/net.ipv4.tcp_syncookies = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.core.somaxconn' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.core.somaxconn = 262144" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.core.somaxconn *=.*/net.core.somaxconn = 262144/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.core.netdev_max_backlog' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.core.netdev_max_backlog = 262144" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.core.netdev_max_backlog *=.*/net.core.netdev_max_backlog = 262144/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_max_orphans' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_max_orphans = 2621444" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_max_orphans *=.*/net.ipv4.tcp_max_orphans = 2621444/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_max_syn_backlog' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_max_syn_backlog = 262144" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_max_syn_backlog *=.*/net.ipv4.tcp_max_syn_backlog = 262144/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_timestamps' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_timestamps *=.*/net.ipv4.tcp_timestamps = 0/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_synack_retries' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_synack_retries = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_synack_retries *=.*/net.ipv4.tcp_synack_retries = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_syn_retries' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_syn_retries = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_syn_retries *=.*/net.ipv4.tcp_syn_retries = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_fin_timeout' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_fin_timeout = 1" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_fin_timeout *=.*/net.ipv4.tcp_fin_timeout = 1/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- if [ -z "`grep '^net.ipv4.tcp_keepalive_time' /etc/sysctl.conf`" ];then
|
|
|
- echo "net.ipv4.tcp_keepalive_time = 1200" >> /etc/sysctl.conf
|
|
|
- else
|
|
|
- sed -i "s/^net.ipv4.tcp_keepalive_time *=.*/net.ipv4.tcp_keepalive_time = 1200/g" /etc/sysctl.conf
|
|
|
- fi
|
|
|
- sysctl -p
|
|
|
- echo -e "\033[31msysctl.conf to complete the optimization!\033[0m"
|
|
|
-}
|
|
|
-
|
|
|
-function configUlimit {
|
|
|
- if [ -z "`grep '^ulimit -SHn' /etc/profile`" ];then
|
|
|
- echo "ulimit -SHn 65535" >> /etc/profile
|
|
|
- else
|
|
|
- sed -i "s/^ulimit -SHn.*/ulimit -SHn 65535/g" /etc/profile
|
|
|
- fi
|
|
|
- if [ -z "`grep '^ulimit -SHu' /etc/profile`" ];then
|
|
|
- echo "ulimit -SHu 256716" >> /etc/profile
|
|
|
- else
|
|
|
- sed -i "s/^ulimit -SHu.*/ulimit -SHu 256716/g" /etc/profile
|
|
|
- fi
|
|
|
- echo -e "\033[31m\"source /etc/profile\" command to take effect!\033[0m"
|
|
|
-}
|
|
|
-
|
|
|
-function installNginx {
|
|
|
- echo -e "============================Install Nginx================================="
|
|
|
- if [ ! -e "/usr/local/nginx" ];then
|
|
|
- yum -y update && yum -y install gcc-c++ zlib-devel openssl--devel pcre-devel
|
|
|
- groupadd www && /usr/sbin/useradd -g www www
|
|
|
- if [ ! -s "nginx-1.7.9.tar.gz" ];then
|
|
|
- #http://nginx.org/download/nginx-1.7.9.tar.gz
|
|
|
- wget -c ${DOWNURL}nginx-1.7.9.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf nginx-1.7.9.tar.gz
|
|
|
- cd nginx-1.7.9
|
|
|
- ./configure
|
|
|
- make && make install
|
|
|
- if [ $CPU_PROCESSOR -ge 8 ];then
|
|
|
- workerCA="00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000"
|
|
|
- workerP=8
|
|
|
- elif [ $CPU_PROCESSOR -ge 4 ] && [ $CPU_PROCESSOR -lt 8 ];then
|
|
|
- workerCA="0001 0010 0100 1000"
|
|
|
- workerP=4
|
|
|
- else
|
|
|
- workerCA="1"
|
|
|
- workerP=1
|
|
|
- fi
|
|
|
-
|
|
|
- sed -i '1,$d' /usr/local/nginx/conf/nginx.conf
|
|
|
- echo -e "user www;\nworker_processes ${workerP};\nworker_cpu_affinity ${workerCA};\nerror_log logs/error.log;\npid logs/nginx.pid;\nworker_rlimit_nofile 102400;\nevents {\n\tuse epoll;\n\tworker_connections 10240;\n}\nhttp {\n\tinclude mime.types;\n\tdefault_type application/octet-stream;\n\tclient_header_buffer_size 64k;\n\tlarge_client_header_buffers 4 64k;\n\tclient_max_body_size 300m;\n\tserver_tokens off;\n\tsendfile on;\n\ttcp_nopush on;\n\tgzip on;\n\tgzip_disable 'MSIE [1-6].';\n\tkeepalive_timeout 60;\n\topen_file_cache max=102400 inactive=20s;\n\topen_file_cache_valid 30s;\n\topen_file_cache_min_uses 1;\n\tinclude vhost/*.conf;\n}" > /usr/local/nginx/conf/nginx.conf
|
|
|
- mkdir -p /usr/local/nginx/conf/vhost
|
|
|
- /usr/local/nginx/sbin/nginx &
|
|
|
- echo -e "\033[31mNginx complete installation!\033[0m"
|
|
|
- cleanFiles nginx-1.7.9
|
|
|
- else
|
|
|
- echo -e "\033[31mNginx is already installed!\033[0m"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-function updateNginx {
|
|
|
- if [ ! -s "nginx-1.9.0.tar.gz" ];then
|
|
|
- #http://nginx.org/download/nginx-1.9.0.tar.gz
|
|
|
- wget -c ${DOWNURL}nginx-1.9.0.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf nginx-1.9.0.tar.gz
|
|
|
- cd nginx-1.9.0
|
|
|
- ./configure
|
|
|
- make
|
|
|
- mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
|
|
|
- cp -f objs/nginx /usr/local/nginx/sbin/
|
|
|
- /usr/local/nginx/sbin/nginx -s reload
|
|
|
- echo -e "\033[31mNginx complete upgrade!\033[0m"
|
|
|
- cleanFiles nginx-1.9.0
|
|
|
-}
|
|
|
-
|
|
|
-function configVhost {
|
|
|
- while :
|
|
|
- do
|
|
|
- read -p "Please input domain(example: www.test.com): " domain
|
|
|
- if [ -z "`echo $domain | grep -Pix '^([a-z0-9]+[a-z0-9_]*[a-z0-9]+(\.)?)[a-z0-9]+[a-z0-9_]*(\.org\.cn|\.net|\.com|\.com\.cn)$'`" ]; then
|
|
|
- echo -e "\033[31minput error! \033[0m"
|
|
|
- else
|
|
|
- if [ ! -f "/usr/local/nginx/conf/vhost/${domain}.conf" ]; then
|
|
|
- echo -e "\033[31mdomain=${domain}\033[0m"
|
|
|
- else
|
|
|
- echo -e "\033[31m${domain} is exist!\033[0m"
|
|
|
- fi
|
|
|
- break
|
|
|
- fi
|
|
|
- done
|
|
|
-
|
|
|
- while :
|
|
|
- do
|
|
|
- echo "Please input the directory for the domain:$domain :"
|
|
|
- read -p "(Default directory: /data/$domain): " vhostdir
|
|
|
- if [ "$vhostdir" = "" ]; then
|
|
|
- vhostdir="/data/$domain"
|
|
|
- fi
|
|
|
- if [ -z "`echo $vhostdir | grep -Pix '(\/[\w\.]+)+'`" ]; then
|
|
|
- echo -e "\033[31minput error! \033[0m"
|
|
|
- else
|
|
|
- if [ ! -e "$vhostdir" ]; then
|
|
|
- mkdir -p $vhostdir
|
|
|
- echo -e "\033[31mCreate Virtul Host directory ${vhostdir}\033[0m"
|
|
|
- else
|
|
|
- echo -e "\033[31m${vhostdir} is exist!\033[0m"
|
|
|
- fi
|
|
|
- chown -R $USER.$USER $vhostdir
|
|
|
- break
|
|
|
- fi
|
|
|
- done
|
|
|
-
|
|
|
- echo -e "server {\n\tlisten 80 default_server;\n\tlocation / {\n\t\treturn 403;\n\t}\n}\nserver\n{\n\tlisten 80;\n\tserver_name ${domain};\n\tindex index.html index.php;\n\troot ${vhostdir};\n\tlocation / {\n\t}\n\tlocation ~ .*\.(php|php5)?$\n\t{\n\t\tfastcgi_pass 127.0.0.1:9000;\n\t\tfastcgi_send_timeout 3600s;\n\t\tfastcgi_connect_timeout 3600s;\n\t\tfastcgi_read_timeout 3600s;\n\t\tfastcgi_index index.php;\n\t\tfastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;\n\t\tinclude fastcgi_params;\n\t}\n\tlocation ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$\n\t{\n\t\texpires 30d;\n\t\taccess_log off;\n\t}\n\tlocation ~ .*\.(js|css)?$\n\t{\n\t\texpires 12h;\n\t\taccess_log off;\n\t}\n}" > /usr/local/nginx/conf/vhost/$domain.conf
|
|
|
- kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
|
|
|
-}
|
|
|
-
|
|
|
-function installPHP {
|
|
|
- if [ ! -e "/usr/local/php/bin/php" ];then
|
|
|
- yum -y install gcc gcc-c++ libxml2-devel.x86_64 autoconf libjpeg-devel freetype-devel.x86_64 zlib-devel.x86_64 glibc-devel.x86_64 glib2-devel.x86_64 libpng-devel.x86_64 libcurl-devel.x86_64
|
|
|
- if [ ! -s "php-5.5.24.tar.gz" ];then
|
|
|
- #http://cn2.php.net/distributions/php-5.5.24.tar.gz
|
|
|
- wget -c ${DOWNURL}php-5.5.24.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf php-5.5.24.tar.gz
|
|
|
- cd php-5.5.24
|
|
|
- ./configure --prefix=/usr/local/php --with-curl --enable-mbstring --with-mysql=mysqlnd --with-mysqli --enable-opcache --with-pdo-mysql --with-iconv --with-gd --enable-fpm --with-jpeg-dir --with-png-dir --enable-zip --with-freetype-dir --with-gettext --enable-gd-native-ttf --without-pdo-sqlite --without-sqlite3
|
|
|
- make && make install
|
|
|
- cp -f php.ini-production /usr/local/php/lib/php.ini
|
|
|
- sed -i '{
|
|
|
- s/;date.timezone *=.*/date.timezone = PRC/g
|
|
|
- s/upload_max_filesize *=.*/upload_max_filesize = 5M/g
|
|
|
- s/memory_limit *=.*/memory_limit = 5120M/g
|
|
|
- s/post_max_size *=.*/post_max_size = 100M/g
|
|
|
- s/expose_php *=.*/expose_php = Off/g
|
|
|
- s/; extension_dir = ".\/"/extension_dir = "\/usr\/local\/php\/lib\/php\/extensions\/no-debug-non-zts-20121212\/"/g
|
|
|
- }' /usr/local/php/lib/php.ini
|
|
|
-
|
|
|
- cp -f /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
|
|
|
- /bin/mkdir -p /usr/local/php/log/
|
|
|
- sed -i '1,$d' /usr/local/php/etc/php-fpm.conf
|
|
|
- echo -e "[global]\nerror_log = /usr/local/php/log/error.log\nlog_level = warning\n[www]\nuser = www\ngroup = www\nlisten = 127.0.0.1:9000\npm = dynamic\npm.max_children = 2000\npm.start_servers = 10\npm.min_spare_servers = 5\npm.max_spare_servers = 200\npm.max_requests = 12000\npm.process_idle_timeout = 10s\nrequest_terminate_timeout = 300s\nrequest_slowlog_timeout = 10s\nslowlog = /usr/local/php/log/slow.log" > /usr/local/php/etc/php-fpm.conf
|
|
|
-
|
|
|
- cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
|
|
|
- chmod 700 /etc/init.d/php-fpm
|
|
|
- chkconfig --add php-fpm
|
|
|
- chkconfig php-fpm on
|
|
|
- php_version=`/usr/local/php/bin/php -v |awk 'NR==1 {print $2}'`
|
|
|
- echo -e "\033[31mPHP${php_version} complete installation!\033[0m"
|
|
|
- cleanFiles php-5.5.24
|
|
|
- else
|
|
|
- php_version=`/usr/local/php/bin/php -v |awk 'NR==1 {print $2}'`
|
|
|
- echo -e "\033[31mPHP${php_version} is already installed!\033[0m"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-function updatePHP {
|
|
|
- php_version=`/usr/local/php/bin/php -v |awk 'NR==1 {print $2}'`
|
|
|
- if [ $php_version == "5.5.24" ];then
|
|
|
- echo -e "\033[31mPHP${php_version} is the latest version!\033[0m"
|
|
|
- return
|
|
|
- fi
|
|
|
- if [ -e "/usr/local/php/bin/php" ];then
|
|
|
- /bin/rm -rf /usr/local/php/
|
|
|
- yum -y install gcc gcc-c++ libxml2-devel.x86_64 autoconf libjpeg-devel freetype-devel.x86_64 zlib-devel.x86_64 glibc-devel.x86_64 glib2-devel.x86_64 libpng-devel.x86_64 libcurl-devel.x86_64
|
|
|
- if [ ! -s "php-5.5.24.tar.gz" ];then
|
|
|
- #http://cn2.php.net/distributions/php-5.5.24.tar.gz
|
|
|
- wget -c ${DOWNURL}php-5.5.24.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf php-5.5.24.tar.gz
|
|
|
- cd php-5.5.24
|
|
|
- ./configure --prefix=/usr/local/php --with-curl --enable-mbstring --with-mysql=mysqlnd --with-mysqli --enable-opcache --with-pdo-mysql --with-iconv --with-gd --enable-fpm --with-jpeg-dir --with-png-dir --enable-zip --with-freetype-dir --with-gettext --enable-gd-native-ttf --without-pdo-sqlite --without-sqlite3
|
|
|
- make && make install
|
|
|
- cp -f php.ini-production /usr/local/php/lib/php.ini
|
|
|
- sed -i '{
|
|
|
- s/;date.timezone *=.*/date.timezone = PRC/g
|
|
|
- s/upload_max_filesize *=.*/upload_max_filesize = 5M/g
|
|
|
- s/memory_limit *=.*/memory_limit = 5120M/g
|
|
|
- s/post_max_size *=.*/post_max_size = 100M/g
|
|
|
- s/expose_php *=.*/expose_php = Off/g
|
|
|
- s/; extension_dir = ".\/"/extension_dir = "\/usr\/local\/php\/lib\/php\/extensions\/no-debug-non-zts-20121212\/"/g
|
|
|
- }' /usr/local/php/lib/php.ini
|
|
|
-
|
|
|
- cp -f /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
|
|
|
- /bin/mkdir -p /usr/local/php/log/
|
|
|
- sed -i '1,$d' /usr/local/php/etc/php-fpm.conf
|
|
|
- echo -e "[global]\nerror_log = /usr/local/php/log/error.log\nlog_level = warning\n[www]\nuser = www\ngroup = www\nlisten = 127.0.0.1:9000\npm = dynamic\npm.max_children = 2000\npm.start_servers = 10\npm.min_spare_servers = 5\npm.max_spare_servers = 200\npm.max_requests = 12000\npm.process_idle_timeout = 10s\nrequest_terminate_timeout = 300s\nrequest_slowlog_timeout = 10s\nslowlog = /usr/local/php/log/slow.log" > /usr/local/php/etc/php-fpm.conf
|
|
|
-
|
|
|
- cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
|
|
|
- chmod 700 /etc/init.d/php-fpm
|
|
|
- chkconfig --add php-fpm
|
|
|
- chkconfig php-fpm on
|
|
|
- php_version=`/usr/local/php/bin/php -v |awk 'NR==1 {print $2}'`
|
|
|
- echo -e "\033[31mPHP${php_version} complete installation!\033[0m"
|
|
|
- cleanFiles php-5.5.24
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPRedis {
|
|
|
- if [ ! -s "redis-2.2.7.tgz" ];then
|
|
|
- #http://pecl.php.net/get/redis-2.2.7.tgz
|
|
|
- wget -c ${DOWNURL}redis-2.2.7.tgz
|
|
|
- fi
|
|
|
- tar zxvf redis-2.2.7.tgz
|
|
|
- cd redis-2.2.7
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure -with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=redis.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=redis.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mRedis extension complete installation!\033[0m"
|
|
|
- cleanFiles redis-2.2.7
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPMongo {
|
|
|
- if [ ! -s "mongo-1.6.8.tgz" ];then
|
|
|
- #http://pecl.php.net/get/mongo-1.6.8.tgz
|
|
|
- wget -c ${DOWNURL}mongo-1.6.8.tgz
|
|
|
- fi
|
|
|
- tar zxvf mongo-1.6.8.tgz
|
|
|
- cd mongo-1.6.8
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure -with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=mongo.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=mongo.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mMongo extension complete installation!\033[0m"
|
|
|
- cleanFiles mongo-1.6.8
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPSphinx {
|
|
|
- yum -y update && yum -y install libtool autoconf automake mysql-devel libxml2-devel expat-devel
|
|
|
- if [ ! -s "coreseek-4.1-beta.tar.gz" ];then
|
|
|
- #http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz
|
|
|
- wget -c ${DOWNURL}coreseek-4.1-beta.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf coreseek-4.1-beta.tar.gz
|
|
|
- cd coreseek-4.1-beta/csft-4.1/api/libsphinxclient
|
|
|
- aclocal
|
|
|
- libtoolize --force
|
|
|
- automake --add-missing && autoconf && autoheader
|
|
|
- ./configure
|
|
|
- make && make install
|
|
|
- cleanFiles coreseek-4.1-beta
|
|
|
-
|
|
|
- wget -c ${DOWNURL}sphinx-1.3.2.tgz
|
|
|
- tar zxvf sphinx-1.3.2.tgz
|
|
|
- cd sphinx-1.3.2
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure -with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=sphinx.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=sphinx.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mSphinx extension complete installation!\033[0m"
|
|
|
- cleanFiles sphinx-1.3.2
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPXsplit {
|
|
|
- if [ ! -s "xsplit-0.0.8.zip" ];then
|
|
|
- #wget -O xsplit-0.0.8.zip -c https://github.com/chopins/php-xsplit/archive/master.zip
|
|
|
- wget -c ${DOWNURL}xsplit-0.0.8.zip
|
|
|
- fi
|
|
|
- unzip xsplit-0.0.8.zip
|
|
|
- cd php-xsplit-master
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure -with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=xsplit.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=xsplit.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mXsplit extension complete installation!\033[0m"
|
|
|
- cleanFiles php-xsplit-master
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPPhalcon {
|
|
|
- if [ ! -s "phalcon-2.0.1.zip" ];then
|
|
|
- #wget -O phalcon-2.0.1.zip -c https://github.com/phalcon/cphalcon/archive/master.zip
|
|
|
- wget -c ${DOWNURL}phalcon-2.0.1.zip
|
|
|
- fi
|
|
|
- unzip phalcon-2.0.1.zip
|
|
|
- cd cphalcon-master/build/64bits
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure -with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=phalcon.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=phalcon.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mPhalcon extension complete installation!\033[0m"
|
|
|
- cleanFiles cphalcon-master
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPGmagick {
|
|
|
- if [ ! -s "giflib-5.1.0.tar.gz" ];then
|
|
|
- #http://cznic.dl.sourceforge.net/project/giflib/giflib-5.1.0.tar.gz
|
|
|
- wget -c ${DOWNURL}giflib-5.1.0.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf giflib-5.1.0.tar.gz
|
|
|
- cd giflib-5.1.0
|
|
|
- ./configure --prefix=/usr/local/giflib
|
|
|
- make && make install
|
|
|
- cleanFiles giflib-5.1.0
|
|
|
-
|
|
|
- if [ ! -s "libwebp-0.4.0.tar.gz" ];then
|
|
|
- #http://webp.googlecode.com/files/libwebp-0.4.0.tar.gz
|
|
|
- wget -c ${DOWNURL}libwebp-0.4.0.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf libwebp-0.4.0.tar.gz
|
|
|
- cd libwebp-0.4.0
|
|
|
- ./configure --prefix=/usr/local/libwep --with-gifincludedir=/usr/local/giflib/include/ --with-giflibdir=/usr/local/giflib/lib/
|
|
|
- make && make install
|
|
|
- cleanFiles libwebp-0.4.0
|
|
|
-
|
|
|
- if [ ! -s "GraphicsMagick-1.3.21.tar.gz" ];then
|
|
|
- wget -c http://jaist.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.21/GraphicsMagick-1.3.21.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf GraphicsMagick-1.3.21.tar.gz
|
|
|
- cd GraphicsMagick-1.3.21/
|
|
|
- ./configure --prefix=/usr/local/gmagick --enable-shared CPPFLAGS='-I/usr/local/libwep/include' LDFLAGS='-L/usr/local/libwep/lib'
|
|
|
- make && make install
|
|
|
- cp -f /usr/local/gmagick/bin/gm /usr/bin/
|
|
|
- cleanFiles GraphicsMagick-1.3.21
|
|
|
-
|
|
|
- if [ ! -s "gmagick-1.1.7RC3.tgz" ];then
|
|
|
- wget -c http://pecl.php.net/get/gmagick-1.1.7RC3.tgz
|
|
|
- fi
|
|
|
- tar zxvf gmagick-1.1.7RC3.tgz
|
|
|
- cd gmagick-1.1.7RC3
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure --with-php-config=/usr/local/php/bin/php-config --with-gmagick=/usr/local/gmagick
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=gmagick.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=gmagick.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mGmagick extension complete installation!\033[0m"
|
|
|
- cleanFiles gmagick-1.1.7RC3
|
|
|
-}
|
|
|
-
|
|
|
-function installPHPSSH2 {
|
|
|
- yum -y install openssl openssl-devel
|
|
|
- if [ ! -s "libssh2-1.4.3.tar.gz" ];then
|
|
|
- wget -c http://7xorsj.dl1.z0.glb.clouddn.com/libssh2-1.4.3.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf libssh2-1.4.3.tar.gz
|
|
|
- cd libssh2-1.4.3
|
|
|
- ./configure --prefix=/usr/local/libssh2
|
|
|
- make && make install
|
|
|
- cleanFiles libssh2-1.4.3
|
|
|
-
|
|
|
- if [ ! -s "ssh2-0.12.tgz" ];then
|
|
|
- wget -c http://pecl.php.net/get/ssh2-0.12.tgz
|
|
|
- fi
|
|
|
- tar zxvf ssh2-0.12.tgz
|
|
|
- cd ssh2-0.12
|
|
|
- /usr/local/php/bin/phpize
|
|
|
- ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/usr/local/php/bin/php-config
|
|
|
- make && make install
|
|
|
- if [ -z "`grep '^extension=ssh2.so' /usr/local/php/lib/php.ini`" ];then
|
|
|
- sed -i '/;extension=php_xsl.dll/a\extension=ssh2.so' /usr/local/php/lib/php.ini
|
|
|
- fi
|
|
|
- /sbin/service php-fpm restart
|
|
|
- echo -e "\033[31mSSH2 extension complete installation!\033[0m"
|
|
|
- cleanFiles ssh2-0.12
|
|
|
-}
|
|
|
-
|
|
|
-function installMysql {
|
|
|
- yum -y update && yum -y downgrade ncurses* && yum -y install make gcc-c++ cmake bison-devel ncurses-devel
|
|
|
- if [ ! -e "/usr/local/mysql" ];then
|
|
|
- if [ ! -s "mysql-5.6.20.tar.gz" ];then
|
|
|
- wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz
|
|
|
- fi
|
|
|
- tar zxvf mysql-5.6.20.tar.gz
|
|
|
- cd mysql-5.6.20
|
|
|
-
|
|
|
- read -p "Please input the root password of mysql:" mysqlrootpwd
|
|
|
- if [ "$mysqlrootpwd" = "" ]; then
|
|
|
- mysqlrootpwd="root"
|
|
|
- fi
|
|
|
-
|
|
|
- while :
|
|
|
- do
|
|
|
- read -p "Please input the directory for the mysql data(example: /data/mysql): " mysqldatadir
|
|
|
- if [ "$mysqldatadir" = "" ]; then
|
|
|
- mysqldatadir="/data/mysql"
|
|
|
- fi
|
|
|
- if [ -z "`echo $mysqldatadir | grep -Pix '(\/[\w\.]+)+'`" ]; then
|
|
|
- echo -e "\033[31minput error! \033[0m"
|
|
|
- else
|
|
|
- if [ ! -e "$mysqldatadir" ]; then
|
|
|
- mkdir -p $mysqldatadir
|
|
|
- echo -e "\033[31mCreate directory ${mysqldatadir}\033[0m"
|
|
|
- else
|
|
|
- echo -e "\033[31m${mysqldatadir} is exist!\033[0m"
|
|
|
- fi
|
|
|
- break
|
|
|
- fi
|
|
|
- done
|
|
|
-
|
|
|
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=$mysqldatadir -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
|
|
|
- make && make install
|
|
|
- groupadd mysql && useradd -g mysql mysql
|
|
|
- chown -R mysql:mysql /usr/local/mysql
|
|
|
- cd /usr/local/mysql
|
|
|
- scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=$mysqldatadir --user=mysql
|
|
|
- rm -rf /etc/my.cnf
|
|
|
- mv /usr/local/mysql/my.cnf /etc/
|
|
|
- sed -i '1,$d' /etc/my.cnf
|
|
|
- ibps=`echo "$mem * 0.8"|bc`
|
|
|
- ibps=${ibps%.*}
|
|
|
- echo -e "[client]\nport=3306\nsocket=/tmp/mysql.sock\n[mysqld]datadir=${mysqldatadir}\nsocket=/tmp/mysql.sock\nport=3306\nuser=mysql\nsql_mode=\"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"\nlong_query_time=1\nslow_query_log=1\nslow_query_log_file=slow.log\nkey_buffer_size=1024M\nmax_allowed_packet=512M\ntable_open_cache=2048\nsort_buffer_size=64M\nmax_length_for_sort_data=8096\nread_buffer_size=64M\nread_rnd_buffer_size=64M\nmyisam_sort_buffer_size=512M\nthread_cache_size=256\nquery_cache_size=512M\nquery_cache_type=1\nquery_cache_limit=2M\ntmp_table_size=4096M\nthread_concurrency=16\nmyisam-recover=BACKUP,FORCE\nmax_connections=3000\nskip-name-resolve\nback_log=384\nmyisam_max_sort_file_size=10G\nmax_allowed_packet=256M\nwait_timeout=3600\nlog-bin=mysql-bin\nbinlog_format=mixed\nserver-id=811\nexpire_logs_days=0\ninnodb_buffer_pool_size=${ibps}G\ninnodb_flush_log_at_trx_commit=0\n[mysqld_safe]\nlog-error=mysql.log" > /etc/my.cnf
|
|
|
- cp -f support-files/mysql.server /etc/init.d/mysql
|
|
|
- chkconfig mysql on
|
|
|
- service mysql start
|
|
|
- /usr/local/mysql/bin/mysql -uroot -e "SET PASSWORD = PASSWORD(\"${mysqlrootpwd}\");GRANT ALL PRIVILEGES ON *.* TO root@\"%\" IDENTIFIED BY \"${mysqlrootpwd}\" WITH GRANT OPTION;"
|
|
|
- echo -e "\033[31mMysql complete installation!\033[0m"
|
|
|
- cleanFiles mysql-5.6.20
|
|
|
- else
|
|
|
- echo -e "\033[31mMysql is already installed!\033[0m"
|
|
|
- fi
|
|
|
-}
|
|
|
-
|
|
|
-function toContinue {
|
|
|
- echo -e "\033[41;33mPress any key to continue...\033[0m"
|
|
|
- read -n1
|
|
|
- clear
|
|
|
-}
|
|
|
-
|
|
|
-function cleanFiles {
|
|
|
- if [ $# -eq 1 ] && [ -e "${BASEPATH}/$1" ];then
|
|
|
- /bin/rm -rf ${BASEPATH}/$1 &
|
|
|
- fi
|
|
|
- cd ${BASEPATH}
|
|
|
-}
|
|
|
-
|
|
|
-function startService {
|
|
|
- /usr/local/nginx/sbin/nginx &
|
|
|
- /sbin/service php-fpm start
|
|
|
- /sbin/service mysql start
|
|
|
-}
|
|
|
-
|
|
|
-function stopService {
|
|
|
- kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
|
|
|
- /sbin/service php-fpm stop
|
|
|
- /sbin/service mysql stop
|
|
|
-}
|
|
|
-
|
|
|
-function restartService {
|
|
|
- kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
|
|
|
- /sbin/service php-fpm restart
|
|
|
- /sbin/service mysql restart
|
|
|
-}
|
|
|
-
|
|
|
-function menu {
|
|
|
-while true
|
|
|
-do
|
|
|
- system
|
|
|
- process
|
|
|
- echo -e "\033[41;33m|-----------Menu-----------\033[0m"
|
|
|
- echo -e "(1) Configure \033[1mSystem Kernel\033[0m"
|
|
|
- echo -e "(2) Configure \033[1mNGINX\033[0m Service"
|
|
|
- echo -e "(3) Configure \033[1mPHP\033[0m Service"
|
|
|
- echo -e "(4) Configure \033[1mMYSQL\033[0m Service"
|
|
|
- echo -e "(0) Quit"
|
|
|
- read -p "Please enter your choice[0-4]: " input
|
|
|
- case $input in
|
|
|
- 1)
|
|
|
- clear
|
|
|
- while true
|
|
|
- do
|
|
|
- system
|
|
|
- echo -e "\033[41;33m|-----------Configure System Kernel-----------\033[0m"
|
|
|
- echo -e "(1) Configure /etc/sysctl.conf"
|
|
|
- echo -e "(2) Configure ulimit"
|
|
|
- echo -e "(0) Back"
|
|
|
- read -p "Please enter your choice[0-2]: " input1
|
|
|
- case $input1 in
|
|
|
- 1)
|
|
|
- configSysctl
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 2)
|
|
|
- configUlimit
|
|
|
- exit 0
|
|
|
- ;;
|
|
|
- 0)
|
|
|
- clear
|
|
|
- break
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo -e "\033[31mPlease Enter Right Choice!\033[0m"
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- esac
|
|
|
- done
|
|
|
- ;;
|
|
|
- 2)
|
|
|
- clear
|
|
|
- while true
|
|
|
- do
|
|
|
- system
|
|
|
- echo -e "\033[41;33m|-----------Configure NGINX Service-----------\033[0m"
|
|
|
- echo -e "(1) Install the latest version nginx"
|
|
|
- echo -e "(2) Seamless upgrade nginx"
|
|
|
- echo -e "(3) Configure the virtual host"
|
|
|
- echo -e "(0) Back"
|
|
|
- read -p "Please enter your choice[0-3]: " input2
|
|
|
- case $input2 in
|
|
|
- 1)
|
|
|
- installNginx
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 2)
|
|
|
- updateNginx
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 3)
|
|
|
- configVhost
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 0)
|
|
|
- clear
|
|
|
- break
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo -e "\033[31mPlease Enter Right Choice!\033[0m"
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- esac
|
|
|
- done
|
|
|
- ;;
|
|
|
- 3)
|
|
|
- clear
|
|
|
- while true
|
|
|
- do
|
|
|
- system
|
|
|
- echo -e "\033[41;33m|-----------Configure PHP Service-----------\033[0m"
|
|
|
- echo -e "(1) Install the Old Stable \033[1mPHP 5.5.24\033[0m"
|
|
|
- echo -e "(2) Upgrade to Old Stable \033[1mPHP 5.5.24\033[0m"
|
|
|
- echo -e "(3) Install the latest \033[1mredis\033[0m extension of PHP"
|
|
|
- echo -e "(4) Install the latest \033[1mmongoDB\033[0m extension of PHP"
|
|
|
- echo -e "(5) Install the latest \033[1msphinx\033[0m extension of PHP"
|
|
|
- echo -e "(6) Install the latest \033[1mxsplit\033[0m extension of PHP"
|
|
|
- echo -e "(7) Install the latest \033[1mphalcon\033[0m extension of PHP"
|
|
|
- echo -e "(8) Install the latest \033[1mgmagick\033[0m extension of PHP"
|
|
|
- echo -e "(9) Install the latest \033[1mssh2\033[0m extension of PHP"
|
|
|
- echo -e "(0) Back"
|
|
|
- read -p "Please enter your choice[0-9]: " input3
|
|
|
- case $input3 in
|
|
|
- 1)
|
|
|
- installPHP
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 2)
|
|
|
- updatePHP
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 3)
|
|
|
- installPHPRedis
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 4)
|
|
|
- installPHPMongo
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 5)
|
|
|
- installPHPSphinx
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 6)
|
|
|
- installPHPXsplit
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 7)
|
|
|
- installPHPPhalcon
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 8)
|
|
|
- installPHPGmagick
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 9)
|
|
|
- installPHPSSH2
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 0)
|
|
|
- clear
|
|
|
- break
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo -e "\033[31mPlease Enter Right Choice!\033[0m"
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- esac
|
|
|
- done
|
|
|
- ;;
|
|
|
- 4)
|
|
|
- clear
|
|
|
- while true
|
|
|
- do
|
|
|
- system
|
|
|
- echo -e "\033[41;33m|-----------Configure MYSQL Service-----------\033[0m"
|
|
|
- echo -e "(1) Install the latest version MYSQL"
|
|
|
- echo -e "(0) Back"
|
|
|
- read -p "Please enter your choice[0-1]: " input4
|
|
|
- case $input4 in
|
|
|
- 1)
|
|
|
- installMysql
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- 0)
|
|
|
- clear
|
|
|
- break
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo -e "\033[31mPlease Enter Right Choice!\033[0m"
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- esac
|
|
|
- done
|
|
|
- ;;
|
|
|
- 0)
|
|
|
- clear
|
|
|
- break
|
|
|
- ;;
|
|
|
- *)
|
|
|
- echo -e "\033[31mPlease Enter Right Choice!\033[0m"
|
|
|
- toContinue
|
|
|
- ;;
|
|
|
- esac
|
|
|
-done
|
|
|
-}
|
|
|
-#start Judge script parameters
|
|
|
-if [ "$1" != "" ];then
|
|
|
- arr=($1)
|
|
|
- for i in ${arr[@]}
|
|
|
- do
|
|
|
- $i >> install.log
|
|
|
- done
|
|
|
-else
|
|
|
- clear
|
|
|
- menu
|
|
|
-fi
|