Updated detection for latested php version in repo for deb based now using apt package list repo file instead of apt list command
141 lines
5.5 KiB
Bash
141 lines
5.5 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//'`
|
|
fi
|
|
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
|
|
}
|
|
|
|
msg "Current php version: $phpver"
|
|
|
|
if [ $IMODE = n ]; then
|
|
# Legacy/Main Menu
|
|
PKGD="debconf-apt-progress -- apt purge -y"
|
|
|
|
#Menu
|
|
if (whiptail --title "Set new php version?" --yesno "Install php version $RepoVersion ?" 8 78); then
|
|
newphpver=$RepoVersion
|
|
else
|
|
newphpver=$(whiptail --inputbox "Please enter the version to install" --nocancel --title "Custom" 8 39 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 "Set phpversion to version $RepoVersion ? -> yes/no?" 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 "Set new php version?" --yesno "Remove php $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 php $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 |