apt update
apt upgrade -y
apt install apache2 mariadb-server php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml wget -y
systemctl start apache2
systemctl enable apache2
systemctl start mysqld
systemctl enable mysql
mariadb-secure-installation
Lors de l'exécution de mysql_secure_installation répondez comme suit :
mysqladmin -uroot create wordpressdb
mysql -uroot -e"GRANT ALL ON wordpressdb.* TO admin@localhost IDENTIFIED BY 'P@ssw0rd'"
Nous allons utiliser le vhost par défaut d'Apache, dont le root est "/var/www/html"
rm /var/www/html/index.html
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
rm latest.tar.gz
cp -r wordpress/* /var/www/html/
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
cd /var/www/html
cp wp-config-sample.php wp-config.php
sed -i 's/database_name_here/wordpressdb/' wp-config.php
sed -i 's/username_here/admin/' wp-config.php
sed -i 's/password_here/P@ssw0rd/' wp-config.php
systemctl reload apache2
Vous pouvez à présent vous connecter à votre navigateur web :
http://IP-SERVEUR
apt install openssl
mkdir /etc/apache2/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/wp.key -out /etc/apache2/ssl/wp.crt
- Renseignez les champs qui apparaissent ou laissez les vide dans notre cas de figure.
Lorsque vous adressez une requête à une autorité de certification, tout doit être rempli.
En guise de "Common Name", vous pouvez spécifier le nom de domaine (pour un vrai site web) ou simplement l'adresse IP de votre serveur web (notre cas ici).
chmod 600 /etc/apache2/ssl/wp.key
Nous allons reprendre la configuration effectuée plus haut en y ajoutant le certificat SSL et la clef privée, et en changeant le port d'écoute (80 -> 443)
Ouvrez /etc/apache2/sites-available/000-default.conf (vous observez au passage qu'il y a déjà une configuration par défaut pour un vhost SSL dans le même dossier.. on aurait d'ailleurs pu s'en servir !).
<VirtualHost *:443>
#ServerName www.example.com
# Activation du SSL
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wp.crt
SSLCertificateKeyFile /etc/apache2/ssl/wp.key
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
a2enmod ssl
systemctl reload apache2