diff --git a/include/apache.sh b/include/apache.sh index c9186ec3..3a9e9321 100644 --- a/include/apache.sh +++ b/include/apache.sh @@ -56,11 +56,11 @@ install_apache(){ install_nghttp2 cd ${cur_dir}/software/ - download_file "${apr_filename}.tar.gz" + download_file "${apr_filename}.tar.gz" "${apr_filename_url}" tar zxf ${apr_filename}.tar.gz - download_file "${apr_util_filename}.tar.gz" + download_file "${apr_util_filename}.tar.gz" "${apr_util_filename_url}" tar zxf ${apr_util_filename}.tar.gz - download_file "${apache2_4_filename}.tar.gz" + download_file "${apache2_4_filename}.tar.gz" "${apache2_4_filename_url}" tar zxf ${apache2_4_filename}.tar.gz cd ${apache2_4_filename} mv ${cur_dir}/software/${apr_filename} srclib/apr @@ -240,7 +240,7 @@ install_apache_modules(){ install_nghttp2(){ cd ${cur_dir}/software/ log "Info" "${nghttp2_filename} install start..." - download_file "${nghttp2_filename}.tar.gz" + download_file "${nghttp2_filename}.tar.gz" "${nghttp2_filename_url}" tar zxf ${nghttp2_filename}.tar.gz cd ${nghttp2_filename} @@ -262,7 +262,7 @@ install_openssl(){ if version_lt ${major_version} 1.1.1; then cd ${cur_dir}/software/ log "Info" "${openssl_filename} install start..." - download_file "${openssl_filename}.tar.gz" + download_file "${openssl_filename}.tar.gz" "${openssl_filename_url}" tar zxf ${openssl_filename}.tar.gz cd ${openssl_filename} @@ -283,7 +283,7 @@ install_openssl(){ install_mod_wsgi(){ cd ${cur_dir}/software/ log "Info" "${mod_wsgi_filename} install start..." - download_file "${mod_wsgi_filename}.tar.gz" + download_file "${mod_wsgi_filename}.tar.gz" "${mod_wsgi_filename_url}" tar zxf ${mod_wsgi_filename}.tar.gz cd ${mod_wsgi_filename} @@ -301,7 +301,7 @@ install_mod_wsgi(){ install_mod_jk(){ cd ${cur_dir}/software/ log "Info" "${mod_jk_filename} install start..." - download_file "${mod_jk_filename}.tar.gz" + download_file "${mod_jk_filename}.tar.gz" "${mod_jk_filename_url}" tar zxf ${mod_jk_filename}.tar.gz cd ${mod_jk_filename}/native @@ -319,7 +319,7 @@ install_mod_jk(){ install_mod_security(){ cd ${cur_dir}/software/ log "Info" "${mod_security_filename} install start..." - download_file "${mod_security_filename}.tar.gz" + download_file "${mod_security_filename}.tar.gz" "${mod_security_filename_url}" tar zxf ${mod_security_filename}.tar.gz cd ${mod_security_filename} diff --git a/include/mysql.sh b/include/mysql.sh index 2e4b5cc5..c20a6f4e 100644 --- a/include/mysql.sh +++ b/include/mysql.sh @@ -237,7 +237,7 @@ common_setup(){ rm -f /usr/bin/mysql /usr/bin/mysqldump /usr/bin/mysqladmin rm -f /etc/ld.so.conf.d/mysql.conf - if [ -d ${mysql_location} ]; then + if [ -d "${mysql_location}" ]; then local db_name="MySQL" local db_pass="${mysql_root_pass}" @@ -251,7 +251,7 @@ common_setup(){ echo "${mysql_location}/lib" >> /etc/ld.so.conf.d/mysql.conf echo "${mysql_location}/lib64" >> /etc/ld.so.conf.d/mysql.conf - elif [ -d ${mariadb_location} ]; then + elif [ -d "${mariadb_location}" ]; then local db_name="MariaDB" local db_pass="${mariadb_root_pass}" @@ -265,7 +265,7 @@ common_setup(){ echo "${mariadb_location}/lib" >> /etc/ld.so.conf.d/mysql.conf echo "${mariadb_location}/lib64" >> /etc/ld.so.conf.d/mysql.conf - elif [ -d ${percona_location} ]; then + elif [ -d "${percona_location}" ]; then local db_name="Percona Server" local db_pass="${percona_root_pass}" @@ -318,22 +318,20 @@ install_mysqld(){ mysql_ver=$(echo ${mysql} | sed 's/[^0-9.]//g' | cut -d. -f1-2) cd ${cur_dir}/software/ log "Info" "Downloading and Extracting MySQL files..." + + mysql_filename="${mysql}-linux-glibc2.12-${sys_bit}" if [ "${mysql_ver}" == "8.0" ]; then - url1="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - url2="${download_root_url}/${mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - mysql_file="${mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - download_from_url "${mysql_file}" "${url1}" "${url2}" - tar Jxf ${mysql_file} + mysql_filename_url="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql_filename}.tar.xz" + download_file "${mysql_filename}.tar.xz" "${mysql_filename_url}" + tar Jxf ${mysql_filename}.tar.xz else - url1="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - url2="${download_root_url}/${mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - mysql_file="${mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - download_from_url "${mysql_file}" "${url1}" "${url2}" - tar zxf ${mysql_file} + mysql_filename_url="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql_filename}.tar.gz" + download_file "${mysql_filename}.tar.gz" "${mysql_filename_url}" + tar zxf ${mysql_filename}.tar.gz fi log "Info" "Moving MySQL files..." - mv ${mysql}-linux-glibc2.12-${sys_bit}/* ${mysql_location} + mv ${mysql_filename}/* ${mysql_location} config_mysql ${mysql_ver} @@ -372,14 +370,6 @@ install_mariadb(){ common_install - if [ "$(get_ip_country)" == "CN" ]; then - local down_addr1=http://mirrors.aliyun.com/mariadb/ - local down_addr2=http://sfo1.mirrors.digitalocean.com/mariadb/ - else - local down_addr1=http://sfo1.mirrors.digitalocean.com/mariadb/ - local down_addr2=http://mirrors.aliyun.com/mariadb/ - fi - if version_lt $(get_libc_version) 2.14; then glibc_flag=linux else @@ -389,16 +379,20 @@ install_mariadb(){ is_64bit && sys_bit_a=x86_64 || sys_bit_a=x86 is_64bit && sys_bit_b=x86_64 || sys_bit_b=i686 - cd ${cur_dir}/software/ + mariadb_filename="${mysql}-${glibc_flag}-${sys_bit_b}" + if [ "$(get_ip_country)" == "CN" ]; then + mariadb_filename_url="http://mirrors.aliyun.com/mariadb/${mysql}/bintar-${glibc_flag}-${sys_bit_a}/${mariadb_filename}.tar.gz" + else + mariadb_filename_url="http://sfo1.mirrors.digitalocean.com/mariadb/${mysql}/bintar-${glibc_flag}-${sys_bit_a}/${mariadb_filename}.tar.gz" + fi - download_from_url "${mysql}-${glibc_flag}-${sys_bit_b}.tar.gz" \ - "${down_addr1}/${mysql}/bintar-${glibc_flag}-${sys_bit_a}/${mysql}-${glibc_flag}-${sys_bit_b}.tar.gz" \ - "${down_addr2}/${mysql}/bintar-${glibc_flag}-${sys_bit_a}/${mysql}-${glibc_flag}-${sys_bit_b}.tar.gz" + cd ${cur_dir}/software/ + download_file "${mariadb_filename}.tar.gz" "${mariadb_filename_url}" log "Info" "Extracting MariaDB files..." - tar zxf ${mysql}-${glibc_flag}-${sys_bit_b}.tar.gz + tar zxf ${mariadb_filename}.tar.gz log "Info" "Moving MariaDB files..." - mv ${mysql}-*-${sys_bit_b}/* ${mariadb_location} + mv ${mariadb_filename}/* ${mariadb_location} config_mariadb @@ -449,22 +443,19 @@ install_percona(){ local down_addr="https://www.percona.com/downloads/Percona-Server-${percona_ver}/${mysql}/binary/tarball" if [[ "${percona_ver}" == "5.5" || "${percona_ver}" == "5.6" ]]; then - tarball="${major_ver}-rel${rel_ver}-Linux.${sys_bit}.${ssl_ver}" + percona_filename="${major_ver}-rel${rel_ver}-Linux.${sys_bit}.${ssl_ver}" fi if [[ "${percona_ver}" == "5.7" || "${percona_ver}" == "8.0" ]]; then - tarball="${mysql}-Linux.${sys_bit}.${ssl_ver}" + percona_filename="${mysql}-Linux.${sys_bit}.${ssl_ver}" fi - - local url1="${down_addr}/${tarball}.tar.gz" - local url2="${download_root_url}/${tarball}.tar.gz" + percona_filename_url="${down_addr}/${percona_filename}.tar.gz" cd ${cur_dir}/software/ - - download_from_url "${tarball}.tar.gz" "${url1}" "${url2}" + download_file "${percona_filename}.tar.gz" "${percona_filename_url}" log "Info" "Extracting Percona Server files..." - tar zxf ${tarball}.tar.gz + tar zxf ${percona_filename}.tar.gz log "Info" "Moving Percona Server files..." - mv ${tarball}/* ${percona_location} + mv ${percona_filename}/* ${percona_location} config_percona ${percona_ver} diff --git a/include/php-modules.sh b/include/php-modules.sh index 29ec66e1..c79541dd 100644 --- a/include/php-modules.sh +++ b/include/php-modules.sh @@ -173,7 +173,7 @@ install_libiconv(){ if [ ! -e "/usr/local/bin/iconv" ]; then cd ${cur_dir}/software/ log "Info" "${libiconv_filename} install start..." - download_file "${libiconv_filename}.tar.gz" + download_file "${libiconv_filename}.tar.gz" "${libiconv_filename_url}" tar zxf ${libiconv_filename}.tar.gz patch -d ${libiconv_filename} -p0 < ${cur_dir}/conf/libiconv-glibc-2.16.patch cd ${libiconv_filename} @@ -190,7 +190,7 @@ install_re2c(){ if [ ! -e "/usr/local/bin/re2c" ]; then cd ${cur_dir}/software/ log "Info" "${re2c_filename} install start..." - download_file "${re2c_filename}.tar.gz" + download_file "${re2c_filename}.tar.gz" "${re2c_filename_url}" tar zxf ${re2c_filename}.tar.gz cd ${re2c_filename} @@ -205,7 +205,7 @@ install_re2c(){ install_pcre(){ cd ${cur_dir}/software/ log "Info" "${pcre_filename} install start..." - download_file "${pcre_filename}.tar.gz" + download_file "${pcre_filename}.tar.gz" "${pcre_filename_url}" tar zxf ${pcre_filename}.tar.gz cd ${pcre_filename} @@ -222,7 +222,7 @@ install_mhash(){ if [ ! -e "/usr/local/lib/libmhash.a" ]; then cd ${cur_dir}/software/ log "Info" "${mhash_filename} install start..." - download_file "${mhash_filename}.tar.gz" + download_file "${mhash_filename}.tar.gz" "${mhash_filename_url}" tar zxf ${mhash_filename}.tar.gz cd ${mhash_filename} @@ -238,7 +238,7 @@ install_mcrypt(){ if [ ! -e "/usr/local/bin/mcrypt" ]; then cd ${cur_dir}/software/ log "Info" "${mcrypt_filename} install start..." - download_file "${mcrypt_filename}.tar.gz" + download_file "${mcrypt_filename}.tar.gz" "${mcrypt_filename_url}" tar zxf ${mcrypt_filename}.tar.gz cd ${mcrypt_filename} @@ -255,7 +255,7 @@ install_libmcrypt(){ if [ ! -e "/usr/local/lib/libmcrypt.la" ]; then cd ${cur_dir}/software/ log "Info" "${libmcrypt_filename} install start..." - download_file "${libmcrypt_filename}.tar.gz" + download_file "${libmcrypt_filename}.tar.gz" "${libmcrypt_filename_url}" tar zxf ${libmcrypt_filename}.tar.gz cd ${libmcrypt_filename} @@ -271,7 +271,7 @@ install_libzip(){ if [ ! -e "/usr/lib/libzip.la" ]; then cd ${cur_dir}/software/ log "Info" "${libzip_filename} install start..." - download_file "${libzip_filename}.tar.gz" + download_file "${libzip_filename}.tar.gz" "${libzip_filename_url}" tar zxf ${libzip_filename}.tar.gz cd ${libzip_filename} @@ -290,14 +290,14 @@ install_phpmyadmin(){ cd ${cur_dir}/software - log "Info" "${phpmyadmin} install start..." - download_file "${phpmyadmin}.tar.gz" - tar zxf ${phpmyadmin}.tar.gz - mv ${phpmyadmin} ${web_root_dir}/phpmyadmin + log "Info" "${phpmyadmin_filename} install start..." + download_file "${phpmyadmin_filename}.tar.gz" "${phpmyadmin_filename_url}" + tar zxf ${phpmyadmin_filename}.tar.gz + mv ${phpmyadmin_filename} ${web_root_dir}/phpmyadmin cp -f ${cur_dir}/conf/config.inc.php ${web_root_dir}/phpmyadmin/config.inc.php mkdir -p ${web_root_dir}/phpmyadmin/{upload,save} chown -R apache:apache ${web_root_dir}/phpmyadmin - log "Info" "${phpmyadmin} install completed..." + log "Info" "${phpmyadmin_filename} install completed..." } @@ -308,15 +308,12 @@ install_kodexplorer(){ cd ${cur_dir}/software - log "Info" "${kodexplorer} install start..." - kod_version=$(echo ${kodexplorer} | grep -oE '[0-9]+\.[0-9]+') - kod_url1="https://github.com/kalcaddle/kodfile/archive/${kod_version}.tar.gz" - kod_url2="${download_root_url}/${kodexplorer}.tar.gz" - download_from_url "${kodexplorer}.tar.gz" "${kod_url1}" "${kod_url2}" - tar zxf ${kodexplorer}.tar.gz - mv ${kodexplorer} ${web_root_dir}/kod + log "Info" "${kodexplorer_filename} install start..." + download_file "${kodexplorer_filename}.tar.gz" "${kodexplorer_filename_url}" + tar zxf ${kodexplorer_filename}.tar.gz + mv ${kodexplorer_filename} ${web_root_dir}/kod chown -R apache:apache ${web_root_dir}/kod - log "Info" "${kodexplorer} install completed..." + log "Info" "${kodexplorer_filename} install completed..." } @@ -329,11 +326,11 @@ install_ionCube(){ log "Info" "PHP extension ionCube Loader install start..." if is_64bit; then - download_file "${ionCube64_filename}.tar.gz" + download_file "${ionCube64_filename}.tar.gz" "${ionCube64_filename_url}" tar zxf ${ionCube64_filename}.tar.gz cp -pf ioncube/ioncube_loader_lin_${php_version}_ts.so ${php_extension_dir}/ else - download_file "${ionCube32_filename}.tar.gz" + download_file "${ionCube32_filename}.tar.gz" "${ionCube32_filename_url}" tar zxf ${ionCube32_filename}.tar.gz cp -pf ioncube/ioncube_loader_lin_${php_version}_ts.so ${php_extension_dir}/ fi @@ -356,7 +353,7 @@ install_xcache(){ log "Info" "PHP extension XCache install start..." cd ${cur_dir}/software/ - download_file "${xcache_filename}.tar.gz" + download_file "${xcache_filename}.tar.gz" "${xcache_filename_url}" tar zxf ${xcache_filename}.tar.gz cd ${xcache_filename} error_detect "${php_location}/bin/phpize" @@ -424,7 +421,7 @@ install_php_libsodium(){ cd ${cur_dir}/software/ log "Info" "PHP extension libsodium install start..." - download_file "${libsodium_filename}.tar.gz" + download_file "${libsodium_filename}.tar.gz" "${libsodium_filename_url}" tar zxf ${libsodium_filename}.tar.gz cd ${libsodium_filename} error_detect "./configure --prefix=/usr" @@ -433,7 +430,7 @@ install_php_libsodium(){ cd ${cur_dir}/software/ - download_file "${php_libsodium_filename}.tar.gz" + download_file "${php_libsodium_filename}.tar.gz" "${php_libsodium_filename_url}" tar zxf ${php_libsodium_filename}.tar.gz cd ${php_libsodium_filename} error_detect "${php_location}/bin/phpize" @@ -460,7 +457,7 @@ install_php_imagesmagick(){ cd ${cur_dir}/software/ log "Info" "PHP extension imagemagick install start..." - download_file "${ImageMagick_filename}.tar.gz" + download_file "${ImageMagick_filename}.tar.gz" "${ImageMagick_filename_url}" tar zxf ${ImageMagick_filename}.tar.gz cd ${ImageMagick_filename} error_detect "./configure" @@ -469,7 +466,7 @@ install_php_imagesmagick(){ cd ${cur_dir}/software/ - download_file "${php_imagemagick_filename}.tgz" + download_file "${php_imagemagick_filename}.tgz" "${php_imagemagick_filename_url}" tar zxf ${php_imagemagick_filename}.tgz cd ${php_imagemagick_filename} error_detect "${php_location}/bin/phpize" @@ -496,7 +493,7 @@ install_php_graphicsmagick(){ cd ${cur_dir}/software/ log "Info" "PHP extension graphicsmagick install start..." - download_file "${GraphicsMagick_filename}.tar.gz" + download_file "${GraphicsMagick_filename}.tar.gz" "${GraphicsMagick_filename_url}" tar zxf ${GraphicsMagick_filename}.tar.gz cd ${GraphicsMagick_filename} error_detect "./configure --enable-shared" @@ -506,11 +503,11 @@ install_php_graphicsmagick(){ cd ${cur_dir}/software/ if [ "$php" == "${php5_6_filename}" ]; then - download_file "${php_graphicsmagick_filename}.tgz" + download_file "${php_graphicsmagick_filename}.tgz" "${php_graphicsmagick_filename_url}" tar zxf ${php_graphicsmagick_filename}.tgz cd ${php_graphicsmagick_filename} else - download_file "${php_graphicsmagick_filename2}.tgz" + download_file "${php_graphicsmagick_filename2}.tgz" "${php_graphicsmagick_filename2_url}" tar zxf ${php_graphicsmagick_filename2}.tgz cd ${php_graphicsmagick_filename2} fi @@ -539,7 +536,7 @@ install_php_memcached(){ cd ${cur_dir}/software log "Info" "libevent install start..." - download_file "${libevent_filename}.tar.gz" + download_file "${libevent_filename}.tar.gz" "${libevent_filename_url}" tar zxf ${libevent_filename}.tar.gz cd ${libevent_filename} error_detect "./configure" @@ -553,7 +550,7 @@ install_php_memcached(){ log "Info" "memcached install start..." id -u memcached >/dev/null 2>&1 [ $? -ne 0 ] && groupadd memcached && useradd -M -s /sbin/nologin -g memcached memcached - download_file "${memcached_filename}.tar.gz" + download_file "${memcached_filename}.tar.gz" "${memcached_filename_url}" tar zxf ${memcached_filename}.tar.gz cd ${memcached_filename} error_detect "./configure --prefix=${depends_prefix}/memcached" @@ -580,7 +577,7 @@ install_php_memcached(){ elif check_sys packageManager yum;then yum -y install cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib fi - download_file "${libmemcached_filename}.tar.gz" + download_file "${libmemcached_filename}.tar.gz" "${libmemcached_filename_url}" tar zxf ${libmemcached_filename}.tar.gz patch -d ${libmemcached_filename} -p0 < ${cur_dir}/conf/libmemcached-build.patch cd ${libmemcached_filename} @@ -593,11 +590,11 @@ install_php_memcached(){ log "Info" "PHP extension memcached extension install start..." if [ "$php" == "${php5_6_filename}" ]; then - download_file "${php_memcached_filename}.tgz" + download_file "${php_memcached_filename}.tgz" "${php_memcached_filename_url}" tar zxf ${php_memcached_filename}.tgz cd ${php_memcached_filename} else - download_file "${php_memcached_filename2}.tgz" + download_file "${php_memcached_filename2}.tgz" "${php_memcached_filename2_url}" tar zxf ${php_memcached_filename2}.tgz cd ${php_memcached_filename2} fi @@ -631,7 +628,7 @@ install_php_redis(){ cd ${cur_dir}/software/ log "Info" "redis-server install start..." - download_file "${redis_filename}.tar.gz" + download_file "${redis_filename}.tar.gz" "${redis_filename_url}" tar zxf ${redis_filename}.tar.gz cd ${redis_filename} ! is_64bit && sed -i '1i\CFLAGS= -march=i686' src/Makefile && sed -i 's@^OPT=.*@OPT=-O2 -march=i686@' src/.make-settings @@ -674,11 +671,11 @@ install_php_redis(){ cd ${cur_dir}/software/ log "Info" "PHP extension redis install start..." if [ "$php" == "${php5_6_filename}" ]; then - download_file "${php_redis_filename}.tgz" + download_file "${php_redis_filename}.tgz" "${php_redis_filename_url}" tar zxf ${php_redis_filename}.tgz cd ${php_redis_filename} else - download_file "${php_redis_filename2}.tgz" + download_file "${php_redis_filename2}.tgz" "${php_redis_filename2_url}" tar zxf ${php_redis_filename2}.tgz cd ${php_redis_filename2} fi @@ -708,7 +705,7 @@ install_php_mongo(){ cd ${cur_dir}/software/ log "Info" "PHP extension mongodb install start..." - download_file "${php_mongo_filename}.tgz" + download_file "${php_mongo_filename}.tgz" "${php_mongo_filename_url}" tar zxf ${php_mongo_filename}.tgz cd ${php_mongo_filename} error_detect "${php_location}/bin/phpize" @@ -735,7 +732,7 @@ install_swoole(){ cd ${cur_dir}/software/ log "Info" "PHP extension swoole install start..." - download_file "${swoole_filename}.tar.gz" + download_file "${swoole_filename}.tar.gz" "${swoole_filename_url}" tar zxf ${swoole_filename}.tar.gz cd ${swoole_filename} error_detect "${php_location}/bin/phpize" @@ -763,11 +760,11 @@ install_xdebug(){ log "Info" "PHP extension xdebug install start..." if [ "$php" == "${php5_6_filename}" ]; then - download_file "${xdebug_filename}.tgz" + download_file "${xdebug_filename}.tgz" "${xdebug_filename_url}" tar zxf ${xdebug_filename}.tgz cd ${xdebug_filename} else - download_file "${xdebug_filename2}.tgz" + download_file "${xdebug_filename2}.tgz" "${xdebug_filename2_url}" tar zxf ${xdebug_filename2}.tgz cd ${xdebug_filename2} fi @@ -795,7 +792,7 @@ install_yaf(){ cd ${cur_dir}/software/ log "Info" "PHP extension yaf install start..." - download_file "${yaf_filename}.tgz" + download_file "${yaf_filename}.tgz" "${yaf_filename_url}" tar zxf ${yaf_filename}.tgz cd ${yaf_filename} error_detect "${php_location}/bin/phpize" diff --git a/include/php.sh b/include/php.sh index f26f6e15..1fb40fc7 100644 --- a/include/php.sh +++ b/include/php.sh @@ -103,23 +103,23 @@ install_php(){ cd ${cur_dir}/software/ if [ "${php}" == "${php5_6_filename}" ]; then - download_file "${php5_6_filename}.tar.gz" + download_file "${php5_6_filename}.tar.gz" "${php5_6_filename_url}" tar zxf ${php5_6_filename}.tar.gz cd ${php5_6_filename} elif [ "${php}" == "${php7_0_filename}" ]; then - download_file "${php7_0_filename}.tar.gz" + download_file "${php7_0_filename}.tar.gz" "${php7_0_filename_url}" tar zxf ${php7_0_filename}.tar.gz cd ${php7_0_filename} elif [ "${php}" == "${php7_1_filename}" ]; then - download_file "${php7_1_filename}.tar.gz" + download_file "${php7_1_filename}.tar.gz" "${php7_1_filename_url}" tar zxf ${php7_1_filename}.tar.gz cd ${php7_1_filename} elif [ "${php}" == "${php7_2_filename}" ]; then - download_file "${php7_2_filename}.tar.gz" + download_file "${php7_2_filename}.tar.gz" "${php7_2_filename_url}" tar zxf ${php7_2_filename}.tar.gz cd ${php7_2_filename} elif [ "${php}" == "${php7_3_filename}" ]; then - download_file "${php7_3_filename}.tar.gz" + download_file "${php7_3_filename}.tar.gz" "${php7_3_filename_url}" tar zxf ${php7_3_filename}.tar.gz cd ${php7_3_filename} fi diff --git a/include/public.sh b/include/public.sh index acfa8b14..ce0bd117 100644 --- a/include/public.sh +++ b/include/public.sh @@ -12,9 +12,9 @@ # Github: https://github.com/teddysun/lamp # Define Color -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' +RED='\033[1;31m' +GREEN='\033[1;32m' +YELLOW='\033[1;33m' PLAIN='\033[0m' log(){ @@ -31,8 +31,8 @@ log(){ rootness(){ if [[ ${EUID} -ne 0 ]]; then - log "Error" "This script must be run as root" - exit 1 + log "Error" "This script must be run as root" + exit 1 fi } @@ -42,14 +42,14 @@ generate_password(){ get_ip(){ local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) - [ ! -z ${IP} ] && echo ${IP} || echo + [ -z "${IP}" ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) + [ -z "${IP}" ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) + [ -n "${IP}" ] && echo ${IP} || echo } get_ip_country(){ local country=$( wget -qO- -t1 -T2 ipinfo.io/$(get_ip)/country ) - [ ! -z ${country} ] && echo ${country} || echo + [ -n "${country}" ] && echo ${country} || echo } get_libc_version(){ @@ -148,7 +148,7 @@ display_menu(){ vname="$(get_valid_valname ${arr[$i-1]})" hint="$(get_hint $vname)" [[ "$hint" == "" ]] && hint="${arr[$i-1]}" - echo -e "${GREEN}${i}${PLAIN}) $hint" + echo -e "${GREEN}${i}${PLAIN}. $hint" done echo read -p "${prompt}" pick @@ -158,7 +158,7 @@ display_menu(){ fi if ! is_digit "$pick"; then - prompt="Input error, please input a number" + prompt="Input error, please only input a number: " continue fi @@ -203,7 +203,7 @@ display_menu_multi(){ vname="$(get_valid_valname ${arr[$i-1]})" hint="$(get_hint $vname)" [[ "$hint" == "" ]] && hint="${arr[$i-1]}" - echo -e "${GREEN}${i}${PLAIN}) $hint" + echo -e "${GREEN}${i}${PLAIN}. $hint" done echo while true @@ -224,28 +224,23 @@ display_menu_multi(){ for j in ${pick[@]} do if ! is_digit "$j"; then - echo "Input error, please input a number" + echo "Input error, please only input a number." correct=false break 1 - fi - + fi if [[ "$j" -lt 1 || "$j" -gt ${arr_len} ]]; then - echo "Input error, please input the number between 1 and ${arr_len}${default_prompt}." + echo "Input error, please input one or more number between 1 and ${arr_len}${default_prompt}." correct=false break 1 fi - if [ "${arr[$j-1]}" == "do_not_install" ]; then eval ${soft}_install="do_not_install" break 2 fi - eval ${soft}_install="\"\$${soft}_install ${arr[$j-1]}\"" correct=true - done [[ "$correct" == true ]] && break - done echo @@ -659,41 +654,26 @@ filter_location(){ fi } +# Download a file +# $1: file name +# $2: primary url download_file(){ local cur_dir=$(pwd) - local url="${download_root_url}/${1}" - if [ -s ${1} ]; then + if [ -s "${1}" ]; then log "Info" "${1} [found]" else log "Info" "${1} not found, download now..." - wget --no-check-certificate -cv -t3 -T60 ${url} + wget --no-check-certificate -cv -t3 -T60 -O ${1} ${2} if [ $? -eq 0 ]; then log "Info" "${1} download completed..." else - log "Error" "Failed to download ${1}, please download it to ${cur_dir} directory manually and try again." - exit 1 - fi - fi -} - -download_from_url(){ - local filename=${1} - local cur_dir=$(pwd) - if [ -s ${filename} ]; then - log "Info" "${filename} [found]" - else - log "Info" "${filename} not found, download now..." - wget --no-check-certificate -cv -t3 -T60 -O ${filename} ${2} - if [ $? -eq 0 ]; then - log "Info" "${filename} download completed..." - else - rm -f ${filename} - log "Info" "${filename} download failed, retrying download from backup site..." - wget --no-check-certificate -cv -t3 -T60 -O ${filename} ${3} + rm -f ${1} + log "Info" "${1} download failed, retrying download from secondary url..." + wget --no-check-certificate -cv -t3 -T60 -O ${1} "${download_root_url}${1}" if [ $? -eq 0 ]; then - log "Info" "${filename} download completed..." + log "Info" "${1} download completed..." else - log "Error" "Failed to download ${filename}, please download it to ${cur_dir} directory manually and try again." + log "Error" "Failed to download ${1}, please download it to ${cur_dir} directory manually and try again." exit 1 fi fi diff --git a/include/upgrade_apache.sh b/include/upgrade_apache.sh index 5b82b223..d889e226 100644 --- a/include/upgrade_apache.sh +++ b/include/upgrade_apache.sh @@ -63,13 +63,13 @@ upgrade_apache(){ --enable-modules=reallyall \ --enable-mods-shared=reallyall" - download_file "${apr_filename}.tar.gz" + download_file "${apr_filename}.tar.gz" "${apr_filename_url}" tar zxf ${apr_filename}.tar.gz - download_file "${apr_util_filename}.tar.gz" + download_file "${apr_util_filename}.tar.gz" "${apr_util_filename_url}" tar zxf ${apr_util_filename}.tar.gz if [ ! -s httpd-${latest_apache24}.tar.gz ]; then - latest_apache_link="http://www.us.apache.org/dist//httpd/httpd-${latest_apache24}.tar.gz" + latest_apache_link="https://www-us.apache.org/dist//httpd/httpd-${latest_apache24}.tar.gz" backup_apache_link="${download_root_url}/httpd-${latest_apache24}.tar.gz" untar ${latest_apache_link} ${backup_apache_link} else diff --git a/include/upgrade_db.sh b/include/upgrade_db.sh index 7553df01..9ee1e213 100644 --- a/include/upgrade_db.sh +++ b/include/upgrade_db.sh @@ -165,22 +165,20 @@ EOF is_64bit && sys_bit=x86_64 || sys_bit=i686 log "Info" "Downloading and Extracting MySQL files..." + + mysql_filename="mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}" if [ "${mysql_ver}" == "8.0" ]; then - url1="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - url2="${download_root_url}/mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - mysql_file="mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.xz" - download_from_url "${mysql_file}" "${url1}" "${url2}" - tar Jxf ${mysql_file} + mysql_filename_url="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql_filename}.tar.xz" + download_file "${mysql_filename}.tar.xz" "${mysql_filename_url}" + tar Jxf ${mysql_filename}.tar.xz else - url1="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - url2="${download_root_url}/mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - mysql_file="mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}.tar.gz" - download_from_url "${mysql_file}" "${url1}" "${url2}" - tar zxf ${mysql_file} + mysql_filename_url="https://cdn.mysql.com/Downloads/MySQL-${mysql_ver}/${mysql_filename}.tar.gz" + download_file "${mysql_filename}.tar.gz" "${mysql_filename_url}" + tar zxf ${mysql_filename}.tar.gz fi log "Info" "Moving MySQL files..." - mv mysql-${latest_mysql}-linux-glibc2.12-${sys_bit}/* ${mysql_location} + mv ${mysql_filename}/* ${mysql_location} chown -R mysql:mysql ${mysql_location} ${datalocation} cp -f ${mysql_location}/support-files/mysql.server /etc/init.d/mysqld @@ -204,14 +202,6 @@ EOF mkdir -p ${mariadb_location} [ ! -d ${datalocation} ] && mkdir -p ${datalocation} - if [ "$(get_ip_country)" == "CN" ]; then - down_addr1=http://mirrors.aliyun.com/mariadb/ - down_addr2=http://sfo1.mirrors.digitalocean.com/mariadb/ - else - down_addr1=http://sfo1.mirrors.digitalocean.com/mariadb/ - down_addr2=http://mirrors.aliyun.com/mariadb/ - fi - libc_version=$(getconf -a | grep GNU_LIBC_VERSION | awk '{print $NF}') if version_lt ${libc_version} 2.14; then @@ -219,18 +209,22 @@ EOF else glibc_flag=linux-glibc_214 fi - is_64bit && sys_bit_a=x86_64 || sys_bit_a=x86 is_64bit && sys_bit_b=x86_64 || sys_bit_b=i686 - download_from_url "mariadb-${latest_mariadb}-${glibc_flag}-${sys_bit_b}.tar.gz" \ - "${down_addr1}/mariadb-${latest_mariadb}/bintar-${glibc_flag}-${sys_bit_a}/mariadb-${latest_mariadb}-${glibc_flag}-${sys_bit_b}.tar.gz" \ - "${down_addr2}/mariadb-${latest_mariadb}/bintar-${glibc_flag}-${sys_bit_a}/mariadb-${latest_mariadb}-${glibc_flag}-${sys_bit_b}.tar.gz" + mariadb_filename="mariadb-${latest_mariadb}-${glibc_flag}-${sys_bit_b}" + if [ "$(get_ip_country)" == "CN" ]; then + mariadb_filename_url="http://mirrors.aliyun.com/mariadb/mariadb-${latest_mariadb}/bintar-${glibc_flag}-${sys_bit_a}/${mariadb_filename}.tar.gz" + else + mariadb_filename_url="http://sfo1.mirrors.digitalocean.com/mariadb/mariadb-${latest_mariadb}/bintar-${glibc_flag}-${sys_bit_a}/${mariadb_filename}.tar.gz" + fi + + download_file "${mariadb_filename}.tar.gz" "${mariadb_filename_url}" log "Info" "Extracting MariaDB files..." - tar zxf mariadb-${latest_mariadb}-${glibc_flag}-${sys_bit_b}.tar.gz + tar zxf ${mariadb_filename}.tar.gz log "Info" "Moving MariaDB files..." - mv mariadb-${latest_mariadb}-*-${sys_bit_b}/* ${mariadb_location} + mv ${mariadb_filename}/* ${mariadb_location} chown -R mysql:mysql ${mariadb_location} ${datalocation} cp -f ${mariadb_location}/support-files/mysql.server /etc/init.d/mysqld @@ -270,20 +264,19 @@ EOF down_addr="https://www.percona.com/downloads/Percona-Server-${percona_ver}/Percona-Server-${latest_percona}/binary/tarball" if [[ "${percona_ver}" == "5.5" || "${percona_ver}" == "5.6" ]]; then - tarball="${major_ver}-rel${rel_ver}-Linux.${sys_bit}.${ssl_ver}" + percona_filename="${major_ver}-rel${rel_ver}-Linux.${sys_bit}.${ssl_ver}" fi if [[ "${percona_ver}" == "5.7" || "${percona_ver}" == "8.0" ]]; then - tarball="Percona-Server-${latest_percona}-Linux.${sys_bit}.${ssl_ver}" + percona_filename="Percona-Server-${latest_percona}-Linux.${sys_bit}.${ssl_ver}" fi - url1="${down_addr}/${tarball}.tar.gz" - url2="${download_root_url}/${tarball}.tar.gz" + percona_filename_url="${down_addr}/${percona_filename}.tar.gz" - download_from_url "${tarball}.tar.gz" "${url1}" "${url2}" + download_file "${percona_filename}.tar.gz" "${percona_filename_url}" log "Info" "Extracting Percona Server files..." - tar zxf ${tarball}.tar.gz + tar zxf ${percona_filename}.tar.gz log "Info" "Moving Percona Server files..." - mv ${tarball}/* ${percona_location} + mv ${percona_filename}/* ${percona_location} chown -R mysql:mysql ${percona_location} ${datalocation} cp -f ${percona_location}/support-files/mysql.server /etc/init.d/mysqld @@ -291,8 +284,8 @@ EOF sed -i "s:^datadir=.*:datadir=${datalocation}:g" /etc/init.d/mysqld chmod +x /etc/init.d/mysqld - sed -ir "s@/usr/local/${tarball}@${percona_location}@g" ${percona_location}/bin/mysqld_safe - sed -ir "s@/usr/local/${tarball}@${percona_location}@g" ${percona_location}/bin/mysql_config + sed -ir "s@/usr/local/${percona_filename}@${percona_location}@g" ${percona_location}/bin/mysqld_safe + sed -ir "s@/usr/local/${percona_filename}@${percona_location}@g" ${percona_location}/bin/mysql_config if [ "${percona_ver}" == "5.5" ] || [ "${percona_ver}" == "5.6" ]; then ${percona_location}/scripts/mysql_install_db --basedir=${percona_location} --datadir=${datalocation} --user=mysql