#!/bin/bash # ====== CONFIGURATION ====== HOSTNAME="10.28.24.47" # IP-based access SITE_CONF="/etc/apache2/sites-available/wordpress.conf" WEB_ROOT="/srv/www/wordpress" DB_PASSWORD="changeme123" # ============================ # Update system apt update apt upgrade -y # Install required packages apt install -y apache2 ghostscript libapache2-mod-php mysql-server php php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip # Create WordPress directory and download mkdir -p /srv/www chown www-data: /srv/www curl https://wordpress.org/latest.tar.gz | sudo -u www-data tar zx -C /srv/www # Configure Apache VirtualHost cat << EOF | sudo tee "$SITE_CONF" > /dev/null ServerName $HOSTNAME DocumentRoot $WEB_ROOT Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Require all granted Options FollowSymLinks Require all granted EOF # Enable site and modules, disable default a2ensite wordpress.conf a2enmod rewrite a2dissite 000-default.conf systemctl reload apache2 # Create WordPress database and user sudo mysql -u root <> "$WP_CONFIG"