Skip to content

Commit 62adf2a

Browse files
authored
hestiacp#3318 Remove: decrepitation warning MariaDB (hestiacp#3465)
* hestiacp#3318 Remove: decrepitation warning MariaDB mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead Fix some more locations Clean up version check v-list-sys-services From 10.4 and up it works fine... 10.4 and lower didn't work Fix check * Add php8.1 test
1 parent a74a7c9 commit 62adf2a

File tree

7 files changed

+100
-38
lines changed

7 files changed

+100
-38
lines changed

bin/v-list-sys-services

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -234,24 +234,29 @@ if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then
234234
for db in ${DB_SYSTEM//,/ }; do
235235
service="$db"
236236
proc_name=''
237+
mysql="/usr/bin/mysql"
238+
if [ -f '/usr/bin/mariadb' ]; then
239+
mysql="/usr/bin/mariadb"
240+
fi
237241
if [ "$service" = 'mysql' ]; then
238-
mysql_version=$(mysql -V)
242+
mysql_version=$($mysql -V)
239243
mariadb_string="MariaDB"
240244
if [[ ! $mysql_version =~ $mariadb_string ]]; then
241245
# MySQL
242246
service='mysql'
243247
proc_name='mysqld'
244248
else
245-
# MariaDB
246-
if [ -e "/lib/systemd/system/mariadb.service" ]; then
247-
service='mariadb'
248-
proc_name='mysqld'
249-
fi
250-
if [ -f /usr/bin/mysql ]; then
251-
mariadb_v=$(mysql -V | awk 'NR==1{print $5}' | cut -d'.' -f2)
252-
if [ $mariadb_v -ge "5" ]; then
253-
service='mariadb'
254-
proc_name='mariadbd'
249+
service='mariadb'
250+
proc_name='mariadbd'
251+
# MariaDB 10.4 and lower
252+
if [ -f $mysql ]; then
253+
mariadb_v=$($mysql -V | awk 'NR==1{print $5}')
254+
if [[ $mariadb_v =~ $mariadb_string ]]; then
255+
mariadb_v=$(echo $mariadb_v | cut -f2 -d'.')
256+
if [ $mariadb_v -le "4" ]; then
257+
service='mariadb'
258+
proc_name='mysqld'
259+
fi
255260
fi
256261
fi
257262
fi

func/db.sh

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ mysql_connect() {
6565
fi
6666
fi
6767
mysql_out=$(mktemp)
68-
mysql --defaults-file=$mycnf -e 'SELECT VERSION()' > $mysql_out 2>&1
68+
if [ -f '/usr/bin/mariadb' ]; then
69+
mariadb --defaults-file=$mycnf -e 'SELECT VERSION()' > $mysql_out 2>&1
70+
else
71+
mysql --defaults-file=$mycnf -e 'SELECT VERSION()' > $mysql_out 2>&1
72+
fi
6973
if [ '0' -ne "$?" ]; then
7074
if [ "$notify" != 'no' ]; then
7175
email=$(grep CONTACT $HESTIA/data/users/admin/user.conf | cut -f 2 -d \')
@@ -90,17 +94,26 @@ mysql_connect() {
9094
mysql_query() {
9195
sql_tmp=$(mktemp)
9296
echo "$1" > $sql_tmp
93-
mysql --defaults-file=$mycnf < "$sql_tmp" 2> /dev/null
94-
return_code=$?
97+
if [ -f '/usr/bin/mariadb' ]; then
98+
mariadb --defaults-file=$mycnf < "$sql_tmp" 2> /dev/null
99+
return_code=$?
100+
else
101+
mysql --defaults-file=$mycnf < "$sql_tmp" 2> /dev/null
102+
return_code=$?
103+
fi
95104
rm -f "$sql_tmp"
96105
return $return_code
97106
}
98107

99108
mysql_dump() {
100109
err="/tmp/e.mysql"
101-
mysqldump --defaults-file=$mycnf --single-transaction --routines -r $1 $2 2> $err
110+
mysqldmp="mysqldump"
111+
if [ -f '/usr/bin/mariadb-dump' ]; then
112+
mysqldmp="/usr/bin/mariadb-dump"
113+
fi
114+
$mysqldmp --defaults-file=$mycnf --single-transaction --routines -r $1 $2 2> $err
102115
if [ '0' -ne "$?" ]; then
103-
mysqldump --defaults-extra-file=$mycnf --single-transaction --routines -r $1 $2 2> $err
116+
$mysqldmp --defaults-extra-file=$mycnf --single-transaction --routines -r $1 $2 2> $err
104117
if [ '0' -ne "$?" ]; then
105118
rm -rf $tmpdir
106119
if [ "$notify" != 'no' ]; then

func/rebuild.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -893,8 +893,12 @@ import_mysql_database() {
893893
log_event "$E_PARSING" "$ARGUMENTS"
894894
exit "$E_PARSING"
895895
fi
896+
if [ -f '/usr/bin/mariadb' ]; then
897+
mariadb -h $HOST -u $USER -p$PASSWORD $DB < $1 > /dev/null 2>&1
898+
else
899+
mysql -h $HOST -u $USER -p$PASSWORD $DB < $1 > /dev/null 2>&1
900+
fi
896901

897-
mysql -h $HOST -u $USER -p$PASSWORD $DB < $1 > /dev/null 2>&1
898902
}
899903

900904
# Import PostgreSQL dump

install/deb/phpmyadmin/pma.sh

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,24 @@ PMAUSER=pma
5555
# MYSQL_PMA1
5656

5757
#CREATE PMA USER
58-
mysql -uroot << MYSQL_PMA2
58+
if [ -f '/usr/bin/mariadb' ]; then
59+
mysql="mariadb"
60+
else
61+
mysql="mysql"
62+
fi
63+
64+
$mysql -uroot << MYSQL_PMA2
5965
CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
6066
CREATE DATABASE $PMADB;
6167
MYSQL_PMA2
6268

6369
#GRANT PMA USE SOME RIGHTS
64-
mysql -uroot << MYSQL_PMA3
70+
$mysql -uroot << MYSQL_PMA3
6571
USE $PMADB;
6672
GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
6773
GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';
6874
FLUSH PRIVILEGES;
6975
MYSQL_PMA3
7076

7177
#MYSQL DB and TABLES ADDITION
72-
mysql -uroot < "$HESTIA_INSTALL_DIR/phpmyadmin/create_tables.sql"
78+
$mysql -uroot < "$HESTIA_INSTALL_DIR/phpmyadmin/create_tables.sql"

install/hst-install-debian.sh

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,23 +1554,28 @@ if [ "$mysql" = 'yes' ] || [ "$mysqlclassic" = 'yes' ]; then
15541554
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
15551555
chmod 600 /root/.my.cnf
15561556

1557+
if [ -f '/usr/bin/mariadb' ]; then
1558+
mysql="mariadb"
1559+
else
1560+
mysql="mysql"
1561+
fi
15571562
# Alter root password
1558-
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mpass'; FLUSH PRIVILEGES;"
1563+
$mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mpass'; FLUSH PRIVILEGES;"
15591564
if [ "$mysql_type" = 'MariaDB' ]; then
15601565
# Allow mysql access via socket for startup
1561-
mysql -e "UPDATE mysql.global_priv SET priv=json_set(priv, '$.password_last_changed', UNIX_TIMESTAMP(), '$.plugin', 'mysql_native_password', '$.authentication_string', 'invalid', '$.auth_or', json_array(json_object(), json_object('plugin', 'unix_socket'))) WHERE User='root';"
1566+
$mysql -e "UPDATE mysql.global_priv SET priv=json_set(priv, '$.password_last_changed', UNIX_TIMESTAMP(), '$.plugin', 'mysql_native_password', '$.authentication_string', 'invalid', '$.auth_or', json_array(json_object(), json_object('plugin', 'unix_socket'))) WHERE User='root';"
15621567
# Disable anonymous users
1563-
mysql -e "DELETE FROM mysql.global_priv WHERE User='';"
1568+
$mysql -e "DELETE FROM mysql.global_priv WHERE User='';"
15641569
else
1565-
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '$mpass';"
1566-
mysql -e "DELETE FROM mysql.user WHERE User='';"
1567-
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
1570+
$mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '$mpass';"
1571+
$mysql -e "DELETE FROM mysql.user WHERE User='';"
1572+
$mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
15681573
fi
15691574
# Drop test database
1570-
mysql -e "DROP DATABASE IF EXISTS test"
1571-
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
1575+
$mysql -e "DROP DATABASE IF EXISTS test"
1576+
$mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
15721577
# Flush privileges
1573-
mysql -e "FLUSH PRIVILEGES;"
1578+
$mysql -e "FLUSH PRIVILEGES;"
15741579
fi
15751580

15761581
#----------------------------------------------------------#

install/hst-install-ubuntu.sh

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1597,23 +1597,28 @@ if [ "$mysql" = 'yes' ] || [ "$mysqlclassic" = 'yes' ]; then
15971597
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
15981598
chmod 600 /root/.my.cnf
15991599

1600+
if [ -f '/usr/bin/mariadb' ]; then
1601+
mysql="mariadb"
1602+
else
1603+
mysql="mysql"
1604+
fi
16001605
# Alter root password
1601-
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mpass'; FLUSH PRIVILEGES;"
1606+
$mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mpass'; FLUSH PRIVILEGES;"
16021607
if [ "$mysql_type" = 'MariaDB' ]; then
16031608
# Allow mysql access via socket for startup
1604-
mysql -e "UPDATE mysql.global_priv SET priv=json_set(priv, '$.password_last_changed', UNIX_TIMESTAMP(), '$.plugin', 'mysql_native_password', '$.authentication_string', 'invalid', '$.auth_or', json_array(json_object(), json_object('plugin', 'unix_socket'))) WHERE User='root';"
1609+
$mysql -e "UPDATE mysql.global_priv SET priv=json_set(priv, '$.password_last_changed', UNIX_TIMESTAMP(), '$.plugin', 'mysql_native_password', '$.authentication_string', 'invalid', '$.auth_or', json_array(json_object(), json_object('plugin', 'unix_socket'))) WHERE User='root';"
16051610
# Disable anonymous users
1606-
mysql -e "DELETE FROM mysql.global_priv WHERE User='';"
1611+
$mysql -e "DELETE FROM mysql.global_priv WHERE User='';"
16071612
else
1608-
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '$mpass';"
1609-
mysql -e "DELETE FROM mysql.user WHERE User='';"
1610-
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
1613+
$mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '$mpass';"
1614+
$mysql -e "DELETE FROM mysql.user WHERE User='';"
1615+
$mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
16111616
fi
16121617
# Drop test database
1613-
mysql -e "DROP DATABASE IF EXISTS test"
1614-
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
1618+
$mysql -e "DROP DATABASE IF EXISTS test"
1619+
$mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
16151620
# Flush privileges
1616-
mysql -e "FLUSH PRIVILEGES;"
1621+
$mysql -e "FLUSH PRIVILEGES;"
16171622
fi
16181623

16191624
#----------------------------------------------------------#

test/test.bats

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,30 @@ function check_ip_not_banned(){
10991099
rm $HOMEDIR/$user/web/$multi_domain/public_html/php-test.php
11001100
}
11011101

1102+
@test "Multiphp: Change backend version - PHP v8.2" {
1103+
test_phpver='8.2'
1104+
multi_domain="multiphp.${domain}"
1105+
1106+
if [ ! -d "/etc/php/${test_phpver}/fpm/pool.d/" ]; then
1107+
skip "PHP ${test_phpver} not installed"
1108+
fi
1109+
1110+
run v-change-web-domain-backend-tpl $user $multi_domain 'PHP-8_2' 'yes'
1111+
assert_success
1112+
refute_output
1113+
1114+
# Changing web backend will create a php-fpm pool config in the corresponding php folder
1115+
assert_file_exist "/etc/php/${test_phpver}/fpm/pool.d/${multi_domain}.conf"
1116+
1117+
# A single php-fpm pool config file must be present
1118+
num_fpm_config_files="$(find -L /etc/php/ -name "${multi_domain}.conf" | wc -l)"
1119+
assert_equal "$num_fpm_config_files" '1'
1120+
1121+
echo -e "<?php\necho 'hestia-multiphptest:'.PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;" > "$HOMEDIR/$user/web/$multi_domain/public_html/php-test.php"
1122+
validate_web_domain $user $multi_domain "hestia-multiphptest:$test_phpver" 'php-test.php'
1123+
rm $HOMEDIR/$user/web/$multi_domain/public_html/php-test.php
1124+
}
1125+
11021126
@test "Multiphp: Cleanup" {
11031127
multi_domain="multiphp.${domain}"
11041128

0 commit comments

Comments
 (0)