Skip to content

Commit 42cb35c

Browse files
author
Kristan Kenney
authored
Merge pull request hestiacp#379 from Lupul/Hotfix-0621
Improve web template updating when multiphp is enabled Fix minor bug when rewriting nginx resolver Check phpmyadmin version before installing
2 parents 95dcc6b + fb71ade commit 42cb35c

File tree

3 files changed

+65
-34
lines changed

3 files changed

+65
-34
lines changed

bin/v-update-web-templates

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,36 +32,53 @@ else
3232
exit $E_NOTEXIST
3333
fi
3434

35+
if [ -z "$WEB_SYSTEM" ]; then
36+
echo "Error: Missing Web System"
37+
log_event "$E_ARGS"
38+
exit $E_ARGS
39+
fi
40+
41+
HST_WEBTEMPLATES="$HESTIA/data/templates/web"
3542

3643
#----------------------------------------------------------#
3744
# Action #
3845
#----------------------------------------------------------#
3946

4047
# Update templates
41-
if [ -d $HESTIA/data/templates/web ]; then
42-
rm -rf $HESTIA/data/templates/web/skel 2>/dev/null
43-
rm -rf $HESTIA/data/templates/web/suspend 2>/dev/null
44-
rm -rf $HESTIA/data/templates/web/unassigned 2>/dev/null
48+
if [ -d "${HST_WEBTEMPLATES}" ]; then
49+
rm -rf "${HST_WEBTEMPLATES}/skel" 2>/dev/null
50+
rm -rf "${HST_WEBTEMPLATES}/suspend" 2>/dev/null
51+
rm -rf "${HST_WEBTEMPLATES}/unassigned" 2>/dev/null
4552
fi
4653

