Skip to content

Commit 0837161

Browse files
author
Kristan Kenney
committed
Fix behavior of phpMyAdmin/phpPgAdmin aliases (hestiacp#790)
* Introduce v-change-sys-db-alias command to change PMA/PGA alias and vhost configuration * Behavior now aligns with webmail alias. * Fix buttons set to wrong URL when alias was set
1 parent d489b4c commit 0837161

File tree

16 files changed

+174
-129
lines changed

16 files changed

+174
-129
lines changed

bin/v-change-sys-db-alias

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#!/bin/bash
2+
# info: change phpmyadmin/phppgadmin alias url
3+
# options: type alias
4+
# example: v-change-sys-db-alias pma phpmyadmin
5+
# Sets phpMyAdmin alias to phpmyadmin
6+
#
7+
# example: v-change-sys-db-alias pga phppgadmin
8+
# Sets phpPgAdmin alias to phppgadmin
9+
#
10+
# This function changes the database editor url in
11+
# apache2 or nginx configuration.
12+
13+
14+
#----------------------------------------------------------#
15+
# Variable&Function #
16+
#----------------------------------------------------------#
17+
18+
# Argument definition
19+
type=$1
20+
alias=$2
21+
22+
# Includes
23+
source $HESTIA/func/main.sh
24+
source $HESTIA/conf/hestia.conf
25+
26+
27+
#----------------------------------------------------------#
28+
# Verifications #
29+
#----------------------------------------------------------#
30+
31+
check_args '2' "$#" 'type alias'
32+
33+
# Perform verification if read-only mode is enabled
34+
check_hestia_demo_mode
35+
36+
37+
#----------------------------------------------------------#
38+
# Action #
39+
#----------------------------------------------------------#
40+
41+
# Detect common allowed entries for phpMyAdmin
42+
if [ "$type" = "pma" ] || [ "$type" = "PMA" ] || [ "$type" = "phpmyadmin" ]; then
43+
# Set database editor friendly name
44+
db_editor="phpMyAdmin"
45+
46+
# Set new alias value
47+
$BIN/v-change-sys-config-value 'DB_PMA_ALIAS' "$alias"
48+
49+
# Replace old configuration files and update alias
50+
if [ -e "/etc/apache2/conf.d/phpmyadmin.conf" ]; then
51+
rm -f /etc/apache2/conf.d/phpmyadmin.conf
52+
cp -f $HESTIA_INSTALL_DIR/pma/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
53+
sed -i "s|%pma_alias%|$alias|g" /etc/apache2/conf.d/phpmyadmin.conf
54+
55+
# Restart services
56+
$HESTIA/bin/v-restart-service apache2
57+
fi
58+
59+
if [ -e "/etc/nginx/conf.d/phpmyadmin.inc" ]; then
60+
rm -f /etc/nginx/conf.d/phpmyadmin.inc
61+
cp -f $HESTIA_INSTALL_DIR/nginx/phpmyadmin.inc /etc/nginx/conf.d/phpmyadmin.inc
62+
sed -i "s|%pma_alias%|$alias|g" /etc/nginx/conf.d/phpmyadmin.inc
63+
64+
# Restart services
65+
$HESTIA/bin/v-restart-service nginx
66+
fi
67+
fi
68+
69+
# Detect common allowed entries for phpPgAdmin
70+
if [ "$type" = "pga" ] || [ "$type" = "PGA" ] || [ "$type" = "phppgadmin" ]; then
71+
# Set database editor friendly name
72+
db_editor="phpPgAdmin"
73+
74+
# Set new alias value
75+
$BIN/v-change-sys-config-value 'DB_PGA_ALIAS' "$alias"
76+
77+
# Replace old configuration files and update alias
78+
if [ -e "/etc/apache2/conf.d/phppgadmin.conf" ]; then
79+
rm -f /etc/apache2/conf.d/phppgadmin.conf
80+
cp -f $HESTIA_INSTALL_DIR/pga/phppgadmin.conf /etc/apache2/conf.d/phppgadmin.conf
81+
sed -i "s|%pga_alias%|$alias|g" /etc/apache2/conf.d/phppgadmin.conf
82+
83+
# Restart services
84+
$HESTIA/bin/v-restart-service apache2
85+
fi
86+
87+
if [ -e "/etc/nginx/conf.d/phppgadmin.inc" ]; then
88+
rm -f /etc/nginx/conf.d/phppgadmin.inc
89+
cp -f $HESTIA_INSTALL_DIR/nginx/phppgadmin.inc /etc/nginx/conf.d/phppgadmin.inc
90+
sed -i "s|%pga_alias%|$alias|g" /etc/nginx/conf.d/phppgadmin.inc
91+
92+
# Restart services
93+
$HESTIA/bin/v-restart-service nginx
94+
fi
95+
fi
96+
97+
98+
#----------------------------------------------------------#
99+
# Hestia #
100+
#----------------------------------------------------------#
101+
102+
# Logging
103+
log_history "changed $db_editor alias to $alias"
104+
log_event "$OK" "$ARGUMENTS"
105+
106+
exit

bin/v-change-sys-pma

Lines changed: 0 additions & 88 deletions
This file was deleted.

bin/v-list-sys-config

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ json_list() {
5050
"BACKUP_GZIP": "'$BACKUP_GZIP'",
5151
"BACKUP": "'$BACKUP'",
5252
"WEBMAIL_ALIAS": "'$WEBMAIL_ALIAS'",
53-
"DB_PMA_URL": "'$DB_PMA_URL'",
54-
"DB_PGA_URL": "'$DB_PGA_URL'",
53+
"DB_PMA_ALIAS": "'$DB_PMA_ALIAS'",
54+
"DB_PGA_ALIAS": "'$DB_PGA_ALIAS'",
5555
"SOFTACULOUS": "'$SOFTACULOUS'"
5656
}
5757
}'
@@ -94,11 +94,11 @@ shell_list() {
9494
fi
9595
if [ ! -z "$DB_SYSTEM" ]; then
9696
echo "Database: ${DB_SYSTEM//,/, }"
97-
if [ ! -z "$DB_PMA_URL" ]; then
98-
echo "PMA URL: $DB_PMA_URL"
97+
if [ ! -z "$DB_PMA_ALIAS" ]; then
98+
echo "PMA ALIAS: $DB_PMA_ALIAS"
9999
fi
100-
if [ ! -z "$DB_PGA_URL" ]; then
101-
echo "PGA URL: $DB_PGA_URL"
100+
if [ ! -z "$DB_PGA_ALIAS" ]; then
101+
echo "PGA ALIAS: $DB_PGA_ALIAS"
102102
fi
103103
fi
104104
if [ ! -z "$DNS_SYSTEM" ]; then
@@ -147,7 +147,7 @@ plain_list() {
147147
echo -ne "$DNS_SYSTEM\t$DNS_CLUSTER\t$STATS_SYSTEM\t$BACKUP_SYSTEM\t"
148148
echo -ne "$CRON_SYSTEM\t$DISK_QUOTA\t$FIREWALL_SYSTEM\t$FIREWALL_EXTENSION\t"
149149
echo -ne "$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t$THEME\t$LANGUAGE\t"
150-
echo -e "$BACKUP_GZIP\t$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL"
150+
echo -e "$BACKUP_GZIP\t$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_ALIAS\t$DB_PGA_ALIAS"
151151
}
152152

153153

@@ -161,7 +161,7 @@ csv_list() {
161161
echo -n "'CRON_SYSTEM','DISK_QUOTA','FIREWALL_SYSTEM',"
162162
echo -n "'FIREWALL_EXTENSION','REPOSITORY',"
163163
echo -n "'VERSION','LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
164-
echo -n "'DB_PMA_URL','DB_PGA_URL'"
164+
echo -n "'DB_PMA_ALIAS','DB_PGA_ALIAS'"
165165
echo
166166
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
167167
echo -n "'$WEB_SSL_PORT','$WEB_BACKEND','$PROXY_SYSTEM','$PROXY_PORT',"
@@ -170,7 +170,7 @@ csv_list() {
170170
echo -n "'$DNS_CLUSTER','$STATS_SYSTEM','$BACKUP_SYSTEM','$CRON_SYSTEM',"
171171
echo -n "'$DISK_QUOTA','$FIREWALL_SYSTEM','$REPOSITORY','$FIREWALL_EXTENSION',"
172172
echo -n "'$VERSION','$DEMO_MODE','$RELEASE_BRANCH','$THEME','$LANGUAGE',"
173-
echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_URL','$DB_PGA_URL'"
173+
echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_ALIAS','$DB_PGA_ALIAS'"
174174
echo
175175
}
176176

install/deb/nginx/phpmyadmin.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
location /phpmyadmin {
1+
location /%pma_alias% {
22
alias /usr/share/phpmyadmin/;
33

44
location ~ /(libraries|setup) {

install/deb/nginx/phppgadmin.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
location /phppgadmin {
1+
location /%pga_alias% {
22
alias /usr/share/phppgadmin/;
33

44
location ~ ^/phppgadmin/(.*\.php)$ {

install/deb/pga/phppgadmin.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Alias /phppgadmin /usr/share/phppgadmin
1+
Alias /%pga_alias% /usr/share/phppgadmin
22

33
<Directory /usr/share/phppgadmin>
44

install/deb/pma/apache.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# phpMyAdmin default Apache configuration
22

3-
Alias /phpmyadmin /usr/share/phpmyadmin
3+
Alias /%pma_alias% /usr/share/phpmyadmin
44

55
<Directory /usr/share/phpmyadmin>
66
Options FollowSymLinks

install/hst-install-debian.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,6 +1425,9 @@ if [ "$mysql" = 'yes' ]; then
14251425
# Clear Up
14261426
rm -fr phpMyAdmin-$pma_v-all-languages
14271427
rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
1428+
1429+
echo "DB_PMA_ALIAS='phpmyadmin'" >> $HESTIA/conf/hestia.conf
1430+
$HESTIA/bin/v-change-sys-db-alias 'pma' "phpmyadmin"
14281431
fi
14291432

14301433

@@ -1444,6 +1447,9 @@ if [ "$postgresql" = 'yes' ]; then
14441447
cp -f $HESTIA_INSTALL_DIR/pga/phppgadmin.conf /etc/apache2/conf.d/
14451448
fi
14461449
cp -f $HESTIA_INSTALL_DIR/pga/config.inc.php /etc/phppgadmin/
1450+
1451+
echo "DB_PGA_ALIAS='phppgadmin'" >> $HESTIA/conf/hestia.conf
1452+
$HESTIA/bin/v-change-sys-db-alias 'pga' "phppgadmin"
14471453
fi
14481454

14491455

install/hst-install-ubuntu.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,6 +1457,9 @@ if [ "$mysql" = 'yes' ]; then
14571457
# Clear Up
14581458
rm -fr phpMyAdmin-$pma_v-all-languages
14591459
rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
1460+
1461+
echo "DB_PMA_ALIAS='phpmyadmin'" >> $HESTIA/conf/hestia.conf
1462+
$HESTIA/bin/v-change-sys-db-alias 'pma' "phpmyadmin"
14601463
fi
14611464

14621465

@@ -1476,6 +1479,9 @@ if [ "$postgresql" = 'yes' ]; then
14761479
cp -f $HESTIA_INSTALL_DIR/pga/phppgadmin.conf /etc/apache2/conf.d/
14771480
fi
14781481
cp -f $HESTIA_INSTALL_DIR/pga/config.inc.php /etc/phppgadmin/
1482+
1483+
echo "DB_PMA_ALIAS='phppgadmin'" >> $HESTIA/conf/hestia.conf
1484+
$HESTIA/bin/v-change-sys-db-alias 'pga' "phppgadmin"
14791485
fi
14801486

14811487

install/upgrade/versions/latest.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,22 @@ done
173173
if [ -e /var/lib/phpmyadmin/blowfish_secret.inc.php ]; then
174174
echo "(*) Updating phpMyAdmin permissions..."
175175
chmod 0644 /var/lib/phpmyadmin/blowfish_secret.inc.php
176-
fi
176+
fi
177+
178+
# Add phpMyAdmin/phpPgAdmin aliases to hestia.conf and correct configuration/templates
179+
if [ -e "/var/lib/phpmyadmin" ]; then
180+
PMA_ALIAS_CHECK=$(cat $HESTIA/conf/hestia.conf | grep DB_PMA_ALIAS)
181+
if [ -z "$PMA_ALIAS_CHECK" ]; then
182+
echo "(*) Updating phpMyAdmin alias..."
183+
$HESTIA/bin/v-change-sys-db-alias "pma" "phpmyadmin"
184+
fi
185+
fi
186+
187+
if [ -e "/var/lib/phppgadmin" ]; then
188+
PGA_ALIAS_CHECK=$(cat $HESTIA/conf/hestia.conf | grep DB_PGA_ALIAS)
189+
if [ -z "$PGA_ALIAS_CHECK" ]; then
190+
echo "(*) Updating phpPgAdmin alias..."
191+
$HESTIA/bin/v-change-sys-db-alias "pga" "phppgadmin"
192+
fi
193+
fi
194+

0 commit comments

Comments
 (0)