Browse Source

Add Multiple PHP

lj2007331@gmail.com 6 years ago
parent
commit
31c2310e1e

+ 8 - 0
README.md

@@ -40,6 +40,14 @@ tar xzf oneinstack-full.tar.gz
 cd oneinstack    // If you need to modify the directory (installation, data storage, Nginx logs), modify options.conf file
 screen -S oneinstack    // If network interruption, you can execute the command `screen -r oneinstack` reconnect install window
 ./install.sh
+
+```
+
+## How to install another PHP version 
+
+```bash
+~/oneinstack/install.sh --mphp_ver 54
+
 ```
 
 ## How to add Extensions

+ 1 - 1
include/GraphicsMagick.sh

@@ -34,7 +34,7 @@ Install_pecl_gmagick() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
-    if [ "`${php_install_dir}/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1}'`" == '7' ]; then
+    if [ "`${php_install_dir}/bin/php-config --version | awk -F. '{print $1}'`" == '7' ]; then
       tar xzf gmagick-${gmagick_ver}.tgz
       pushd gmagick-${gmagick_ver} > /dev/null
     else

+ 1 - 1
include/ZendGuardLoader.sh

@@ -11,7 +11,7 @@
 Install_ZendGuardLoader() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
     [ -e "${php_install_dir}/bin/phpize" ] && [ ! -d "${phpExtensionDir}" ] && mkdir -p ${phpExtensionDir}

+ 1 - 1
include/apcu.sh

@@ -12,7 +12,7 @@ Install_APCU() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
-    if [ "`${php_install_dir}/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1}'`" == '7' ]; then
+    if [ "`${php_install_dir}/bin/php-config --version | awk -F. '{print $1}'`" == '7' ]; then
       tar xzf apcu-${apcu_ver}.tgz
       pushd apcu-${apcu_ver} > /dev/null
     else

+ 12 - 12
include/check_download.sh

@@ -127,9 +127,9 @@ checkDownload() {
       1)
         # MySQL 8.0
         if [ "${IPADDR_COUNTRY}"x == "CN"x ]; then
-          DOWN_ADDR_MYSQL=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-8.0
-          DOWN_ADDR_MYSQL_BK=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-8.0
-          DOWN_ADDR_MYSQL_BK2=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0
+          DOWN_ADDR_MYSQL=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0
+          DOWN_ADDR_MYSQL_BK=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-8.0
+          DOWN_ADDR_MYSQL_BK2=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-8.0
         else
           DOWN_ADDR_MYSQL=http://cdn.mysql.com/Downloads/MySQL-8.0
           DOWN_ADDR_MYSQL_BK=http://mysql.he.net/Downloads/MySQL-8.0
@@ -162,9 +162,9 @@ checkDownload() {
       2)
         # MySQL 5.7
         if [ "${IPADDR_COUNTRY}"x == "CN"x ]; then
-          DOWN_ADDR_MYSQL=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7
-          DOWN_ADDR_MYSQL_BK=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.7
-          DOWN_ADDR_MYSQL_BK2=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7
+          DOWN_ADDR_MYSQL=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7
+          DOWN_ADDR_MYSQL_BK=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7
+          DOWN_ADDR_MYSQL_BK2=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.7
         else
           DOWN_ADDR_MYSQL=http://cdn.mysql.com/Downloads/MySQL-5.7
           DOWN_ADDR_MYSQL_BK=http://mysql.he.net/Downloads/MySQL-5.7
@@ -197,9 +197,9 @@ checkDownload() {
       3)
         # MySQL 5.6
         if [ "${IPADDR_COUNTRY}"x == "CN"x ]; then
-          DOWN_ADDR_MYSQL=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.6
-          DOWN_ADDR_MYSQL_BK=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.6
-          DOWN_ADDR_MYSQL_BK2=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.6
+          DOWN_ADDR_MYSQL=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.6
+          DOWN_ADDR_MYSQL_BK=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.6
+          DOWN_ADDR_MYSQL_BK2=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.6
         else
           DOWN_ADDR_MYSQL=http://cdn.mysql.com/Downloads/MySQL-5.6
           DOWN_ADDR_MYSQL_BK=http://mysql.he.net/Downloads/MySQL-5.6
@@ -232,9 +232,9 @@ checkDownload() {
       4)
         # MySQL 5.5
         if [ "${IPADDR_COUNTRY}"x == "CN"x ]; then
-          DOWN_ADDR_MYSQL=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.5
-          DOWN_ADDR_MYSQL_BK=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.5
-          DOWN_ADDR_MYSQL_BK2=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.5
+          DOWN_ADDR_MYSQL=http://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.5
+          DOWN_ADDR_MYSQL_BK=http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.5
+          DOWN_ADDR_MYSQL_BK2=http://mirrors.huaweicloud.com/repository/toolkit/mysql/Downloads/MySQL-5.5
         else
           DOWN_ADDR_MYSQL=http://cdn.mysql.com/Downloads/MySQL-5.5
           DOWN_ADDR_MYSQL_BK=http://mysql.he.net/Downloads/MySQL-5.5

+ 1 - 1
include/eaccelerator.sh

@@ -11,7 +11,7 @@
 Install_eAccelerator() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
     if [[ "${PHP_main_ver}" =~ ^5.[3-4]$ ]]; then

+ 1 - 1
include/ioncube.sh

@@ -11,7 +11,7 @@
 Install_ionCube() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=`${php_install_dir}/bin/php -r 'echo PHP_VERSION;'`
+    PHP_detail_ver=`${php_install_dir}/bin/php-config --version`
     PHP_main_ver=${PHP_detail_ver%.*}
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
     if  [ "${TARGET_ARCH}" == "armv7" ]; then

+ 2 - 2
include/memcached.sh

@@ -46,7 +46,7 @@ Install_pecl_memcache() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^7.[0-3]$ ]]; then
       #git clone https://github.com/websupport-sk/pecl-memcache.git
@@ -87,7 +87,7 @@ Install_pecl_memcached() {
     popd > /dev/null
     rm -rf libmemcached-${libmemcached_ver}
 
-    if [ "$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1}')" == '7' ]; then
+    if [ "$(${php_install_dir}/bin/php-config --version | awk -F. '{print $1}')" == '7' ]; then
       tar xzf memcached-${pecl_memcached_ver}.tgz
       pushd memcached-${pecl_memcached_ver} > /dev/null
     else

+ 76 - 0
include/mphp.sh

@@ -0,0 +1,76 @@
+#!/bin/bash
+# Author:  yeho <lj2007331 AT gmail.com>
+# BLOG:  https://blog.linuxeye.cn
+#
+# Notes: OneinStack for CentOS/RedHat 6+ Debian 7+ and Ubuntu 12+
+#
+# Project home page:
+#       https://oneinstack.com
+#       https://github.com/oneinstack/oneinstack
+
+Install_MPHP() {
+  if [ -e "${php_install_dir}/sbin/php-fpm" ]; then
+    if [ -e "${php_install_dir}${mphp_ver}/bin/phpize" ]; then
+      echo "${CWARNING}PHP${mphp_ver} already installed! ${CEND}"
+    else
+      service php-fpm stop
+      [ -e "/lib/systemd/system/php-fpm.service" ] && /bin/mv /lib/systemd/system/php-fpm.service{,_bk}
+      [ -e "/etc/init.d/php-fpm" ] && /bin/mv /etc/init.d/php-fpm{,_bk}
+      php_install_dir=${php_install_dir}${mphp_ver}
+      case "${mphp_ver}" in
+        53)
+          . include/php-5.3.sh
+          Install_PHP53 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        54)
+          . include/php-5.4.sh
+          Install_PHP54 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        55)
+          . include/php-5.5.sh
+          Install_PHP55 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        56)
+          . include/php-5.6.sh
+          Install_PHP56 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        70)
+          . include/php-7.0.sh
+          Install_PHP70 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        71)
+          . include/php-7.1.sh
+          Install_PHP71 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        72)
+          . include/php-7.2.sh
+          Install_PHP72 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+        73)
+          . include/php-7.3.sh
+          Install_PHP73 2>&1 | tee -a ${oneinstack_dir}/install.log
+          ;;
+      esac
+      if [ -e "${php_install_dir}/sbin/php-fpm" ]; then
+        service php-fpm stop
+        sed -i "s@/dev/shm/php-cgi.sock@/dev/shm/php${mphp_ver}-cgi.sock@" ${php_install_dir}/etc/php-fpm.conf
+        [ -e "/lib/systemd/system/php-fpm.service" ] && /bin/mv /lib/systemd/system/php-fpm.service /lib/systemd/system/php${mphp_ver}-fpm.service
+        [ -e "/etc/init.d/php-fpm" ] && /bin/mv /etc/init.d/php-fpm /etc/init.d/php${mphp_ver}-fpm
+        [ -e "/lib/systemd/system/php-fpm.service_bk" ] && /bin/mv /lib/systemd/system/php-fpm.service{_bk,}
+        [ -e "/etc/init.d/php-fpm_bk" ] && /bin/mv /etc/init.d/php-fpm /etc/init.d/php-fpm{_bk,}
+        if [ -e /bin/systemctl ]; then
+          systemctl enable php${mphp_ver}-fpm
+          systemctl enable php-fpm
+        else
+          [ "${PM}" == 'yum' ] && { chkconfig --add php-fpm; chkconfig --add php${mphp_ver}-fpm; chkconfig php-fpm on; chkconfig php${mphp_ver}-fpm on; }
+          [ "${PM}" == 'apt-get' ] && { update-rc.d php-fpm defaults; update-rc.d php${mphp_ver}-fpm defaults; }
+        fi
+        service php-fpm start
+        service php${mphp_ver}-fpm start
+        sed -i "s@${php_install_dir}/bin:@@" /etc/profile
+      fi
+    fi
+  else
+    echo "${CWARNING}To use the multiple PHP versions, You need to use PHP-FPM! ${CEND}"
+  fi
+}