47-
cp -rf $HESTIA/install/$type/templates/web $HESTIA/data/templates/
54+
for webtpl_folder in $(ls $HESTIA/install/$type/templates/web/* -d 2>/dev/null | egrep -v '/(nginx)$' ); do
55+
cp -rf "${webtpl_folder}" "${HST_WEBTEMPLATES}/"
56+
done
57+
58+
[ -d "${HST_WEBTEMPLATES}/nginx" ] || mkdir -p "${HST_WEBTEMPLATES}/nginx"
4859

4960
# Update Multi-PHP templates
5061
php_versions=$(ls /etc/php/*/fpm -d 2>/dev/null | wc -l)
5162
if [ "$php_versions" -gt 1 ]; then
52-
if [ "$WEB_SYSTEM" = "nginx" ]; then
53-
for tplname in $(ls $HESTIA/data/templates/web/$WEB_SYSTEM/ | grep -E 'PHP-[0-9][0-9]' ); do
54-
rm -fr $HESTIA/data/templates/web/$WEB_SYSTEM/$tplname
55-
done
56-
fi
5763
for v in $(ls /etc/php/); do
5864
if [ ! -d "/etc/php/$v/fpm/pool.d/" ]; then
5965
continue
6066
fi
6167
v_tpl=$(echo "$v" | sed -e 's/[.]//')
62-
cp -f $HESTIA/install/$type/multiphp/$WEB_SYSTEM/PHP-$v_tpl.* $HESTIA/data/templates/web/$WEB_SYSTEM/
68+
cp -f "$HESTIA/install/$type/multiphp/${WEB_SYSTEM}/PHP-${v_tpl}".* "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/"
6369
done
64-
chmod a+x $HESTIA/data/templates/web/$WEB_SYSTEM/*.sh
70+
chmod a+x "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/"*.sh 2> /dev/null
71+
72+
# Create default TPL symlink when missing and point to the last php version found
73+
if [ ! -z $v_tpl ] && [ "$WEB_SYSTEM" = "nginx" ]; then
74+
[ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.sh" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.sh" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.sh"
75+
[ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.tpl" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.tpl" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.tpl"
76+
[ -e "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.stpl" ] || ln -s "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/PHP-${v_tpl}.stpl" "${HST_WEBTEMPLATES}/${WEB_SYSTEM}/default.stpl"
77+
fi
78+
fi
79+
80+
if [ "$PROXY_SYSTEM" = 'nginx' ] || [ "$php_versions" -le 1 ]; then
81+
cp -rf "${HESTIA}/install/${type}/templates/web/nginx" "${HST_WEBTEMPLATES}/"
6582
fi
6683

6784
# Rebuilding web domains

install/upgrade/0.9.8-28.sh

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ HESTIA="/usr/local/hestia"
33
HESTIA_BACKUP="/root/hst_upgrade/$(date +%d%m%Y%H%M)"
44
spinner="/-\|"
55

6+
function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
7+
68
# Set version(s)
79
pma_v='4.8.5'
810

@@ -11,31 +13,38 @@ if [ "$DB_SYSTEM" = 'mysql' ]; then
1113
# Display upgrade information
1214
echo "(*) Upgrading phpMyAdmin to v$pma_v..."
1315

14-
# Download latest phpMyAdmin release
15-
wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
16+
pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
17+
if version_ge "${pma_release_file##*-}" "$pma_v"; then
18+
echo "(*) phpMyAdmin $pma_v or newer is already installed: ${pma_release_file##*-}, skipping update..."
19+
else
20+
[ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
1621

17-
# Unpack files
18-
tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
22+
# Download latest phpMyAdmin release
23+
wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
1924

20-
# Delete file to prevent error
21-
rm -fr /usr/share/phpmyadmin/doc/html
25+
# Unpack files
26+
tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
2227

23-
# Overwrite old files
24-
cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
28+
# Delete file to prevent error
29+
rm -fr /usr/share/phpmyadmin/doc/html
2530

26-
# Set config and log directory
27-
sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
28-
sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
31+
# Overwrite old files
32+
cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
2933

30-
# Create temporary folder and change permissions
31-
if [ ! -d /usr/share/phpmyadmin/tmp ]; then
32-
mkdir /usr/share/phpmyadmin/tmp
33-
chmod 777 /usr/share/phpmyadmin/tmp
34-
fi
34+
# Set config and log directory
35+
sed -i "s|define('CONFIG_DIR', '');|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
36+
sed -i "s|define('TEMP_DIR', './tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
3537

36-
# Clean up
37-
rm -fr phpMyAdmin-$pma_v-all-languages
38-
rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
38+
# Create temporary folder and change permissions
39+
if [ ! -d /usr/share/phpmyadmin/tmp ]; then
40+
mkdir /usr/share/phpmyadmin/tmp
41+
chmod 777 /usr/share/phpmyadmin/tmp
42+
fi
43+
44+
# Clean up
45+
rm -fr phpMyAdmin-$pma_v-all-languages
46+
rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
47+
fi
3948
fi
4049

4150
# Add amd64 to repositories to prevent notifications - https://goo.gl/hmsSV7

install/upgrade/1.00.0-190618.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@ source /usr/local/hestia/conf/hestia.conf
1818
# Get hestia version
1919
version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
2020

21+
function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
22+
2123
# Compare version for upgrade routine
2224
if [ "$version" != "0.9.8-28" ]; then
2325
source $HESTIA/install/upgrade/0.9.8-28.sh
2426
fi
2527

28+
2629
# Set phpMyAdmin version for upgrade
2730
pma_v='4.9.0.1'
2831

@@ -135,7 +138,7 @@ if [ ! -e /etc/ssl/dhparam.pem ]; then
135138
fi
136139
done
137140
if [ ! -z "$resolver" ]; then
138-
sed -i "s/1.0.0.1 1.1.1.1/$dns_resolver/g" /etc/nginx/nginx.conf
141+
sed -i "s/1.0.0.1 1.1.1.1/$resolver/g" /etc/nginx/nginx.conf
139142
fi
140143

141144
# Restart Nginx service
@@ -403,11 +406,13 @@ done
403406

404407
# Upgrade phpMyAdmin if applicable
405408
if [ "$DB_SYSTEM" = 'mysql' ]; then
406-
if [ -e "/usr/share/phpmyadmin/RELEASE-DATE-$pma_v" ]; then
407-
echo "(*) phpMyAdmin $pma_v is already installed, skipping update..."
409+
pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
410+
if version_ge "${pma_release_file##*-}" "$pma_v"; then
411+
echo "(*) phpMyAdmin $pma_v or newer is already installed: ${pma_release_file##*-}, skipping update..."
408412
else
409413
# Display upgrade information
410414
echo "(*) Upgrade phpMyAdmin to v$pma_v..."
415+
[ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
411416

412417
# Download latest phpMyAdmin release
413418
wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz

0 commit comments

Comments
 (0)