Update setup_server_laravel.sh

This commit is contained in:
HHF Technology 2024-12-01 15:22:44 +05:30
parent 53308155d4
commit 80859182a9

View file

@ -256,16 +256,22 @@ done
if ! command -v mysql &> /dev/null; then if ! command -v mysql &> /dev/null; then
log_message "INFO" "Installing MySQL..." log_message "INFO" "Installing MySQL..."
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
# Pre-set root password
debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD" debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD" debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"
# Install MySQL
apt-get install -y mysql-server apt-get install -y mysql-server
check_command_status "MySQL installation"
# Secure MySQL installation # Secure MySQL installation
mysql -e "DELETE FROM mysql.user WHERE User='';" mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$MYSQL_ROOT_PASSWORD';"
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "DROP DATABASE IF EXISTS test;" mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "DROP DATABASE IF EXISTS test;"
mysql -e "FLUSH PRIVILEGES;" mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "FLUSH PRIVILEGES;"
# Optimize MySQL configuration # Optimize MySQL configuration
cat >> /etc/mysql/mysql.conf.d/mysqld.cnf << 'ENDOFMYSQL' cat >> /etc/mysql/mysql.conf.d/mysqld.cnf << 'ENDOFMYSQL'
@ -277,10 +283,18 @@ innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT innodb_flush_method = O_DIRECT
ENDOFMYSQL ENDOFMYSQL
# Restart MySQL to apply changes
systemctl restart mysql systemctl restart mysql
check_command_status "MySQL restart"
# Save MySQL password
log_message "INFO" "MySQL root password: $MYSQL_ROOT_PASSWORD" log_message "INFO" "MySQL root password: $MYSQL_ROOT_PASSWORD"
echo "$MYSQL_ROOT_PASSWORD" > "/var/www/html/mysql_password.txt" echo "$MYSQL_ROOT_PASSWORD" > "/var/www/html/mysql_password.txt"
chmod 600 "/var/www/html/mysql_password.txt" chmod 600 "/var/www/html/mysql_password.txt"
log_message "INFO" "MySQL installation and configuration completed successfully"
else
log_message "INFO" "MySQL is already installed, skipping installation"
fi fi
# Setup Laravel Cron Jobs # Setup Laravel Cron Jobs