forked from hestiacp/hestiacp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupgrade_php.sh
More file actions
executable file
·66 lines (59 loc) · 2.55 KB
/
upgrade_php.sh
File metadata and controls
executable file
·66 lines (59 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
phpnewversion=7.4
phpoldversion=7.3
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
if [ ! -x "$(command -v php)" ]; then
echo "PHP is not installed. Aborting."
exit 1
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
echo "PHP current version : $phpoldversion"
echo "PHP target version : $phpnewversion"
echo "Do you want to upgrade PHP now? [Y|N]"
read upgradeconfirmation
if [ "$upgradeconfirmation" = "Y" ] || [ "$upgradeconfirmation" = "y" ]; then
echo "Process: Upgrading PHP to $phpnewversion"
echo ""
cd /tmp
dpkg-query --showformat='${Package}\t\n' --show | grep php$phpoldversion > /tmp/phpoldpackages.txt
cp -a /tmp/phpoldpackages.txt /tmp/phpnewpackages.txt
sed -i "s|$phpoldversion|$phpnewversion|g" /tmp/phpnewpackages.txt
apt-get update > /dev/null 2>&1
apt-get install $(cat /tmp/phpnewpackages.txt)
update-rc.d php$phpnewversion-fpm defaults
mv /etc/php/$phpoldversion/cli/php.ini /etc/php/$phpnewversion/cli/php.ini
mv /etc/php/$phpoldversion/fpm/php.ini /etc/php/$phpnewversion/fpm/php.ini
sed -i "s|$phpoldversion|$phpnewversion|g" /etc/php/$phpoldversion/fpm/php-fpm.conf
mv /etc/php/$phpoldversion/fpm/php-fpm.conf /etc/php/$phpnewversion/fpm/php-fpm.conf
rm -rf /etc/php/$phpnewversion/fpm/pool.d
mkdir -p /etc/php/$phpnewversion/fpm/pool.d
mv /etc/php/$phpoldversion/fpm/pool.d/* /etc/php/$phpnewversion/fpm/pool.d
mv /etc/logrotate.d/php$phpoldversion-fpm /etc/logrotate.d/php$phpnewversion-fpm
sed -i "s|$phpoldversion|$phpnewversion|g" /etc/logrotate.d/php$phpnewversion-fpm
rm -rf /etc/logrotate.d/php$phpnewversion-fpm.dpkg-dist
systemctl stop php$phpoldversion-php
apt-get purge $(cat /tmp/phpoldpackages.txt)
apt-get -y purge php-imagick
apt-get -y install php$phpnewversion-imagick
systemctl restart php$phpnewversion-fpm
rm -rf /etc/php/$phpoldversion
rm -rf /var/lib/php/modules/$phpoldversion
rm -rf /tmp/phpoldpackages.txt
rm -rf /tmp/phpnewpackages.txt
if [ -d /var/cache/nginx/micro ]; then
rm -rf /var/cache/nginx/micro/*
fi
systemctl reload nginx
echo ""
echo "PHP has been upgraded succcesfully to version $phpnewversion"
else
echo "Process: Aborted"
exit 0
fi