|
|
@@ -13,6 +13,7 @@
|
|
|
version=$1
|
|
|
|
|
|
# Includes
|
|
|
+source $HESTIA/func/osal.sh
|
|
|
source $HESTIA/func/main.sh
|
|
|
source $HESTIA/conf/hestia.conf
|
|
|
|
|
|
@@ -23,8 +24,7 @@ source $HESTIA/conf/hestia.conf
|
|
|
|
|
|
check_args '1' "$#" 'VERSION'
|
|
|
|
|
|
-# Set file locations
|
|
|
-php_fpm="/etc/init.d/php$version-fpm"
|
|
|
+php_prefix=$(multiphp_php_package_prefix $version)
|
|
|
|
|
|
# Verify php version format
|
|
|
if [[ ! $version =~ ^[0-9]\.[0-9]+ ]]; then
|
|
|
@@ -33,7 +33,7 @@ if [[ ! $version =~ ^[0-9]\.[0-9]+ ]]; then
|
|
|
fi
|
|
|
|
|
|
# Check if php version already exists
|
|
|
-if [ -f "$php_fpm" ] && [ -f "$HESTIA/data/templates/web/php-fpm/PHP-${version/\./_}.tpl" ]; then
|
|
|
+if [ $(multiphp_fpm_isinstalled $version) ] && [ -f "$HESTIA/data/templates/web/php-fpm/PHP-${version/\./_}.tpl" ]; then
|
|
|
echo "Version already installed..."
|
|
|
exit
|
|
|
fi
|
|
|
@@ -52,65 +52,55 @@ check_hestia_demo_mode
|
|
|
# Action #
|
|
|
#----------------------------------------------------------#
|
|
|
|
|
|
-mph="php$version-mbstring php$version-bcmath php$version-cli php$version-curl
|
|
|
- php$version-fpm php$version-gd php$version-intl php$version-mysql
|
|
|
- php$version-soap php$version-xml php$version-zip php$version-mbstring
|
|
|
- php$version-json php$version-bz2 php$version-pspell php$version-imagick php$version-pgsql
|
|
|
- php$version-imap php$version-ldap"
|
|
|
+mph="$php_prefix-mbstring $php_prefix-bcmath $php_prefix-cli $php_prefix-curl
|
|
|
+ $php_prefix-fpm $php_prefix-gd $php_prefix-intl $php_prefix-mysql
|
|
|
+ $php_prefix-soap $php_prefix-xml $php_prefix-zip $php_prefix-mbstring
|
|
|
+ $php_prefix-json $php_prefix-bz2 $php_prefix-pspell $php_prefix-imagick $php_prefix-pgsql
|
|
|
+ $php_prefix-imap $php_prefix-ldap"
|
|
|
|
|
|
# Check is version is 7.1 or below to add mcrypt
|
|
|
if [[ `echo "$version 7.2" | awk '{print ($1 < $2)}'` == 1 ]]; then
|
|
|
- mph="$mph php$version-mcrypt"
|
|
|
+ mph="$mph $php_prefix-mcrypt"
|
|
|
fi
|
|
|
|
|
|
if ! echo "$DB_SYSTEM" | grep -w 'mysql' >/dev/null; then
|
|
|
- mph=$(echo "$mph" | sed -e "s/php$version-mysql//")
|
|
|
+ mph=$(echo "$mph" | sed -e "s/$php_prefix-mysql//")
|
|
|
fi
|
|
|
|
|
|
if ! echo "$DB_SYSTEM" | grep -w 'pgsql' >/dev/null; then
|
|
|
- mph=$(echo "$mph" | sed -e "s/php$version-pgsql//")
|
|
|
+ mph=$(echo "$mph" | sed -e "s/$php_prefix-pgsql//")
|
|
|
fi
|
|
|
|
|
|
# Install php packages
|
|
|
-apt-get -qq update
|
|
|
-apt-get -y -qq -o Dpkg::Options::="--force-confold" install $mph > /dev/null 2>&1 &
|
|
|
-BACK_PID=$!
|
|
|
-
|
|
|
-# Check if package installation is done, print a spinner
|
|
|
-echo "Install PHP-$version, please wait..."
|
|
|
-spinner="/-\|"
|
|
|
-spin_i=1
|
|
|
-while kill -0 $BACK_PID > /dev/null 2>&1 ; do
|
|
|
- printf "\b${spinner:spin_i++%${#spinner}:1}"
|
|
|
- sleep 0.5
|
|
|
-done
|
|
|
-
|
|
|
-# Do a blank echo to get the \n back
|
|
|
-echo
|
|
|
+package_preinstall
|
|
|
+execute_with_spinner package_install $mph
|
|
|
|
|
|
# Check if installation was sucessfully
|
|
|
-if [ ! -f "$php_fpm" ]; then
|
|
|
+if [ ! $(multiphp_fpm_isinstalled $version) ]; then
|
|
|
echo "Installation failed, please run the following command manualy for debuging:"
|
|
|
- echo "apt-get install $mph"
|
|
|
+ echo "$CMD_PACKAGE_MANAGER install ${mph//\\n/ \\}"
|
|
|
fi
|
|
|
|
|
|
# Check if required modules for apache2 are enabled
|
|
|
-if [ "$WEB_SYSTEM" = "apache2" ]; then
|
|
|
- if ! a2query -q -m proxy_fcgi; then
|
|
|
- a2enmod -q proxy_fcgi
|
|
|
+if [ "$WEB_SYSTEM" = "apache2" ] || [ "$WEB_SYSTEM" = "httpd" ]; then
|
|
|
+ if [ ! $(apache_module_isenabled 'proxy_fcgi') ]; then
|
|
|
+ apache_module_enable 'proxy_fcgi'
|
|
|
fi
|
|
|
- if ! a2query -q -m setenvif; then
|
|
|
- a2enmod -q setenvif
|
|
|
+ if [ ! $(apache_module_isenabled 'setenvif') ]; then
|
|
|
+ apache_module_enable 'setenvif'
|
|
|
fi
|
|
|
$BIN/v-restart-web
|
|
|
fi
|
|
|
|
|
|
# Configure fpm
|
|
|
-update-rc.d php$version-fpm defaults > /dev/null 2>&1
|
|
|
-v_tpl=${version//.}
|
|
|
-rm -f /etc/php/$version/fpm/pool.d/*
|
|
|
-cp -f $HESTIA_INSTALL_DIR/php-fpm/dummy.conf /etc/php/$version/fpm/pool.d/
|
|
|
-sed -i "s/9999/99$v_tpl/g" /etc/php/$version/fpm/pool.d/dummy.conf
|
|
|
+service_enable $php_prefix-fpm > /dev/null 2>&1
|
|
|
+pool_d=$(multiphp_fpm_pool_d $version)
|
|
|
+if [ $pool_d ]; then
|
|
|
+ v_tpl=${version//.}
|
|
|
+ rm -f $pool_d/*
|
|
|
+ cp -f $HESTIA_INSTALL_DIR/php-fpm/dummy.conf $pool_d/
|
|
|
+ sed -i "s/9999/99$v_tpl/g" $pool_d/dummy.conf # FIXME: this'll break with PHP 10.0
|
|
|
+fi
|
|
|
|
|
|
# Install backend template
|
|
|
cp -f $HESTIA_INSTALL_DIR/php-fpm/multiphp.tpl \
|