#!/bin/bash
user="bob"
pass="leponge"
useradd $user -m -s /usr/sbin/nologin -G sftp
echo $user:$pass | chpasswd 2>/dev/null
chmod 755 /home/$user
chown root:root /home/$user
mkdir /home/$user/{public_html,mail}
chown -R $user:$user /home/$user/*
echo "Téléchargement et installation de la dernière version de wordpress..."
echo
# Téléchargement de wordpress français latest
cd /home/$user/public_html
wget https://fr.wordpress.org/latest-fr_FR.zip
# Décompression de wordpress
unzip -q -o latest-fr_FR.zip
rm -f latest-fr_FR.zip
# Changement propriétaire wordpress
chown -R $user:$user wordpress
# Ecriture du virtual host Apache
cat > /etc/apache2/sites-available/$user.conf << EOF
ServerName $user.domain.lan
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
EOF
# Ecriture du virtual host SSL Apache
cat > /etc/apache2/sites-available/${user}-ssl.conf << EOF
ServerName $user.domain.lan
DocumentRoot /home/$user/public_html/wordpress
AllowOverride All
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
SSLCertificateKeyFile /etc/apache2/apache.key
EOF
# Activation des virtualhost wordpress
a2ensite $user > /dev/null
a2ensite ${user}-ssl > /dev/null
# Rechargement Apache
systemctl reload apache2
# Création de la base de données wordpress
mariadb << EOF
create database if not exists $user;
create user if not exists ${user}@localhost identified by "$pass";
grant all privileges on ${user}.* to ${user}@localhost;
flush privileges;
EOF
# Remplissage du fichier wp-config.php
cp wordpress/wp-config-sample.php wordpress/wp-config.php
sed -i "s/database_name_here/${user}/" wordpress/wp-config.php
sed -i "s/username_here/${user}/" wordpress/wp-config.php
sed -i "s/password_here/${pass}/" wordpress/wp-config.php
# Ajout cname dynamique
nsupdate << EOF
server 127.0.0.1
zone domain.lan
update add ${user}.domain.lan. 604800 in cname debian.domain.lan.
send
EOF
# Fin de l'installation
mail ${user}@domain.lan -s "Votre site Wordpress" << EOF
Bonjour,
L'installation de votre site wordpress est terminée et doit être finalisée sur https://${user}.domain.lan.
Vous avez accès à vos mails sur https://${user}.domain.lan/roundcube, à votre base de données sur https://${user}.domain.lan/phpmyadmin et à vos fichier avec un client sftp sur ${user}.domain.lan
login: $user
mot de passe: $pass
Cordialement,
L'équipe de domain.lan
EOF