#!/bin/bash # ====== CONFIGURATION ====== HOSTNAME="wordpress.local" IP="127.0.0.1" SITE_CONF="/etc/apache2/sites-available/wordpress.conf" WEB_ROOT="/srv/www/wordpress" # ============================ # 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 # Add hostname to /etc/hosts if not already present if grep -q "$HOSTNAME" /etc/hosts; then echo "Entry for $HOSTNAME already exists in /etc/hosts." else echo "Adding $HOSTNAME to /etc/hosts..." echo "$IP $HOSTNAME" | sudo tee -a /etc/hosts > /dev/null echo "Done." fi # Enable site and modules, disable default a2ensite wordpress.conf a2enmod rewrite a2dissite 000-default.conf systemctl reload apache2