|
|
@@ -9,7 +9,10 @@ hestia_module_mariadb_install() {
|
|
|
fi
|
|
|
|
|
|
echo "Installing database (MariaDB) module..."
|
|
|
- mariadb_v='10.4'
|
|
|
+ local mariadb_v='10.4'
|
|
|
+
|
|
|
+ osal_service_stop $OSAL_SERVICE_MARIADB > /dev/null 2>&1
|
|
|
+ hestia_config_backup 'mariadb-install' $OSAL_PATH_MARIADB_CONF $OSAL_DIR_MARIADB_CONF_D $OSAL_PATH_MARIADB_DATA
|
|
|
|
|
|
if [ "$OS_TYPE" == 'ubuntu' ]; then
|
|
|
echo "deb [arch=amd64] http://ams2.mirrors.digitalocean.com/mariadb/repo/$mariadb_v/$OS_TYPE $OS_CODENAME main" > $apt/mariadb.list
|
|
|
@@ -21,48 +24,65 @@ hestia_module_mariadb_install() {
|
|
|
else
|
|
|
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F1656F24C74CD1D8 > /dev/null 2>&1
|
|
|
fi
|
|
|
- else
|
|
|
-
|
|
|
+ elif [ "$OS_TYPE" == 'centos' ]; then
|
|
|
+ # Remove conflicting OS-provided packages
|
|
|
+ osal_package_remove mariadb-server mariadb-gssapi-server
|
|
|
+
|
|
|
+ cat > "/etc/yum.repos.d/mariadb.repo" <<EOL
|
|
|
+# This file is auto generated. Do not edit this file. Changes will be overwriten
|
|
|
+# Run 'hestia module mariadb info' or visit http://hestiacp.com for more info.
|
|
|
+# http://downloads.mariadb.org/mariadb/repositories/
|
|
|
+[mariadb]
|
|
|
+name = MariaDB
|
|
|
+baseurl = http://yum.mariadb.org/${mariadb_v}/${OS_TYPE}${OS_VERSION}-amd64
|
|
|
+module_hotfixes=1
|
|
|
+gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
|
|
|
+gpgcheck=1
|
|
|
+EOL
|
|
|
fi
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- osal_service_stop $OSAL_SERVICE_MARIADB > /dev/null 2>&1
|
|
|
- hestia_config_backup 'mariadb-install' $OSAL_PATH_MARIADB_CONF
|
|
|
-
|
|
|
osal_package_preinstall
|
|
|
- osal_package_install $OSAL_PKG_MARIADB
|
|
|
-
|
|
|
- gpasswd -a $OSAL_USER_MARIADB mail > /dev/null 2>&1
|
|
|
+ osal_package_install ${OSAL_PKG_MARIADB}-server ${OSAL_PKG_MARIADB}-client ${OSAL_PKG_MARIADB}-common
|
|
|
|
|
|
- if [ "$OS_BASE" = 'debian' ]; then
|
|
|
- cp -f $HESTIA_INSTALL_DIR/mariadb/${OSAL_PKG_MARIADB}.conf.template $OSAL_PATH_MARIADB_CONF/
|
|
|
- chmod 640 $OSAL_PATH_MARIADB_CONF/${OSAL_PKG_MARIADB}.conf.template
|
|
|
- else
|
|
|
- cp -f $HESTIA_INSTALL_DIR/mariadb/${OSAL_PKG_MARIADB}.conf $OSAL_PATH_MARIADB_CONF/
|
|
|
- chmod 640 $OSAL_PATH_MARIADB_CONF/${OSAL_PKG_MARIADB}.conf
|
|
|
+ local memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9])
|
|
|
+ local mycnf="my-small.cnf"
|
|
|
+ if [ $memory -gt 1200000 ]; then
|
|
|
+ mycnf="my-medium.cnf"
|
|
|
+ fi
|
|
|
+ if [ $memory -gt 3900000 ]; then
|
|
|
+ mycnf="my-large.cnf"
|
|
|
fi
|
|
|
|
|
|
- cp -f $HESTIA_INSTALL_DIR/mariadb/dnsbl.conf $OSAL_PATH_MARIADB_CONF/
|
|
|
- cp -f $HESTIA_INSTALL_DIR/mariadb/spam-blocks.conf $OSAL_PATH_MARIADB_CONF/
|
|
|
- touch $OSAL_PATH_MARIADB_CONF/white-blocks.conf
|
|
|
- touch $OSAL_PATH_MARIADB_CONF/mailhelo.conf
|
|
|
-
|
|
|
- hestia_safe_rm $OSAL_PATH_MARIADB_CONF/domains
|
|
|
- mkdir -p $OSAL_PATH_MARIADB_CONF/domains
|
|
|
+ # Configuring MariaDB
|
|
|
+ cp -f $HESTIA_INSTALL_DIR/mysql/$mycnf $OSAL_DIR_MARIADB_CONF/my.cnf
|
|
|
+ if [ ! -d $OSAL_PATH_MARIADB_DATA ]; then
|
|
|
+ mysql_install_db > /dev/null
|
|
|
+ fi
|
|
|
|
|
|
- hestia_safe_rm /etc/alternatives/mydb
|
|
|
- ln -s /usr/sbin/$OSAL_PKG_MARIADB /etc/alternatives/mydb
|
|
|
-
|
|
|
- osal_service_stop sendmail > /dev/nul 2>&1
|
|
|
- osal_service_disable sendmail > /dev/nul 2>&1
|
|
|
- osal_service_stop postfix > /dev/nul 2>&1
|
|
|
- osal_service_disable postfix > /dev/nul 2>&1
|
|
|
+ mkdir -p /var/run/mysqld
|
|
|
+ chown mysql:mysql /var/run/mysqld
|
|
|
|
|
|
osal_service_enable $OSAL_SERVICE_MARIADB
|
|
|
osal_service_start $OSAL_SERVICE_MARIADB
|
|
|
- check_result $? "Mariadb start failed"
|
|
|
+ check_result $? "MariaDB start failed"
|
|
|
+
|
|
|
+ if [ ! -f /root/.my.cnf ]; then
|
|
|
+ # If /root/.my.cnf does not exist, secure MariaDB by setting root password
|
|
|
+ local mariadb_root_password=$(osal_gen_pass)
|
|
|
+ mysqladmin -u root password $mariadb_root_password
|
|
|
+ echo -e "[client]\npassword='$mariadb_root_password'\n" > /root/.my.cnf
|
|
|
+ chmod 600 /root/.my.cnf
|
|
|
+ fi
|
|
|
+
|
|
|
+ mysql_upgrade > /dev/null
|
|
|
+
|
|
|
+ # Clear MariaDB test users and databases
|
|
|
+ # FIXME: MariaDB 10.4 and up use global_priv
|
|
|
+ mysql -e "DELETE FROM mysql.user WHERE User=''" > /dev/null 2>&1
|
|
|
+ mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" > /dev/null 2>&1
|
|
|
+ mysql -e "DELETE FROM mysql.user WHERE user='';" > /dev/null 2>&1
|
|
|
+ mysql -e "DELETE FROM mysql.user WHERE password='' AND authentication_string='';" > /dev/null 2>&1
|
|
|
+ mysql -e "DROP DATABASE test" > /dev/null 2>&1
|
|
|
|
|
|
osal_kv_write $HESTIA/conf/hestia.conf 'DB_SYSTEM' 'mysql'
|
|
|
osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'installed' '1'
|
|
|
@@ -71,22 +91,4 @@ hestia_module_mariadb_install() {
|
|
|
osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'variant' 'mariadb'
|
|
|
osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'version' '1'
|
|
|
osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'service_name' $OSAL_PKG_MARIADB
|
|
|
-
|
|
|
- # Rebuild mail
|
|
|
- for user in $($HESTIA/bin/v-list-sys-users plain); do
|
|
|
- echo "Rebuilding mail domains for user $user"
|
|
|
- $BIN/v-rebuild-mail-domains $user 'no' >/dev/null 2>&1
|
|
|
- done
|
|
|
-
|
|
|
- # Setup ClamAv integration
|
|
|
- clamav_installed=$(hestia_module_variant_installed 'antivirus' 'clamav')
|
|
|
- if [ "$clamav_installed" ]; then
|
|
|
- $BIN/hestia module clamav mariadb-integration enable
|
|
|
- fi
|
|
|
-
|
|
|
- # Setup SpamAssassin integration
|
|
|
- spamassassin_installed=$(hestia_module_variant_installed 'antispam' 'spamassassin')
|
|
|
- if [ "$spamassassin_installed" ]; then
|
|
|
- $BIN/hestia module spamassassin mariadb-integration enable
|
|
|
- fi
|
|
|
}
|