#!/usr/bin/env bash Install_Multiplephp() { Get_Dist_Name Check_DB Check_Stack . include/upgrade_php.sh if [ "${Get_Stack}" != "lnmp" ]; then echo "Multiple PHP Versions ONLY for LNMP Stack!" exit 1 fi #which PHP Version do you want to install? echo "===========================" PHPSelect="" Echo_Yellow "You have 9 options for your PHP install." echo "1: Install ${PHP_Info[0]}" echo "2: Install ${PHP_Info[1]}" echo "3: Install ${PHP_Info[2]}" echo "4: Install ${PHP_Info[3]}" echo "5: Install ${PHP_Info[4]}" echo "6: Install ${PHP_Info[5]}" echo "7: Install ${PHP_Info[6]}" echo "8: Install ${PHP_Info[7]}" echo "9: Install ${PHP_Info[8]}" echo "10: Install ${PHP_Info[9]}" echo "11: Install ${PHP_Info[10]}" read -p "Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or 11): " PHPSelect case "${PHPSelect}" in 1) echo "You will install ${PHP_Info[0]}" MPHP_Path='/usr/local/php5.2' Check_DB if [ "${DB_Name}" == "None" ];then Echo_Red "MySQL or MariaDB not found,can't install PHP 5.2!" exit 1 fi ;; 2) echo "You will install ${PHP_Info[1]}" MPHP_Path='/usr/local/php5.3' ;; 3) echo "You will Install ${PHP_Info[2]}" MPHP_Path='/usr/local/php5.4' ;; 4) echo "You will install ${PHP_Info[3]}" MPHP_Path='/usr/local/php5.5' ;; 5) echo "You will install ${PHP_Info[4]}" MPHP_Path='/usr/local/php5.6' ;; 6) echo "You will install ${PHP_Info[5]}" MPHP_Path='/usr/local/php7.0' ;; 7) echo "You will install ${PHP_Info[6]}" MPHP_Path='/usr/local/php7.1' ;; 8) echo "You will install ${PHP_Info[7]}" MPHP_Path='/usr/local/php7.2' ;; 9) echo "You will install ${PHP_Info[8]}" MPHP_Path='/usr/local/php7.3' ;; 10) echo "You will install ${PHP_Info[9]}" MPHP_Path='/usr/local/php7.4' ;; 11) echo "You will install ${PHP_Info[10]}" MPHP_Path='/usr/local/php8.0' ;; *) echo "No enter,You Must enter one option." exit 1 ;; esac Press_Install if [ -d "${MPHP_Path}" ]; then echo "${Php_Ver} already exists!" exit 1 fi Check_PHP_Option cat /etc/issue cat /etc/*-release Install_PHP_Dependent if [ "${PHPSelect}" = "1" ]; then Install_MPHP5.2 2>&1 | tee /root/install-mphp5.2.log elif [ "${PHPSelect}" = "2" ]; then Install_MPHP5.3 2>&1 | tee /root/install-mphp5.3.log elif [ "${PHPSelect}" = "3" ]; then Install_MPHP5.4 2>&1 | tee /root/install-mphp5.4.log elif [ "${PHPSelect}" = "4" ]; then Install_MPHP5.5 2>&1 | tee /root/install-mphp5.5.log elif [ "${PHPSelect}" = "5" ]; then Install_MPHP5.6 2>&1 | tee /root/install-mphp5.6.log elif [ "${PHPSelect}" = "6" ]; then Install_MPHP7.0 2>&1 | tee /root/install-mphp7.0.log elif [ "${PHPSelect}" = "7" ]; then Install_MPHP7.1 2>&1 | tee /root/install-mphp7.1.log elif [ "${PHPSelect}" = "8" ]; then Install_MPHP7.2 2>&1 | tee /root/install-mphp7.2.log elif [ "${PHPSelect}" = "9" ]; then Install_MPHP7.3 2>&1 | tee /root/install-mphp7.3.log elif [ "${PHPSelect}" = "10" ]; then Install_MPHP7.4 2>&1 | tee /root/install-mphp7.4.log elif [ "${PHPSelect}" = "11" ]; then Install_MPHP8.0 2>&1 | tee /root/install-mphp8.0.log fi } Install_MPHP5.2() { cd ${cur_dir}/src Download_Files ${Download_Mirror}/web/php/${Php_Ver}.tar.bz2 ${Php_Ver}.tar.bz2 Download_Files ${Download_Mirror}/web/phpfpm/php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-fpm-0.5.14.diff.gz lnmp stop if [[ -s /usr/local/autoconf-2.13/bin/autoconf && -s /usr/local/autoconf-2.13/bin/autoheader ]]; then Echo_Green "Autconf 2.13...ok" else Install_Autoconf fi ln -s /usr/lib/libevent-1.4.so.2 /usr/local/lib/libevent-1.4.so.2 ln -s /usr/lib/libltdl.so /usr/lib/libltdl.so.3 cd ${cur_dir}/src rm -rf php-5.2.17 echo "Start install ${Php_Ver}....." Export_PHP_Autoconf tar jxf ${Php_Ver}.tar.bz2 gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d ${Php_Ver} -p1 cd ${Php_Ver} patch -p1 < ${cur_dir}/src/patch/php-5.2.17-max-input-vars.patch patch -p0 < ${cur_dir}/src/patch/php-5.2.17-xml.patch patch -p1 < ${cur_dir}/src/patch/debian_patches_disable_SSLv2_for_openssl_1_0_0.patch ./buildconf --force ./configure --prefix=${MPHP_Path} --with-config-file-path=${MPHP_Path}/etc --with-config-file-scan-dir=${MPHP_Path}/conf.d --with-mysql=${MySQL_Dir} --with-mysqli=${MySQL_Config} --with-pdo-mysql=${MySQL_Dir} --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization ${with_curl} --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf ${with_openssl} --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --with-mime-magic PHP_Make_Install mkdir -p ${MPHP_Path}/{etc,conf.d} \cp php.ini-dist ${MPHP_Path}/etc/php.ini # php extensions sed -i 's#extension_dir = "./"#extension_dir = "${MPHP_Path}/lib/php/extensions/no-debug-non-zts-20060613/"\n#' ${MPHP_Path}/etc/php.ini sed -i 's#output_buffering = Off#output_buffering = On#' ${MPHP_Path}/etc/php.ini sed -i 's/post_max_size = 8M/post_max_size = 50M/g' ${MPHP_Path}/etc/php.ini sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' ${MPHP_Path}/etc/php.ini sed -i 's/;date.timezone =/date.timezone = PRC/g' ${MPHP_Path}/etc/php.ini sed -i 's/short_open_tag = Off/short_open_tag = On/g' ${MPHP_Path}/etc/php.ini sed -i 's/; cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' ${MPHP_Path}/etc/php.ini sed -i 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/g' ${MPHP_Path}/etc/php.ini sed -i 's/max_execution_time = 30/max_execution_time = 300/g' ${MPHP_Path}/etc/php.ini sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket/g' ${MPHP_Path}/etc/php.ini cd ${cur_dir}/src if [ "${Is_64bit}" = "y" ] ; then Download_Files ${Download_Mirror}/web/zend/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz tar zxf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz mkdir -p /usr/local/zend52/ \cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend52/ZendOptimizer5.2.so else Download_Files ${Download_Mirror}/web/zend/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz tar zxf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz mkdir -p /usr/local/zend52/ \cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend52/ZendOptimizer5.2.so fi cat >${MPHP_Path}/conf.d/002-zendoptimizer.ini<${MPHP_Path}/conf.d/002-zendguardloader.ini<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/conf.d/002-zendguardloader.ini<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/conf.d/002-zendguardloader.ini<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/conf.d/002-zendguardloader.ini<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<${MPHP_Path}/etc/php-fpm.conf<