+ 1 - 1
include/pecl_fileinfo.sh

@@ -12,7 +12,7 @@ Install_pecl_fileinfo() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     src_url=http://www.php.net/distributions/php-${PHP_detail_ver}.tar.gz && Download_src
     tar xzf php-${PHP_detail_ver}.tar.gz
     pushd php-${PHP_detail_ver}/ext/fileinfo > /dev/null

+ 1 - 1
include/pecl_imap.sh

@@ -18,7 +18,7 @@ Install_pecl_imap() {
       apt-get -y install libc-client2007e-dev
     fi
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     src_url=http://www.php.net/distributions/php-${PHP_detail_ver}.tar.gz && Download_src
     tar xzf php-${PHP_detail_ver}.tar.gz
     pushd php-${PHP_detail_ver}/ext/imap > /dev/null

+ 1 - 1
include/pecl_ldap.sh

@@ -12,7 +12,7 @@ Install_pecl_ldap() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     src_url=http://www.php.net/distributions/php-${PHP_detail_ver}.tar.gz && Download_src
     tar xzf php-${PHP_detail_ver}.tar.gz
     pushd php-${PHP_detail_ver}/ext/ldap > /dev/null

+ 1 - 1
include/pecl_mongodb.sh

@@ -12,7 +12,7 @@ Install_pecl_mongodb() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    if [[ "$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1$2}')" =~ ^5[3-4]$ ]]; then
+    if [[ "$(${php_install_dir}/bin/php-config --version | awk -F. '{print $1$2}')" =~ ^5[3-4]$ ]]; then
       src_url=https://pecl.php.net/get/mongo-${pecl_mongo_ver}.tgz && Download_src
       tar xzf mongo-${pecl_mongo_ver}.tgz
       pushd mongo-${pecl_mongo_ver} > /dev/null

+ 1 - 1
include/pecl_pgsql.sh

@@ -12,7 +12,7 @@ Install_pecl_pgsql() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     tar xzf php-${PHP_detail_ver}.tar.gz
     pushd php-${PHP_detail_ver}/ext/pgsql > /dev/null
     ${php_install_dir}/bin/phpize

+ 1 - 1
include/pecl_phalcon.sh

@@ -11,7 +11,7 @@
 Install_pecl_phalcon() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[5-6]$|^7.[0-3]$ ]]; then
       phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)

+ 1 - 1
include/pecl_swoole.sh

@@ -12,7 +12,7 @@ Install_pecl_swoole() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[3-6]$ ]]; then
       src_url=https://pecl.php.net/get/swoole-${swoole_oldver}.tgz && Download_src

+ 1 - 1
include/pecl_xdebug.sh

@@ -11,7 +11,7 @@
 Install_pecl_xdebug() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[5-6]$|^7.[0-2]$ ]]; then
       if [[ "${PHP_main_ver}" =~ ^7.[0-2]$ ]]; then

+ 1 - 1
include/phpmyadmin.sh

@@ -11,7 +11,7 @@
 Install_phpMyAdmin() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=`${php_install_dir}/bin/php -r 'echo PHP_VERSION;'`
+    PHP_detail_ver=`${php_install_dir}/bin/php-config --version`
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[3-4]$ ]]; then
       tar xzf phpMyAdmin-${phpmyadmin_oldver}-all-languages.tar.gz

+ 1 - 1
include/sourceguardian.sh

@@ -11,7 +11,7 @@
 Install_SourceGuardian() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
-    PHP_detail_ver=`${php_install_dir}/bin/php -r 'echo PHP_VERSION;'`
+    PHP_detail_ver=`${php_install_dir}/bin/php-config --version`
     PHP_main_ver=${PHP_detail_ver%.*}
     phpExtensionDir=`${php_install_dir}/bin/php-config --extension-dir`
     if [[ "${PHP_main_ver}" =~ ^5.[3-6]$|^7.[0-2]$ ]] || [ "${TARGET_ARCH}" == "armv8" ]; then

+ 1 - 1
include/upgrade_php.sh

@@ -11,7 +11,7 @@
 Upgrade_PHP() {
   pushd ${oneinstack_dir}/src > /dev/null
   [ ! -e "${php_install_dir}" ] && echo "${CWARNING}PHP is not installed on your system! ${CEND}" && exit 1
-  OLD_php_ver=`${php_install_dir}/bin/php -r 'echo PHP_VERSION;'`
+  OLD_php_ver=`${php_install_dir}/bin/php-config --version`
   Latest_php_ver=`curl --connect-timeout 2 -m 3 -s http://php.net/downloads.php | awk '/Changelog/{print $2}' | grep "${OLD_php_ver%.*}"`
   Latest_php_ver=${Latest_php_ver:-5.5.38}
   echo

+ 1 - 1
include/xcache.sh

@@ -12,7 +12,7 @@ Install_XCache() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[3-6]$ ]]; then
       tar xzf xcache-${xcache_ver}.tar.gz

+ 1 - 1
include/zendopcache.sh

@@ -12,7 +12,7 @@ Install_ZendOPcache() {
   if [ -e "${php_install_dir}/bin/phpize" ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
     if [[ "${PHP_main_ver}" =~ ^5.[3-4]$ ]]; then
       tar xzf zendopcache-${zendopcache_ver}.tgz

+ 0 - 1
init.d/SS-libev.service

@@ -8,7 +8,6 @@ CapabilityBoundingSet=CAP_NET_BIND_SERVICE
 AmbientCapabilities=CAP_NET_BIND_SERVICE
 ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks/config.json
 User=nobody
-Group=nogroup
 LimitNOFILE=32768
 
 [Install]

+ 0 - 1
init.d/SS-python.service

@@ -8,7 +8,6 @@ CapabilityBoundingSet=CAP_NET_BIND_SERVICE
 AmbientCapabilities=CAP_NET_BIND_SERVICE
 ExecStart=/usr/local/python/bin/ssserver -c /etc/shadowsocks/config.json
 User=nobody
-Group=nogroup
 LimitNOFILE=32768
 
 [Install]

+ 125 - 110
install.sh

@@ -37,7 +37,7 @@ dbinstallmethod=1
 
 version() {
   echo "version: 2.0"
-  echo "updated date: 2019-01-17"
+  echo "updated date: 2019-01-25"
 }
 
 Show_Help() {
@@ -50,7 +50,8 @@ Show_Help() {
   --apache_mode_option [1-2]  Apache2.4 mode, 1(default): php-fpm, 2: mod_php
   --apache_mpm_option [1-3]   Apache2.4 MPM, 1(default): event, 2: prefork, 3: worker
   --php_option [1-8]          Install PHP version
-  --php_vn [53~73]            Install another version of php in OneinStack
+  --mphp_ver [53~73]          Install another PHP version (PATH: ${php_install_dir}\${mphp_ver})
+  --mphp_addons               Only install another PHP addons
   --phpcache_option [1-4]     Install PHP opcode cache, default: 1 opcache
   --php_extensions [ext name] Install PHP extensions, include zendguardloader,ioncube,
                               sourceguardian,imagick,gmagick,fileinfo,imap,ldap,phalcon,
@@ -72,7 +73,7 @@ Show_Help() {
   "
 }
 ARG_NUM=$#
-TEMP=`getopt -o hvV --long help,version,nginx_option:,apache_option:,apache_mode_option:,apache_mpm_option:,php_option:,php_vn:,phpcache_option:,php_extensions:,tomcat_option:,jdk_option:,db_option:,dbrootpwd:,dbinstallmethod:,pureftpd,redis,memcached,phpmyadmin,hhvm,python,ssh_port:,iptables,reboot -- "$@" 2>/dev/null`
+TEMP=`getopt -o hvV --long help,version,nginx_option:,apache_option:,apache_mode_option:,apache_mpm_option:,php_option:,mphp_ver:,mphp_addons,phpcache_option:,php_extensions:,tomcat_option:,jdk_option:,db_option:,dbrootpwd:,dbinstallmethod:,pureftpd,redis,memcached,phpmyadmin,hhvm,python,ssh_port:,iptables,reboot -- "$@" 2>/dev/null`
 [ $? != 0 ] && echo "${CWARNING}ERROR: unknown argument! ${CEND}" && Show_Help && exit 1
 eval set -- "${TEMP}"
 while :; do
@@ -109,10 +110,12 @@ while :; do
       [[ ! ${php_option} =~ ^[1-8]$ ]] && { echo "${CWARNING}php_option input error! Please only input number 1~8${CEND}"; exit 1; }
       [ -e "${php_install_dir}/bin/phpize" ] && { echo "${CWARNING}PHP already installed! ${CEND}"; unset php_option; }
       ;;
-    --php_vn)
-      php_vn=$2; mphp_flag=y; shift 2
-      [[ "${php_vn}" =~ ^5[3-6]$|^7[0-3]$ ]] && { echo "${CWARNING}php_vn input error! Please only input number 53~73${CEND}"; exit 1; }
-      [ -e "${php_install_dir}${php_vn}/bin/phpize" ] && { echo "${CWARNING}PHP${php_vn} already installed! ${CEND}"; unset php_vn mphp_flag; }
+    --mphp_ver)
+      mphp_ver=$2; mphp_flag=y; shift 2
+      [[ ! "${mphp_ver}" =~ ^5[3-6]$|^7[0-3]$ ]] && { echo "${CWARNING}mphp_ver input error! Please only input number 53~73${CEND}"; exit 1; }
+      ;;
+    --mphp_addons)
+      mphp_addons_flag=y; shift 1
       ;;
     --phpcache_option)
       phpcache_option=$2; shift 2
