wordpress_install/test.sh

54 lines
1.7 KiB
Bash

#!/bin/bash
# ====== CONFIGURATION ======
DB_NAME="wordpress"
DB_USER="wordpressuser"
DB_PASSWORD="Change-me123@!"
DB_ROOT_PASSWORD="RootSecure123!@#"
# ====== Update & Install Packages ======
apt update && apt upgrade -y
apt install -y apache2 mysql-server php libapache2-mod-php php-mysql curl rsync unzip expect
mysql_secure_installation
# ====== Create WordPress Database and User ======
mysql <<MYSQL_SCRIPT
CREATE DATABASE ${DB_NAME};
CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
MYSQL_SCRIPT
# ====== Download and Configure WordPress ======
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
# Replace DB credentials in wp-config.php
sed -i "s/database_name_here/${DB_NAME}/" /tmp/wordpress/wp-config.php
sed -i "s/username_here/${DB_USER}/" /tmp/wordpress/wp-config.php
sed -i "s/password_here/${DB_PASSWORD}/" /tmp/wordpress/wp-config.php
# Fetch and set WordPress salts
SALTS=$(curl -s https://api.wordpress.org/secret-key/1.1/salt/)
if [ -n "$SALTS" ]; then
sed -i "/AUTH_KEY/d;/SECURE_AUTH_KEY/d;/LOGGED_IN_KEY/d;/NONCE_KEY/d;/AUTH_SALT/d;/SECURE_AUTH_SALT/d;/LOGGED_IN_SALT/d;/NONCE_SALT/d" /tmp/wordpress/wp-config.php
echo "$SALTS" | tee -a /tmp/wordpress/wp-config.php > /dev/null
else
echo "⚠️ Failed to fetch salts from WordPress API."
fi
# ====== Deploy WordPress ======
rsync -avP /tmp/wordpress/ /var/www/html/
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
rm -f /var/www/html/index.html
# ====== Restart Apache ======
systemctl restart apache2
echo "✅ WordPress installation completed successfully."