139 lines
5.7 KiB
Bash
139 lines
5.7 KiB
Bash
#sysCheck
|
|
if [ ! -f "/etc/ICTM/selopts.list" ] || [ ! -f "/etc/ICTM/mainvar.list" ] ; then echo 'This system is not yet setup, please run the main installer first' && exit ; fi
|
|
rm /tmp/pkg.list
|
|
#Getting variables
|
|
source /etc/ICTM/mainvar.list
|
|
if [ -z $shortdist ] ; then source <(curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/Scripts/MicroOSDetect.sh) ; fi
|
|
if [ ! -f "/etc/ICTM/phpvar.list" ] ; then bash <(curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/Scripts/GeneratePhplist.sh) ; fi
|
|
source /etc/ICTM/phpvar.list
|
|
if [ "$shortdist" = "ubu1804" ] || [ "$shortdist" = "ubu2004" ]; then
|
|
# Ubuntu Php variable
|
|
apt update
|
|
if ! ls /var/lib/apt/lists/ppa.launchpad.net_ondrej_php*_Packages > /dev/null 2>&1 ; then echo 'PHP(Sury) repo not installed' && echo 'Install using: curl --retry 7 --retry-delay 5 -s https://git.ictmaatwerk.com/VPS-scripts/General/raw/branch/Main/Setup-Repo.sh |repo=php bash' && exit ; fi
|
|
RepoVersion=`grep -h '^Package: php' /var/lib/apt/lists/ppa.launchpad.net_ondrej_php*_Packages | cut -f1 -d"-" | sort | tail -1| sed -e 's/Package: php//'`
|
|
elif [ "$shortdist" = "deb10" ]|| [ "$shortdist" = "deb11" ]; then
|
|
# Debian Php variable
|
|
apt update
|
|
if ! ls /var/lib/apt/lists/packages.sury.org_php*_Packages > /dev/null 2>&1 ; then echo 'PHP(Sury) repo not installed' && echo 'Install using: curl --retry 7 --retry-delay 5 -s https://git.ictmaatwerk.com/VPS-scripts/General/raw/branch/Main/Setup-Repo.sh |repo=php bash' && exit ; fi
|
|
RepoVersion=`grep -h '^Package: php' /var/lib/apt/lists/packages.sury.org*_Packages| cut -f1 -d"-" | sort | tail -1| sed -e 's/Package: php//'`
|
|
elif [ "$shortdist" = "el8" ]; then
|
|
dnf check-update --refresh
|
|
RepoVersion=`dnf list php* | awk '{print $1; }' | cut -f1 -d"-"| tail -1 |sed 's/php//' | sed 's/./&./1'`
|
|
fi
|
|
msg () {
|
|
if [ $IMODE = n ]; then
|
|
TERM=ansi whiptail --title "Info" --msgbox "$1" 8 52
|
|
fi
|
|
if [ $IMODE = l ]; then
|
|
echo "$1"
|
|
fi
|
|
}
|
|
|
|
|
|
if [ $IMODE = n ]; then
|
|
# Legacy/Main Menu
|
|
PKGD="debconf-apt-progress -- apt purge -y"
|
|
|
|
#Menu
|
|
if (whiptail --title "Php Upgrader" --yesno " Current php version is $phpver, and $RepoVersion the is latest available version" --yes-button "Yes, upgrade to this version" --no-button "No, i want to choose" 8 100); then
|
|
newphpver=$RepoVersion
|
|
else
|
|
newphpver=$(whiptail --inputbox "Please enter the version to install" --nocancel --title "Php Upgrader" 8 50 3>&1 1>&2 2>&3)
|
|
fi
|
|
fi
|
|
|
|
if [ $IMODE = l ]; then
|
|
# Legacy/Main Menu
|
|
PKGD="apt purge -y"
|
|
|
|
#Menu
|
|
while true; do
|
|
read -p "Current php version is $phpver, and $RepoVersion the is latest available version -> Yes, upgrade to this version/No, i want to choose? " yn
|
|
case $yn in
|
|
[Yy]* ) newphpver=$RepoVersion
|
|
break;;
|
|
[Nn]* ) echo "";
|
|
echo "Please enter php version to install:";read newphpver
|
|
break;;
|
|
* ) echo "Choose yes or no.";;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
#Genereating vars for new php version
|
|
if [ "$shortdist" = "ubu1804" ] || [ "$shortdist" = "ubu2004" ] || [ "$shortdist" = "deb10" ] || [ "$shortdist" = "deb11" ] ; then
|
|
# Debian/Ubunbtu Php variables
|
|
newphpPoolDir=/etc/php/${newphpver}/fpm/pool.d
|
|
newphpPkgName=php${newphpver}
|
|
newphpMainConf=/etc/php/${newphpver}/fpm/php.ini
|
|
newphpFPMService=php${newphpver}-fpm
|
|
PKGP=$PKGD
|
|
apt list --installed | less | grep php$phpver | cut -f1 -d"/" | sed "s/$phpPkgName/$newphpPkgName/" > /tmp/pkg.list
|
|
elif [ "$shortdist" = "el8" ]; then
|
|
# Centos Php variable
|
|
newphpPoolDir=/etc/opt/remi/php${newphpver//.}/php-fpm.d/
|
|
newphpPkgName=php${newphpver//.}-php
|
|
newphpMainConf=/etc/opt/remi/php${newphpver//.}/php.ini
|
|
newphpFPMService=php${newphpver//.}-php-fpm
|
|
PKGP="dnf remove -y"
|
|
dnf list --installed | sort | grep $phpPkgName | awk '{print $1;}' | cut -f1 -d"." | sed "s/$phpPkgName/$newphpPkgName/" > /tmp/pkg.list
|
|
fi
|
|
|
|
#Install
|
|
|
|
if [ ${newphpver//.} -ge 80 ] && [ ${newphpver//.} -lt 90 ]; then
|
|
sed -i -e "s/$newphpPkgName-xmlrpc//g" -e "s/$newphpPkgName-json//g" /tmp/pkg.list
|
|
fi
|
|
cat /tmp/pkg.list | xargs $PKGI
|
|
|
|
#Config
|
|
systemctl stop $newphpFPMService
|
|
cp $phpPoolDir/* $newphpPoolDir
|
|
|
|
|
|
if [ $IMODE = n ]; then
|
|
#Purge
|
|
if (whiptail --title "Php Upgrader" --yesno "Remove old php version ($phpver) ?" 8 78); then
|
|
PhpPurge=1
|
|
$PKGP -y $phpPkgName*
|
|
else
|
|
PhpPurge=0
|
|
echo "$PKGP -y $phpPkgName*" > ~/remove-PHP-$phpver
|
|
fi
|
|
fi
|
|
|
|
|
|
if [ $IMODE = l ]; then
|
|
#Purge
|
|
while true; do
|
|
read -p "Remove old php version ($phpver) ? -> yes/no?" yn
|
|
case $yn in
|
|
[Yy]* ) PhpPurge=1 ; $PKGP $phpPkgName*
|
|
break;;
|
|
[Nn]* ) PhpPurge=0 ; echo ""
|
|
break;;
|
|
* ) echo "Choose yes or no.";;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
for f in $newphpPoolDir/*; do
|
|
sed -i "s/$phpver/$newphpver/" $f
|
|
sed -i "s/${phpver//.}/${newphpver//.}/" $f
|
|
done
|
|
|
|
systemctl start $newphpFPMService
|
|
systemctl enable $newphpFPMService
|
|
|
|
|
|
sed -i "/phpver/c\phpver=\"$newphpver\"" /etc/ICTM/mainvar.list
|
|
|
|
mv /etc/ICTM/phpvar.list /etc/ICTM/phpvar"$phpver".list
|
|
for storeme in newphpPoolDir newphpPkgName newphpMainConf newphpFPMService; do
|
|
declare -p $storeme | cut -d ' ' -f 3- >> /etc/ICTM/phpvar.list
|
|
done
|
|
sed -i 's/new//' /etc/ICTM/phpvar.list
|
|
|
|
if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/phpupdate-handeler.sh; then
|
|
source <(curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/phpupdate-handeler.sh)
|
|
fi |