#!/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