summaryrefslogtreecommitdiff
path: root/install_wordpress
blob: 3794b7c8ab268ffc7aea68f4fca958357a510486 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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
<VirtualHost *:80>
        ServerName $user.domain.lan
	RewriteEngine On
	RewriteCond %{HTTPS} off
	RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
EOF

# Ecriture du virtual host SSL Apache
cat > /etc/apache2/sites-available/${user}-ssl.conf << EOF
<VirtualHost *:443>
        ServerName $user.domain.lan
        DocumentRoot /home/$user/public_html/wordpress
	<Directory /home/$user/public_html/wordpress>
		AllowOverride All
	</Directory>
	SSLEngine on
	SSLCertificateFile      /etc/apache2/apache.pem
	SSLCertificateKeyFile   /etc/apache2/apache.key
</VirtualHost>
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