@@ -509,7 +512,7 @@ if [ ${ARG_NUM} == 0 ]; then
 
   # check php ver
   if [ -e "${php_install_dir}/bin/phpize" ]; then
-    PHP_detail_ver=$(${php_install_dir}/bin/php -r 'echo PHP_VERSION;')
+    PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
     PHP_main_ver=${PHP_detail_ver%.*}
   fi
 
@@ -732,6 +735,7 @@ fi
 
 # install wget gcc curl python
 if [ ! -e ~/.oneinstack ]; then
+  downloadDepsSrc=1
   [ "${PM}" == 'apt-get' ] && apt-get -y update
   [ "${PM}" == 'yum' ] && yum clean all
   ${PM} -y install wget gcc curl python
@@ -744,7 +748,6 @@ IPADDR_COUNTRY=$(./include/get_ipaddr_state.py ${PUBLIC_IPADDR})
 
 # Check download source packages
 . ./include/check_download.sh
-downloadDepsSrc=1
 checkDownload 2>&1 | tee -a ${oneinstack_dir}/install.log
 
 # del openssl for jcloud
@@ -918,122 +921,133 @@ case "${php_option}" in
     ;;
 esac
 
-# PHP opcode cache
-case "${phpcache_option}" in
-  1)
-    . include/zendopcache.sh
-    Install_ZendOPcache 2>&1 | tee -a ${oneinstack_dir}/install.log
-    ;;
-  2)
-    . include/xcache.sh
-    Install_XCache 2>&1 | tee -a ${oneinstack_dir}/install.log
-    ;;
-  3)
-    . include/apcu.sh
-    Install_APCU 2>&1 | tee -a ${oneinstack_dir}/install.log
-    ;;
-  4)
-    . include/eaccelerator.sh
-    Install_eAccelerator 2>&1 | tee -a ${oneinstack_dir}/install.log
-    ;;
-esac
+PHP_addons() {
+  # PHP opcode cache
+  case "${phpcache_option}" in
+    1)
+      . include/zendopcache.sh
+      Install_ZendOPcache 2>&1 | tee -a ${oneinstack_dir}/install.log
+      ;;
+    2)
+      . include/xcache.sh
+      Install_XCache 2>&1 | tee -a ${oneinstack_dir}/install.log
+      ;;
+    3)
+      . include/apcu.sh
+      Install_APCU 2>&1 | tee -a ${oneinstack_dir}/install.log
+      ;;
+    4)
+      . include/eaccelerator.sh
+      Install_eAccelerator 2>&1 | tee -a ${oneinstack_dir}/install.log
+      ;;
+  esac
 
-# ZendGuardLoader
-if [ "${pecl_zendguardloader}" == '1' ]; then
-  . include/ZendGuardLoader.sh
-  Install_ZendGuardLoader 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # ZendGuardLoader
+  if [ "${pecl_zendguardloader}" == '1' ]; then
+    . include/ZendGuardLoader.sh
+    Install_ZendGuardLoader 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# ioncube
-if [ "${pecl_ioncube}" == '1' ]; then
-  . include/ioncube.sh
-  Install_ionCube 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # ioncube
+  if [ "${pecl_ioncube}" == '1' ]; then
+    . include/ioncube.sh
+    Install_ionCube 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# SourceGuardian
-if [ "${pecl_sourceguardian}" == '1' ]; then
-  . include/sourceguardian.sh
-  Install_SourceGuardian 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # SourceGuardian
+  if [ "${pecl_sourceguardian}" == '1' ]; then
+    . include/sourceguardian.sh
+    Install_SourceGuardian 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# imagick
-if [ "${pecl_imagick}" == '1' ]; then
-  . include/ImageMagick.sh
-  Install_ImageMagick 2>&1 | tee -a ${oneinstack_dir}/install.log
-  Install_pecl_imagick 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # imagick
+  if [ "${pecl_imagick}" == '1' ]; then
+    . include/ImageMagick.sh
+    Install_ImageMagick 2>&1 | tee -a ${oneinstack_dir}/install.log
+    Install_pecl_imagick 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# gmagick
-if [ "${pecl_gmagick}" == '1' ]; then
-  . include/GraphicsMagick.sh
-  Install_GraphicsMagick 2>&1 | tee -a ${oneinstack_dir}/install.log
-  Install_pecl_gmagick 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # gmagick
+  if [ "${pecl_gmagick}" == '1' ]; then
+    . include/GraphicsMagick.sh
+    Install_GraphicsMagick 2>&1 | tee -a ${oneinstack_dir}/install.log
+    Install_pecl_gmagick 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# fileinfo
-if [ "${pecl_fileinfo}" == '1' ]; then
-  . include/pecl_fileinfo.sh
-  Install_pecl_fileinfo 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # fileinfo
+  if [ "${pecl_fileinfo}" == '1' ]; then
+    . include/pecl_fileinfo.sh
+    Install_pecl_fileinfo 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# imap
-if [ "${pecl_imap}" == '1' ]; then
-  . include/pecl_imap.sh
-  Install_pecl_imap 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # imap
+  if [ "${pecl_imap}" == '1' ]; then
+    . include/pecl_imap.sh
+    Install_pecl_imap 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# ldap
-if [ "${pecl_ldap}" == '1' ]; then
-  . include/pecl_ldap.sh
-  Install_pecl_ldap 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # ldap
+  if [ "${pecl_ldap}" == '1' ]; then
+    . include/pecl_ldap.sh
+    Install_pecl_ldap 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# phalcon
-if [ "${pecl_phalcon}" == '1' ]; then
-  . include/pecl_phalcon.sh
-  Install_pecl_phalcon 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # phalcon
+  if [ "${pecl_phalcon}" == '1' ]; then
+    . include/pecl_phalcon.sh
+    Install_pecl_phalcon 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# pecl_memcached
-if [ "${pecl_memcached}" == '1' ]; then
-  . include/memcached.sh
-  Install_pecl_memcached 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # pecl_memcached
+  if [ "${pecl_memcached}" == '1' ]; then
+    . include/memcached.sh
+    Install_pecl_memcached 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# pecl_memcache
-if [ "${pecl_memcache}" == '1' ]; then
-  . include/memcached.sh
-  Install_pecl_memcache 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # pecl_memcache
+  if [ "${pecl_memcache}" == '1' ]; then
+    . include/memcached.sh
+    Install_pecl_memcache 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# pecl_redis
-if [ "${pecl_redis}" == '1' ]; then
-  . include/redis.sh
-  Install_pecl_redis 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # pecl_redis
+  if [ "${pecl_redis}" == '1' ]; then
+    . include/redis.sh
+    Install_pecl_redis 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# pecl_mongodb
-if [ "${pecl_mongodb}" == '1' ]; then
-  . include/pecl_mongodb.sh
-  Install_pecl_mongodb 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # pecl_mongodb
+  if [ "${pecl_mongodb}" == '1' ]; then
+    . include/pecl_mongodb.sh
+    Install_pecl_mongodb 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# swoole
-if [ "${pecl_swoole}" == '1' ]; then
-  . include/pecl_swoole.sh
-  Install_pecl_swoole 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # swoole
+  if [ "${pecl_swoole}" == '1' ]; then
+    . include/pecl_swoole.sh
+    Install_pecl_swoole 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
 
