53 lines
1.4 KiB
Bash
53 lines
1.4 KiB
Bash
#!/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
|
|
<VirtualHost *:80>
|
|
ServerName $HOSTNAME
|
|
DocumentRoot $WEB_ROOT
|
|
<Directory $WEB_ROOT>
|
|
Options FollowSymLinks
|
|
AllowOverride Limit Options FileInfo
|
|
DirectoryIndex index.php
|
|
Require all granted
|
|
</Directory>
|
|
<Directory $WEB_ROOT/wp-content>
|
|
Options FollowSymLinks
|
|
Require all granted
|
|
</Directory>
|
|
</VirtualHost>
|
|
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 |