-# xdebug
-if [ "${pecl_xdebug}" == '1' ]; then
-  . include/pecl_xdebug.sh
-  Install_pecl_xdebug 2>&1 | tee -a ${oneinstack_dir}/install.log
-fi
+  # xdebug
+  if [ "${pecl_xdebug}" == '1' ]; then
+    . include/pecl_xdebug.sh
+    Install_pecl_xdebug 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
+
+  # pecl_pgsql
+  if [ -e "${pgsql_install_dir}/bin/psql" ]; then
+    . include/pecl_pgsql.sh
+    Install_pecl_pgsql 2>&1 | tee -a ${oneinstack_dir}/install.log
+  fi
+}
+
+[ "${mphp_addons_flag}" != 'y' ] && PHP_addons
 
-# pecl_pgsql
-if [ -e "${pgsql_install_dir}/bin/psql" ]; then
-  . include/pecl_pgsql.sh
-  Install_pecl_pgsql 2>&1 | tee -a ${oneinstack_dir}/install.log
+if [ "${mphp_flag}" == 'y' ]; then
+  . include/mphp.sh
+  Install_MPHP 2>&1 | tee -a ${oneinstack_dir}/install.log
+  php_install_dir=${php_install_dir}${mphp_ver}
+  PHP_addons
 fi
 
 # JDK
@@ -1124,10 +1138,11 @@ fi
 
 # Starting DB
 [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
-[ -d "${db_install_dir}/support-files" ] && service mysqld start
+[ -d "${db_install_dir}/support-files" ] && [ -z "`ps -ef | grep mysqld_safe | grep -v grep`" ] && service mysqld start
 
 # reload php
 [ -e "${php_install_dir}/sbin/php-fpm" ] && service php-fpm reload
+[ -e "${php_install_dir}${mphp_ver}/sbin/php-fpm" ] && service php${mphp_ver}-fpm reload
 [ -e "${apache_install_dir}/bin/apachectl" ] && ${apache_install_dir}/bin/apachectl -k graceful
 
 endTime=`date +%s`

+ 0 - 1
options.conf

@@ -19,7 +19,6 @@ pgsql_install_dir=/usr/local/pgsql
 mongo_install_dir=/usr/local/mongodb
 
 php_install_dir=/usr/local/php
-php_vn=56
 
 pureftpd_install_dir=/usr/local/pureftpd
 

+ 1 - 2
ss.sh

@@ -194,9 +194,8 @@ Install_SS_python() {
   ${python_install_dir}/bin/pip install M2Crypto
   ${python_install_dir}/bin/pip install greenlet
   ${python_install_dir}/bin/pip install gevent
-  ${python_install_dir}/bin/pip install shadowsocks
+  ${python_install_dir}/bin/pip install git+https://github.com/shadowsocks/shadowsocks.git@master
   if [ -f ${python_install_dir}/bin/ssserver ]; then
-    sed -i 's@libcrypto.EVP_CIPHER_CTX_cleanup@libcrypto.EVP_CIPHER_CTX_reset@g' ${python_install_dir}/lib/python3.6/site-packages/shadowsocks/crypto/openssl.py
     if [ -e /bin/systemctl ]; then
       /bin/cp ../init.d/SS-python.service /lib/systemd/system/shadowsocks.service
       sed -i "s@/usr/local/python@${python_install_dir}@g" /lib/systemd/system/shadowsocks.service

+ 139 - 78
uninstall.sh

@@ -37,7 +37,9 @@ Show_Help() {
   --mysql                       Uninstall MySQL/MariaDB/Percona/AliSQL
   --postgresql                  Uninstall PostgreSQL
   --mongodb                     Uninstall MongoDB
-  --php                         Uninstall PHP
+  --php                         Uninstall PHP (PATH: ${php_install_dir})
+  --mphp_ver [53~73]            Uninstall another PHP version (PATH: ${php_install_dir}\${mphp_ver})
+  --allphp                      Uninstall all PHP
   --phpcache                    Uninstall PHP opcode cache
   --php_extensions [ext name]   Uninstall PHP extensions, include zendguardloader,ioncube,
                                 sourceguardian,imagick,gmagick,fileinfo,imap,ldap,phalcon,
@@ -52,7 +54,7 @@ Show_Help() {
 }
 
 ARG_NUM=$#
-TEMP=`getopt -o hvVq --long help,version,quiet,all,web,mysql,postgresql,mongodb,php,phpcache,php_extensions:,hhvm,pureftpd,redis,memcached,phpmyadmin,python -- "$@" 2>/dev/null`
+TEMP=`getopt -o hvVq --long help,version,quiet,all,web,mysql,postgresql,mongodb,php,mphp_ver:,allphp,phpcache,php_extensions:,hhvm,pureftpd,redis,memcached,phpmyadmin,python -- "$@" 2>/dev/null`
 [ $? != 0 ] && echo "${CWARNING}ERROR: unknown argument! ${CEND}" && Show_Help && exit 1
 eval set -- "${TEMP}"
 while :; do
@@ -72,7 +74,7 @@ while :; do
       mysql_flag=y
       postgresql_flag=y
       mongodb_flag=y
-      php_flag=y
+      allphp_flag=y
       hhvm_flag=y
       pureftpd_flag=y
       redis_flag=y
@@ -96,6 +98,13 @@ while :; do
     --php)
       php_flag=y; shift 1
       ;;
+    --mphp_ver)
+      mphp_ver=$2; mphp_flag=y; shift 2
+      [[ ! "${mphp_ver}" =~ ^5[3-6]$|^7[0-3]$ ]] && { echo "${CWARNING}mphp_ver input error! Please only input number 53~73${CEND}"; exit 1; }
+      ;;
+    --allphp)
+      allphp_flag=y; shift 1
+      ;;
     --phpcache)
       phpcache_flag=y; shift 1
       ;;
@@ -163,21 +172,21 @@ Print_Warn() {
 }
 
 Print_web() {
-  [ -d "${nginx_install_dir}" ] && echo "${nginx_install_dir}"
-  [ -d "${tengine_install_dir}" ] && echo "${tengine_install_dir}"
-  [ -d "${openresty_install_dir}" ] && echo "${openresty_install_dir}"
-  [ -e "/etc/init.d/nginx" ] && echo '/etc/init.d/nginx'
-  [ -e "/lib/systemd/system/nginx.service" ] && echo '/lib/systemd/system/nginx.service'
-  [ -e "/etc/logrotate.d/nginx" ] && echo '/etc/logrotate.d/nginx'
-
-  [ -d "${apache_install_dir}" ] && echo "${apache_install_dir}"
-  [ -e "/lib/systemd/system/httpd.service" ] && echo '/lib/systemd/system/httpd.service'
-  [ -e "/etc/init.d/httpd" ] && echo "/etc/init.d/httpd"
-  [ -e "/etc/logrotate.d/apache" ] && echo "/etc/logrotate.d/apache"
-
-  [ -d "${tomcat_install_dir}" ] && echo "${tomcat_install_dir}"
-  [ -e "/etc/init.d/tomcat" ] && echo "/etc/init.d/tomcat"
-  [ -e "/etc/logrotate.d/tomcat" ] && echo "/etc/logrotate.d/tomcat"
+  [ -d "${nginx_install_dir}" ] && echo ${nginx_install_dir}
+  [ -d "${tengine_install_dir}" ] && echo ${tengine_install_dir}
+  [ -d "${openresty_install_dir}" ] && echo ${openresty_install_dir}
+  [ -e "/etc/init.d/nginx" ] && echo /etc/init.d/nginx
+  [ -e "/lib/systemd/system/nginx.service" ] && echo /lib/systemd/system/nginx.service
+  [ -e "/etc/logrotate.d/nginx" ] && echo /etc/logrotate.d/nginx
+
+  [ -d "${apache_install_dir}" ] && echo ${apache_install_dir}
+  [ -e "/lib/systemd/system/httpd.service" ] && echo /lib/systemd/system/httpd.service
+  [ -e "/etc/init.d/httpd" ] && echo /etc/init.d/httpd
+  [ -e "/etc/logrotate.d/apache" ] && echo /etc/logrotate.d/apache
+
+  [ -d "${tomcat_install_dir}" ] && echo ${tomcat_install_dir}
+  [ -e "/etc/init.d/tomcat" ] && echo /etc/init.d/tomcat
+  [ -e "/etc/logrotate.d/tomcat" ] && echo /etc/logrotate.d/tomcat
   [ -d "/usr/java" ] && echo '/usr/java'
   [ -d "/usr/local/apr" ] && echo '/usr/local/apr'
 }
@@ -197,22 +206,22 @@ Uninstall_Web() {
 }
 
 Print_MySQL() {
-  [ -e "${db_install_dir}" ] && echo "${db_install_dir}"
-  [ -e "/etc/init.d/mysqld" ] && echo "/etc/init.d/mysqld"
-  [ -e "/etc/my.cnf" ] && echo "/etc/my.cnf"
+  [ -e "${db_install_dir}" ] && echo ${db_install_dir}
+  [ -e "/etc/init.d/mysqld" ] && echo /etc/init.d/mysqld
+  [ -e "/etc/my.cnf" ] && echo /etc/my.cnf
 }
 
 Print_PostgreSQL() {
-  [ -e "${pgsql_install_dir}" ] && echo "${pgsql_install_dir}"
-  [ -e "/etc/init.d/postgresql" ] && echo "/etc/init.d/postgresql"
-  [ -e "/lib/systemd/system/postgresql.service" ] && echo "/lib/systemd/system/postgresql.service"
+  [ -e "${pgsql_install_dir}" ] && echo ${pgsql_install_dir}
+  [ -e "/etc/init.d/postgresql" ] && echo /etc/init.d/postgresql
+  [ -e "/lib/systemd/system/postgresql.service" ] && echo /lib/systemd/system/postgresql.service
 }
 
 Print_MongoDB() {
-  [ -e "${mongo_install_dir}" ] && echo "${mongo_install_dir}"
-  [ -e "/etc/init.d/mongod" ] && echo "/etc/init.d/mongod"
-  [ -e "/lib/systemd/system/mongod.service" ] && echo "/lib/systemd/system/mongod.service"
-  [ -e "/etc/mongod.conf" ] && echo "/etc/mongod.conf"
+  [ -e "${mongo_install_dir}" ] && echo ${mongo_install_dir}
+  [ -e "/etc/init.d/mongod" ] && echo /etc/init.d/mongod
+  [ -e "/lib/systemd/system/mongod.service" ] && echo /lib/systemd/system/mongod.service
+  [ -e "/etc/mongod.conf" ] && echo /etc/mongod.conf
 }
 
 Uninstall_MySQL() {
@@ -260,12 +269,29 @@ Uninstall_MongoDB() {
 }
 
 Print_PHP() {
-  [ -e "${php_install_dir}" ] && echo "${php_install_dir}"
-  [ -e "/etc/init.d/php-fpm" ] && echo "/etc/init.d/php-fpm"
-  [ -e "/lib/systemd/system/php-fpm.service" ] && echo '/lib/systemd/system/php-fpm.service'
-  [ -e "${imagick_install_dir}" ] && echo "${imagick_install_dir}"
-  [ -e "${gmagick_install_dir}" ] && echo "${gmagick_install_dir}"
-  [ -e "${curl_install_dir}" ] && echo "${curl_install_dir}"
+  [ -e "${php_install_dir}" ] && echo ${php_install_dir}
+  [ -e "/etc/init.d/php-fpm" ] && echo /etc/init.d/php-fpm
+  [ -e "/lib/systemd/system/php-fpm.service" ] && echo /lib/systemd/system/php-fpm.service
+}
+
+Print_MPHP() {
+  [ -e "${php_install_dir}${mphp_ver}" ] && echo ${php_install_dir}${mphp_ver}
+  [ -e "/etc/init.d/php${mphp_ver}-fpm" ] && echo /etc/init.d/php${mphp_ver}-fpm
+  [ -e "/lib/systemd/system/php${mphp_ver}-fpm.service" ] && echo /lib/systemd/system/php${mphp_ver}-fpm.service
+}
+
+Print_ALLPHP() {
+  [ -e "${php_install_dir}" ] && echo ${php_install_dir}
+  [ -e "/etc/init.d/php-fpm" ] && echo /etc/init.d/php-fpm
+  [ -e "/lib/systemd/system/php-fpm.service" ] && echo /lib/systemd/system/php-fpm.service
+  for php_ver in 53 54 55 56 70 71 72 73; do
+    [ -e "${php_install_dir}${php_ver}" ] && echo ${php_install_dir}${php_ver}
+    [ -e "/etc/init.d/php${php_ver}-fpm" ] && echo /etc/init.d/php${php_ver}-fpm
+    [ -e "/lib/systemd/system/php${php_ver}-fpm.service" ] && echo /lib/systemd/system/php${php_ver}-fpm.service
+  done
+  [ -e "${imagick_install_dir}" ] && echo ${imagick_install_dir}
+  [ -e "${gmagick_install_dir}" ] && echo ${gmagick_install_dir}
+  [ -e "${curl_install_dir}" ] && echo ${curl_install_dir}
 }
 
 Uninstall_PHP() {
@@ -273,10 +299,29 @@ Uninstall_PHP() {
   [ -e "/lib/systemd/system/php-fpm.service" ] && { systemctl stop php-fpm > /dev/null 2>&1; systemctl disable php-fpm > /dev/null 2>&1; rm -f /lib/systemd/system/php-fpm.service; }
   [ -e "${apache_install_dir}/conf/httpd.conf" ] && [ -n "`grep libphp ${apache_install_dir}/conf/httpd.conf`" ] && sed -i '/libphp/d' ${apache_install_dir}/conf/httpd.conf
   [ -e "${php_install_dir}" ] && { rm -rf ${php_install_dir}; echo "${CMSG}PHP uninstall completed! ${CEND}"; }
+  sed -i "s@${php_install_dir}/bin:@@" /etc/profile
+}
+
+Uninstall_MPHP() {
+  [ -e "/etc/init.d/php${mphp_ver}-fpm" ] && { service php${mphp_ver}-fpm stop > /dev/null 2>&1; rm -f /etc/init.d/php${mphp_ver}-fpm; }
+  [ -e "/lib/systemd/system/php${mphp_ver}-fpm.service" ] && { systemctl stop php${mphp_ver}-fpm > /dev/null 2>&1; systemctl disable php${mphp_ver}-fpm > /dev/null 2>&1; rm -f /lib/systemd/system/php${mphp_ver}-fpm.service; }
+  [ -e "${php_install_dir}${mphp_ver}" ] && { rm -rf ${php_install_dir}${mphp_ver}; echo "${CMSG}PHP${mphp_ver} uninstall completed! ${CEND}"; }
+}
+
+Uninstall_ALLPHP() {
+  [ -e "/etc/init.d/php-fpm" ] && { service php-fpm stop > /dev/null 2>&1; rm -f /etc/init.d/php-fpm; }
+  [ -e "/lib/systemd/system/php-fpm.service" ] && { systemctl stop php-fpm > /dev/null 2>&1; systemctl disable php-fpm > /dev/null 2>&1; rm -f /lib/systemd/system/php-fpm.service; }
+  [ -e "${apache_install_dir}/conf/httpd.conf" ] && [ -n "`grep libphp ${apache_install_dir}/conf/httpd.conf`" ] && sed -i '/libphp/d' ${apache_install_dir}/conf/httpd.conf
+  [ -e "${php_install_dir}" ] && { rm -rf ${php_install_dir}; echo "${CMSG}PHP uninstall completed! ${CEND}"; }
+  sed -i "s@${php_install_dir}/bin:@@" /etc/profile
+  for php_ver in 53 54 55 56 70 71 72 73; do
+    [ -e "/etc/init.d/php${php_ver}-fpm" ] && { service php${php_ver}-fpm stop > /dev/null 2>&1; rm -f /etc/init.d/php${php_ver}-fpm; }
+    [ -e "/lib/systemd/system/php${php_ver}-fpm.service" ] && { systemctl stop php${php_ver}-fpm > /dev/null 2>&1; systemctl disable php${php_ver}-fpm > /dev/null 2>&1; rm -f /lib/systemd/system/php${php_ver}-fpm.service; }
+    [ -e "${php_install_dir}${php_ver}" ] && { rm -rf ${php_install_dir}${php_ver}; echo "${CMSG}PHP${php_ver} uninstall completed! ${CEND}"; }
+  done
   [ -e "${imagick_install_dir}" ] && rm -rf ${imagick_install_dir}
   [ -e "${gmagick_install_dir}" ] && rm -rf ${gmagick_install_dir}
-  [ -e "${curl_install_dir}" ] && rm -rf "${curl_install_dir}"
-  sed -i "s@${php_install_dir}/bin:@@" /etc/profile
+  [ -e "${curl_install_dir}" ] && rm -rf ${curl_install_dir}
 }
 
 Uninstall_PHPcache() {
@@ -290,6 +335,7 @@ Uninstall_PHPcache() {
   Uninstall_eAccelerator
   # reload php
   [ -e "${php_install_dir}/sbin/php-fpm" ] && service php-fpm reload
+  [ -e "${php_install_dir}${mphp_ver}/sbin/php-fpm" ] && service php${mphp_ver}-fpm reload
   [ -e "${apache_install_dir}/bin/apachectl" ] && ${apache_install_dir}/bin/apachectl -k graceful
 }
 
@@ -338,7 +384,7 @@ Uninstall_PHPext() {
     Uninstall_pecl_imap
   fi
 
-  # ldap 
+  # ldap
   if [ "${pecl_ldap}" == '1' ]; then
     . include/pecl_ldap.sh
     Uninstall_pecl_ldap
@@ -388,6 +434,7 @@ Uninstall_PHPext() {
 
   # reload php
   [ -e "${php_install_dir}/sbin/php-fpm" ] && service php-fpm reload
+  [ -e "${php_install_dir}${mphp_ver}/sbin/php-fpm" ] && service php${mphp_ver}-fpm reload
   [ -e "${apache_install_dir}/bin/apachectl" ] && ${apache_install_dir}/bin/apachectl -k graceful
 }
 
@@ -402,18 +449,19 @@ Menu_PHPext() {
     echo -e "\t${CMSG} 5${CEND}. Uninstall gmagick"
     echo -e "\t${CMSG} 6${CEND}. Uninstall fileinfo"
     echo -e "\t${CMSG} 7${CEND}. Uninstall imap"
-    echo -e "\t${CMSG} 8${CEND}. Uninstall phalcon(PHP>=5.5)"
-    echo -e "\t${CMSG} 9${CEND}. Uninstall redis"
-    echo -e "\t${CMSG}10${CEND}. Uninstall memcached"
-    echo -e "\t${CMSG}11${CEND}. Uninstall memcache(PHP<=7.2)"
-    echo -e "\t${CMSG}12${CEND}. Uninstall mongodb"
-    echo -e "\t${CMSG}13${CEND}. Uninstall swoole"
-    echo -e "\t${CMSG}14${CEND}. Uninstall xdebug(PHP>=5.5)"
+    echo -e "\t${CMSG} 8${CEND}. Uninstall ldap"
+    echo -e "\t${CMSG} 9${CEND}. Uninstall phalcon(PHP>=5.5)"
+    echo -e "\t${CMSG}10${CEND}. Uninstall redis"
+    echo -e "\t${CMSG}11${CEND}. Uninstall memcached"
+    echo -e "\t${CMSG}12${CEND}. Uninstall memcache"
+    echo -e "\t${CMSG}13${CEND}. Uninstall mongodb"
+    echo -e "\t${CMSG}14${CEND}. Uninstall swoole"
+    echo -e "\t${CMSG}15${CEND}. Uninstall xdebug(PHP>=5.5)"
     read -e -p "Please input a number:(Default 0 press Enter) " phpext_option
     phpext_option=${phpext_option:-0}
     [ "${phpext_option}" == '0' ] && break
     array_phpext=(${phpext_option})
-    array_all=(1 2 3 4 5 6 7 8 9 10 11 12 13 14)
+    array_all=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
     for v in ${array_phpext[@]}
     do
       [ -z "`echo ${array_all[@]} | grep -w ${v}`" ] && phpext_flag=1
@@ -430,25 +478,26 @@ Menu_PHPext() {
       [ -n "`echo ${array_phpext[@]} | grep -w 5`" ] && pecl_gmagick=1
       [ -n "`echo ${array_phpext[@]} | grep -w 6`" ] && pecl_fileinfo=1
       [ -n "`echo ${array_phpext[@]} | grep -w 7`" ] && pecl_imap=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 8`" ] && pecl_phalcon=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 9`" ] && pecl_redis=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 10`" ] && pecl_memcached=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 11`" ] && pecl_memcache=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 12`" ] && pecl_mongodb=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 13`" ] && pecl_swoole=1
-      [ -n "`echo ${array_phpext[@]} | grep -w 14`" ] && pecl_xdebug=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 8`" ] && pecl_ldap=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 9`" ] && pecl_phalcon=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 10`" ] && pecl_redis=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 11`" ] && pecl_memcached=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 12`" ] && pecl_memcache=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 13`" ] && pecl_mongodb=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 14`" ] && pecl_swoole=1
+      [ -n "`echo ${array_phpext[@]} | grep -w 15`" ] && pecl_xdebug=1
       break
     fi
   done
 }
 
 Print_HHVM() {
-  [ -e "/usr/bin/hhvm" ] && echo "/usr/bin/hhvm"
-  [ -e "/etc/hhvm" ] && echo "/etc/hhvm"
-  [ -e "/var/log/hhvm" ] && echo "/var/log/hhvm"
-  [ -e "/lib/systemd/system/hhvm.service" ] && echo "/lib/systemd/system/hhvm.service"
-  [ -e "/etc/supervisord.conf" ] && echo "/etc/supervisord.conf"
-  [ -e "/etc/init.d/supervisord" ] && echo "/etc/init.d/supervisord"
+  [ -e "/usr/bin/hhvm" ] && echo /usr/bin/hhvm
+  [ -e "/etc/hhvm" ] && echo /etc/hhvm
+  [ -e "/var/log/hhvm" ] && echo /var/log/hhvm
+  [ -e "/lib/systemd/system/hhvm.service" ] && echo /lib/systemd/system/hhvm.service
+  [ -e "/etc/supervisord.conf" ] && echo /etc/supervisord.conf
+  [ -e "/etc/init.d/supervisord" ] && echo /etc/init.d/supervisord
 }
 
 Uninstall_HHVM() {
@@ -458,9 +507,9 @@ Uninstall_HHVM() {
 }
 
 Print_PureFtpd() {
-  [ -e "${pureftpd_install_dir}" ] && echo "${pureftpd_install_dir}"
-  [ -e "/etc/init.d/pureftpd" ] && echo "/etc/init.d/pureftpd"
-  [ -e "/lib/systemd/system/pureftpd.service" ] && echo "/lib/systemd/system/pureftpd.service"
+  [ -e "${pureftpd_install_dir}" ] && echo ${pureftpd_install_dir}
+  [ -e "/etc/init.d/pureftpd" ] && echo /etc/init.d/pureftpd
+  [ -e "/lib/systemd/system/pureftpd.service" ] && echo /lib/systemd/system/pureftpd.service
 }
 
 Uninstall_PureFtpd() {
@@ -469,8 +518,8 @@ Uninstall_PureFtpd() {
 }
 
 Print_Redis_server() {
-  [ -e "${redis_install_dir}" ] && echo "${redis_install_dir}"
-  [ -e "/etc/init.d/redis-server" ] && echo "/etc/init.d/redis-server"
+  [ -e "${redis_install_dir}" ] && echo ${redis_install_dir}
+  [ -e "/etc/init.d/redis-server" ] && echo /etc/init.d/redis-server
   [ -e "/lib/systemd/system/redis-server.service" ] && echo '/lib/systemd/system/redis-server.service'
 }
 
@@ -480,9 +529,9 @@ Uninstall_Redis_server() {
 }
 
 Print_Memcached_server() {
-  [ -e "${memcached_install_dir}" ] && echo "${memcached_install_dir}"
-  [ -e "/etc/init.d/memcached" ] && echo "/etc/init.d/memcached"
-  [ -e "/usr/bin/memcached" ] && echo "/usr/bin/memcached"
+  [ -e "${memcached_install_dir}" ] && echo ${memcached_install_dir}
+  [ -e "/etc/init.d/memcached" ] && echo /etc/init.d/memcached
+  [ -e "/usr/bin/memcached" ] && echo /usr/bin/memcached
 }
 
 Uninstall_Memcached_server() {
@@ -490,7 +539,7 @@ Uninstall_Memcached_server() {
 }
 
 Print_phpMyAdmin() {
-  [ -d "${wwwroot_dir}/default/phpMyAdmin" ] && echo "${wwwroot_dir}/default/phpMyAdmin"
+  [ -d "${wwwroot_dir}/default/phpMyAdmin" ] && echo ${wwwroot_dir}/default/phpMyAdmin
 }
 
 Uninstall_phpMyAdmin() {
@@ -498,7 +547,7 @@ Uninstall_phpMyAdmin() {
 }
 
 Print_openssl() {
-  [ -d "${openssl_install_dir}" ] && echo "${openssl_install_dir}"
+  [ -d "${openssl_install_dir}" ] && echo ${openssl_install_dir}
 }
 
 Uninstall_openssl() {
@@ -506,7 +555,7 @@ Uninstall_openssl() {
 }
 
 Print_Python() {
-  [ -d "${python_install_dir}" ] && echo "${python_install_dir}"
+  [ -d "${python_install_dir}" ] && echo ${python_install_dir}
 }
 
 Menu() {
@@ -518,7 +567,7 @@ What Are You Doing?
 \t${CMSG} 2${CEND}. Uninstall MySQL/MariaDB/Percona/AliSQL
 \t${CMSG} 3${CEND}. Uninstall PostgreSQL
 \t${CMSG} 4${CEND}. Uninstall MongoDB
-\t${CMSG} 5${CEND}. Uninstall PHP
+\t${CMSG} 5${CEND}. Uninstall all PHP
 \t${CMSG} 6${CEND}. Uninstall PHP opcode cache
 \t${CMSG} 7${CEND}. Uninstall PHP extensions
 \t${CMSG} 8${CEND}. Uninstall HHVM
@@ -541,7 +590,7 @@ What Are You Doing?
       Print_MySQL
       Print_PostgreSQL
       Print_MongoDB
-      Print_PHP
+      Print_ALLPHP
       Print_HHVM
       Print_PureFtpd
       Print_Redis_server
@@ -555,7 +604,7 @@ What Are You Doing?
         Uninstall_MySQL
         Uninstall_PostgreSQL
         Uninstall_MongoDB
-        Uninstall_PHP
+        Uninstall_ALLPHP
         Uninstall_HHVM
         Uninstall_PureFtpd
         Uninstall_Redis_server
@@ -592,9 +641,9 @@ What Are You Doing?
       [ "${uninstall_flag}" == 'y' ] && Uninstall_MongoDB || exit
       ;;
     5)
-      Print_PHP
+      Print_ALLPHP
       Uninstall_status
-      [ "${uninstall_flag}" == 'y' ] && Uninstall_PHP || exit
+      [ "${uninstall_flag}" == 'y' ] && Uninstall_ALLPHP || exit
       ;;
     6)
       Uninstall_status
@@ -650,7 +699,12 @@ else
   [ "${mysql_flag}" == 'y' ] && Print_MySQL
   [ "${postgresql_flag}" == 'y' ] && Print_PostgreSQL
   [ "${mongodb_flag}" == 'y' ] && Print_MongoDB
-  [ "${php_flag}" == 'y' ] && Print_PHP
+  if [ "${allphp_flag}" == 'y' ]; then
+    Print_ALLPHP
+  else
+    [ "${php_flag}" == 'y' ] && Print_PHP
+    [ "${mphp_flag}" == 'y' ] && [ "${phpcache_flag}" != 'y' ] && [ -z "${php_extensions}" ] && Print_MPHP
+  fi
   [ "${hhvm_flag}" == 'y' ] && Print_HHVM
   [ "${pureftpd_flag}" == 'y' ] && Print_PureFtpd
   [ "${redis_flag}" == 'y' ] && Print_Redis_server
@@ -664,9 +718,16 @@ else
     [ "${mysql_flag}" == 'y' ] && Uninstall_MySQL
     [ "${postgresql_flag}" == 'y' ] && Uninstall_PostgreSQL
     [ "${mongodb_flag}" == 'y' ] && Uninstall_MongoDB
-    [ "${phpcache_flag}" == 'y' ] && Uninstall_PHPcache
-    Uninstall_PHPext
-    [ "${php_flag}" == 'y' ] && Uninstall_PHP
+    if [ "${allphp_flag}" == 'y' ]; then
+      Uninstall_ALLPHP
+    else
+      [ "${php_flag}" == 'y' ] && Uninstall_PHP
+      [ "${php_flag}" == 'y' ] && [ "${phpcache_flag}" == 'y' ] && Uninstall_PHPcache
+      [ "${php_flag}" == 'y' ] && [ -n "${php_extensions}" ] && Uninstall_PHPext
+      [ "${mphp_flag}" == 'y' ] && [ "${phpcache_flag}" != 'y' ] && [ -z "${php_extensions}" ] && Uninstall_MPHP
+      [ "${mphp_flag}" == 'y' ] && [ "${phpcache_flag}" == 'y' ] && { php_install_dir=${php_install_dir}${mphp_ver}; Uninstall_PHPcache; }
+      [ "${mphp_flag}" == 'y' ] && [ -n "${php_extensions}" ] && { php_install_dir=${php_install_dir}${mphp_ver}; Uninstall_PHPext; }
+    fi
     [ "${hhvm_flag}" == 'y' ] && Uninstall_HHVM
     [ "${pureftpd_flag}" == 'y' ] && Uninstall_PureFtpd
     [ "${redis_flag}" == 'y' ] && Uninstall_Redis_server

+ 3 - 3
versions.txt

@@ -19,9 +19,9 @@ apr_util_ver=1.6.1
 nghttp2_ver=1.35.1
 
 # DB
-mysql80_ver=8.0.13
-mysql57_ver=5.7.24
-mysql56_ver=5.6.42
+mysql80_ver=8.0.14
+mysql57_ver=5.7.25
+mysql56_ver=5.6.43
 mysql55_ver=5.5.62
 
 mariadb103_ver=10.3.12

+ 61 - 18
vhost.sh

@@ -33,6 +33,7 @@ Show_Help() {
   --help, -h                  Show this help message
   --quiet, -q                 quiet operation
   --list, -l                  List Virtualhost
+  --mphp_ver [53~73]          Use another PHP version (PATH: /usr/local/php${mphp_ver})
   --add                       Add Virtualhost
   --delete, --del             Delete Virtualhost
   --httponly                  Use HTTP Only
@@ -43,7 +44,7 @@ Show_Help() {
 }
 
 ARG_NUM=$#
-TEMP=`getopt -o hql --long help,quiet,list,add,delete,del,httponly,selfsigned,letsencrypt,dnsapi -- "$@" 2>/dev/null`
+TEMP=`getopt -o hql --long help,quiet,list,mphp_ver:,add,delete,del,httponly,selfsigned,letsencrypt,dnsapi -- "$@" 2>/dev/null`
 [ $? != 0 ] && echo "${CWARNING}ERROR: unknown argument! ${CEND}" && Show_Help && exit 1
 eval set -- "${TEMP}"
 while :; do
@@ -58,6 +59,10 @@ while :; do
     -l|--list)
       list_flag=y; shift 1
       ;;
+    --mphp_ver)
+      mphp_ver=$2; mphp_flag=y; shift 2
+      [[ ! "${mphp_ver}" =~ ^5[3-6]$|^7[0-3]$ ]] && { echo "${CWARNING}mphp_ver input error! Please only input number 53~73${CEND}"; unset mphp_ver mphp_flag; }
+      ;;
     --add)
       add_flag=y; shift 1
       ;;
@@ -189,18 +194,6 @@ Choose_ENV() {
     Number=000
     NGX_FLAG=php
   fi
-
-  case "${NGX_FLAG}" in
-    "php")
-      NGX_CONF=$(echo -e "location ~ [^/]\.php(/|$) {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n  }")
-      ;;
-    "java")
-      NGX_CONF=$(echo -e "location ~ {\n    proxy_pass http://127.0.0.1:8080;\n    include proxy.conf;\n  }")
-      ;;
-    "hhvm")
-      NGX_CONF=$(echo -e "location ~ .*\.(php|php5)?$ {\n    fastcgi_pass unix:/var/log/hhvm/sock;\n    fastcgi_index index.php;\n    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;\n    include fastcgi_params;\n  }")
-      ;;
-  esac
 }
 
 Create_SSL() {
@@ -346,6 +339,55 @@ What Are You Doing?
       fi
     done
   fi
+
+  #Multiple_PHP
+  if [ $(ls /dev/shm/php*-cgi.sock 2> /dev/null | wc -l) -ge 2 ]; then
+    if [ "${mphp_flag}" != 'y' ]; then
+      PHP_detail_ver=`${php_install_dir}/bin/php-config --version`
+      PHP_main_ver=${PHP_detail_ver%.*}
+      while :; do echo
+        echo 'Please select a version of the PHP:'
+        echo -e "\t${CMSG}1${CEND}. PHP ${PHP_main_ver} (default)"
+        [ -e "/dev/shm/php53-cgi.sock" ] && echo -e "\t${CMSG}2${CEND}. PHP 5.3"
+        [ -e "/dev/shm/php54-cgi.sock" ] && echo -e "\t${CMSG}3${CEND}. PHP 5.4"
+        [ -e "/dev/shm/php55-cgi.sock" ] && echo -e "\t${CMSG}4${CEND}. PHP 5.5"
+        [ -e "/dev/shm/php56-cgi.sock" ] && echo -e "\t${CMSG}5${CEND}. PHP 5.6"
+        [ -e "/dev/shm/php70-cgi.sock" ] && echo -e "\t${CMSG}6${CEND}. PHP 7.0"
+        [ -e "/dev/shm/php71-cgi.sock" ] && echo -e "\t${CMSG}7${CEND}. PHP 7.1"
+        [ -e "/dev/shm/php72-cgi.sock" ] && echo -e "\t${CMSG}8${CEND}. PHP 7.2"
+        [ -e "/dev/shm/php73-cgi.sock" ] && echo -e "\t${CMSG}9${CEND}. PHP 7.3"
+        read -e -p "Please input a number:(Default 1 press Enter) " php_option
+        php_option=${php_option:-1}
+        if [[ ! ${php_option} =~ ^[1-9]$ ]]; then
+          echo "${CWARNING}input error! Please only input number 1~9${CEND}"
+        else
+          break
+        fi
+      done
+    fi
+    [ "${php_option}" == '2' ] && mphp_ver=53
+    [ "${php_option}" == '3' ] && mphp_ver=54
+    [ "${php_option}" == '4' ] && mphp_ver=55
+    [ "${php_option}" == '5' ] && mphp_ver=56
+    [ "${php_option}" == '6' ] && mphp_ver=70
+    [ "${php_option}" == '7' ] && mphp_ver=71
+    [ "${php_option}" == '8' ] && mphp_ver=72
+    [ "${php_option}" == '9' ] && mphp_ver=73
+    [ ! -e "/dev/shm/php${mphp_ver}-cgi.sock" ] && unset mphp_ver
+  fi
+
+  case "${NGX_FLAG}" in
+    "php")
+      NGX_CONF=$(echo -e "location ~ [^/]\.php(/|$) {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php${mphp_ver}-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n  }")
+      ;;
+    "java")
+      NGX_CONF=$(echo -e "location ~ {\n    proxy_pass http://127.0.0.1:8080;\n    include proxy.conf;\n  }")
+      ;;
+    "hhvm")
+      NGX_CONF=$(echo -e "location ~ .*\.(php|php5)?$ {\n    fastcgi_pass unix:/var/log/hhvm/sock;\n    fastcgi_index index.php;\n    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;\n    include fastcgi_params;\n  }")
+      ;;
+  esac
+
   if [ "${Domian_Mode}" == '3' -o "${dnsapi_flag}" == 'y' ] && [ ! -e ~/.acme.sh/acme.sh ]; then
     pushd ${oneinstack_dir}/src > /dev/null
     [ ! -e acme.sh-master.tar.gz ] && wget -qc http://mirrors.linuxeye.com/oneinstack/src/acme.sh-master.tar.gz
@@ -522,9 +564,9 @@ Nginx_rewrite() {
       rewrite="other"
     fi
     echo "You choose rewrite=${CMSG}$rewrite${CEND}"
-    [ "${NGX_FLAG}" == 'php' -a "${rewrite}" == "joomla" ] && NGX_CONF=$(echo -e "location ~ \\.php\$ {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n  }")
-    [ "${NGX_FLAG}" == 'php' ] && [[ "${rewrite}" =~ ^codeigniter$|^thinkphp$|^pathinfo$ ]] && NGX_CONF=$(echo -e "location ~ [^/]\.php(/|\$) {\n    try_files \$uri =404;\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n    set \$real_script_name \$fastcgi_script_name;\n    if (\$fastcgi_script_name ~ \"^(.+?\.php)(/.+)\$\") {\n      set \$real_script_name \$1;\n      set \$path_info \$2;\n    }\n    fastcgi_param SCRIPT_FILENAME \$document_root\$real_script_name;\n    fastcgi_param SCRIPT_NAME \$real_script_name;\n    fastcgi_param PATH_INFO \$path_info;\n  }")
-    [ "${NGX_FLAG}" == 'php' -a "${rewrite}" == "typecho" ] && NGX_CONF=$(echo -e "location ~ .*\.php(\/.*)*\$ {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n    set \$path_info \"\";\n    set \$real_script_name \$fastcgi_script_name;\n    if (\$fastcgi_script_name ~ \"^(.+?\.php)(/.+)\$\") {\n      set \$real_script_name \$1;\n      set \$path_info \$2;\n    }\n    fastcgi_param SCRIPT_FILENAME \$document_root\$real_script_name;\n    fastcgi_param SCRIPT_NAME \$real_script_name;\n    fastcgi_param PATH_INFO \$path_info;\n  }")
+    [ "${NGX_FLAG}" == 'php' -a "${rewrite}" == "joomla" ] && NGX_CONF=$(echo -e "location ~ \\.php\$ {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php${mphp_ver}-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n  }")
+    [ "${NGX_FLAG}" == 'php' ] && [[ "${rewrite}" =~ ^codeigniter$|^thinkphp$|^pathinfo$ ]] && NGX_CONF=$(echo -e "location ~ [^/]\.php(/|\$) {\n    try_files \$uri =404;\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php${mphp_ver}-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n    set \$real_script_name \$fastcgi_script_name;\n    if (\$fastcgi_script_name ~ \"^(.+?\.php)(/.+)\$\") {\n      set \$real_script_name \$1;\n      set \$path_info \$2;\n    }\n    fastcgi_param SCRIPT_FILENAME \$document_root\$real_script_name;\n    fastcgi_param SCRIPT_NAME \$real_script_name;\n    fastcgi_param PATH_INFO \$path_info;\n  }")
+    [ "${NGX_FLAG}" == 'php' -a "${rewrite}" == "typecho" ] && NGX_CONF=$(echo -e "location ~ .*\.php(\/.*)*\$ {\n    #fastcgi_pass remote_php_ip:9000;\n    fastcgi_pass unix:/dev/shm/php${mphp_ver}-cgi.sock;\n    fastcgi_index index.php;\n    include fastcgi.conf;\n    set \$path_info \"\";\n    set \$real_script_name \$fastcgi_script_name;\n    if (\$fastcgi_script_name ~ \"^(.+?\.php)(/.+)\$\") {\n      set \$real_script_name \$1;\n      set \$path_info \$2;\n    }\n    fastcgi_param SCRIPT_FILENAME \$document_root\$real_script_name;\n    fastcgi_param SCRIPT_NAME \$real_script_name;\n    fastcgi_param PATH_INFO \$path_info;\n  }")
     if [[ ! "${rewrite}" =~ ^magento2$|^pathinfo$ ]]; then
       if [ -e "config/${rewrite}.conf" ]; then
         /bin/cp config/${rewrite}.conf ${web_install_dir}/conf/rewrite/${rewrite}.conf
@@ -678,6 +720,7 @@ EOF
   [ "${rewrite}" == 'pathinfo' ] && sed -i '/pathinfo.conf;$/d' ${web_install_dir}/conf/vhost/${domain}.conf
   if [ "${rewrite}" == 'magento2' -a -e "config/${rewrite}.conf" ]; then
     /bin/cp config/${rewrite}.conf ${web_install_dir}/conf/vhost/${domain}.conf
+    sed -i "s@/dev/shm/php-cgi.sock@/dev/shm/php${mphp_ver}-cgi.sock@g" ${web_install_dir}/conf/vhost/${domain}.conf
     sed -i "s@^  set \$MAGE_ROOT.*;@  set \$MAGE_ROOT ${vhostdir};@" ${web_install_dir}/conf/vhost/${domain}.conf
     sed -i "s@^  server_name.*;@  server_name ${domain}${moredomainame};@" ${web_install_dir}/conf/vhost/${domain}.conf
     sed -i "s@^  server_name.*;@&\n  ${Nginx_log}@" ${web_install_dir}/conf/vhost/${domain}.conf
@@ -757,7 +800,7 @@ Apache_log() {
 Create_apache_conf() {
   if [ "${Apache_main_ver}" == '24' ]; then
     if [ -e "${php_install_dir}/sbin/php-fpm" ] && [ -n "`grep -E ^LoadModule.*mod_proxy_fcgi.so ${apache_install_dir}/conf/httpd.conf`" ]; then
-      Apache_fcgi=$(echo -e "<Files ~ (\\.user.ini|\\.htaccess|\\.git|\\.svn|\\.project|LICENSE|README.md)\$>\n    Order allow,deny\n    Deny from all\n  </Files>\n  <FilesMatch \\.php\$>\n    SetHandler \"proxy:unix:/dev/shm/php-cgi.sock|fcgi://localhost\"\n  </FilesMatch>")
+      Apache_fcgi=$(echo -e "<Files ~ (\\.user.ini|\\.htaccess|\\.git|\\.svn|\\.project|LICENSE|README.md)\$>\n    Order allow,deny\n    Deny from all\n  </Files>\n  <FilesMatch \\.php\$>\n    SetHandler \"proxy:unix:/dev/shm/php${mphp_ver}-cgi.sock|fcgi://localhost\"\n  </FilesMatch>")
     fi
   fi
   [ ! -d ${apache_install_dir}/conf/vhost ] && mkdir ${apache_install_dir}/conf/vhost
@@ -878,7 +921,7 @@ EOF
   # Apache
   if [ "${Apache_main_ver}" == '24' ]; then
     if [ -e "${php_install_dir}/sbin/php-fpm" ] && [ -n "`grep -E ^LoadModule.*mod_proxy_fcgi.so ${apache_install_dir}/conf/httpd.conf`" ]; then
-      Apache_fcgi=$(echo -e "<Files ~ (\\.user.ini|\\.htaccess|\\.git|\\.svn|\\.project|LICENSE|README.md)\$>\n    Order allow,deny\n    Deny from all\n  </Files>\n  <FilesMatch \\.php\$>\n    SetHandler \"proxy:unix:/dev/shm/php-cgi.sock|fcgi://localhost\"\n  </FilesMatch>")
+      Apache_fcgi=$(echo -e "<Files ~ (\\.user.ini|\\.htaccess|\\.git|\\.svn|\\.project|LICENSE|README.md)\$>\n    Order allow,deny\n    Deny from all\n  </Files>\n  <FilesMatch \\.php\$>\n    SetHandler \"proxy:unix:/dev/shm/php${mphp_ver}-cgi.sock|fcgi://localhost\"\n  </FilesMatch>")
     fi
   fi
   [ ! -d ${apache_install_dir}/conf/vhost ] && mkdir ${apache_install_dir}/conf/vhost