|
|
Ligne 1 : |
Ligne 1 : |
|
| |
| Nous allons créer ce que l'on appelle une machine LAMP, d'après Wikipédia une machine "LAMP est un acronyme désignant un ensemble de logiciels libres permettant de construire des serveurs de sites web. L'acronyme original se réfère aux logiciels suivants : * « Linux », le système d'exploitation ( GNU/Linux ) ;
| |
| * « Apache », le serveur Web ;
| |
| * « MySQL ou MariaDB », le serveur de base de données ;
| |
| * À l'origine, « PHP », « Perl » ou « Python », les langages de script."
| |
|
| |
| Dans le cas d'un WordPress le P désigne PHP.
| |
|
| |
| == Installation de la machine ==
| |
|
| |
| Dans un premier temps, nous avons besoin d'une machine Linux Debian 12 sans interface graphique.
| |
|
| |
| Cette machine se nomme debianWordpress, elle a besoin de 20Gb de stockage. Si besoin, aidez-vous du Tuto suivant
| |
|
| |
| [[Installation d'une machine Debian sans interface graphique]]
| |
|
| |
| ==Installation du serveur Web==
| |
|
| |
| Maintenant que notre machine est prête, nous allons installer notre serveur web qui vas héberger notre site WordPress
| |
|
| |
| pour cela effectuer la commande
| |
| <code>sudo apt-get install apache2</code>
| |
|
| |
| Une fois le téléchargement terminé, entrer la commande <code>ip a</code> dans votre terminal, noter votre adresse IP.
| |
| Sur votre machine hôte, entrez l'adresse de votre Debian. Une page Apache doit s'afficher
| |
|
| |
| [[File:Apache.png|500px]]
| |
|
| |
| ====Question 1====
| |
| Le protocole utilisé est implicite, Quel est ce port et le protocole associé ?
| |
|
| |
| Sur votre machine virtuelle, créer un dossier '''wordpress''' dans le dossier /var/www/html
| |
|
| |
| Créer ensuite à l'intérieur du dossier wordpress un fichier '''index.html'''
| |
|
| |
| Entrer ensuite le code suivant :
| |
|
| |
| <code>
| |
| <!DOCTYPE html>
| |
| <html lang="fr">
| |
| <head>
| |
| <meta charset="utf-8">
| |
| <title>Wordpress</title>
| |
| </head>
| |
| <body>
| |
| <!-- page content -->
| |
| Hello World !
| |
| </body>
| |
| </html>
| |
| </code>
| |
|
| |
| ====Question 2====
| |
| Comment accéder à cette ressource depuis votre navigateur ?
| |
|
| |
| L'objectif est maintenant d'avoir un lien utilisable plus facilement
| |
| pour cela, nous avons besoin de modifier le fichier host de windows
| |
|
| |
| ====Question 3====
| |
| À quoi sert le fichier host ?
| |
|
| |
| Ouvrez le bloc-notes en administrateur puis rendez-vous à l'emplacement suivant '''C:\Windows\System32\drivers\etc''' ajouter la ligne.
| |
| ''IP de votre machine'' wordrpress.local
| |
|
| |
| ====Question 4====
| |
| Comment accéder à son site plus facilement maintenant ?
| |
|
| |
| Sur votre machine Debian en root allez dans le dossier /etc/apache2/sites-available
| |
| Créez un fichier wordpress.local.conf et ajouter le code suivant :
| |
| <code>
| |
| <VirtualHost *:80>
| |
| ServerName wordpress.local
| |
| DocumentRoot /var/www/html/wordpress
| |
| </VirtualHost>
| |
| </code>
| |
|
| |
| Pour que les modifications soient effectives, il faut recharger apache2 pour cela effectuer les commandes suivantes
| |
| <code>a2ensite wordpress.local.conf</code>
| |
| <code>systemctl reload apache2</code>
| |
|
| |
| ====Question 5====
| |
| Quel est l'objectif de cette manipulation ?
| |
|
| |
| Il y a un problème sur notre serveur web pour le moment : nous avons accès à l'arborescence du server web.
| |
|
| |
| ====Question 6====
| |
| Pourquoi est-ce un problème ?
| |
|
| |
| Pour palier à ce problème, ajouter dans le VirtualHost du fichier wordpress.local les lignes suivantes :
| |
| <code>
| |
| <Directory /var/www/html/wordpress>
| |
| Options -Indexes +FollowSymLinks
| |
| AllowOverride All
| |
| Require all granted
| |
| </Directory>
| |
| </code>
| |
|
| |
| ===Certificat SSL===
| |
|
| |
| Un certificat SSL est un certificat électronique qui authentifie l'identité d'un site Web et permet également d'avoir une connexion chiffrée. SSL (Secure Sockets Layer) est un protocole de sécurité qui crée un lien chiffré entre un serveur Web et un navigateur Web.
| |
|
| |
| Un certificat SSL est un certificat électronique qui authentifie l'identité d'un site Web et permet une connexion chiffrée. SSL signifie « Secure Sockets Layer », c'est un protocole de sécurité qui crée un lien chiffré entre un serveur Web et un navigateur Web. Le certificat doit être renouvelé périodiquement.
| |
|
| |
|
| |
| ====Génération d'un certificat autosignée====
| |
|
| |
| Effectuer la commande suivante pour générer un certificat autosignée.
| |
|
| |
| <code>openssl req -x509 -nodes -days 3000 -newkey rsa:4094 -keyout /etc/ssl/wordpresslocal.key -out /etc/ssl/wordpresslocal.crt</code>
| |
|
| |
| La commande s'exécute, répondez ensuite aux questions que l'application OpenSSL vous pose.
| |
|
| |
| ====Activation du module SSL====
| |
|
| |
| Dans le dossier '''/var/log/apache2''' activer SSL grâce à la commande suivante :
| |
|
| |
| <code>a2enmod ssl</code>
| |
|
| |
| Puis redémarrer le service apache2.
| |
|
| |
| ====Configuration du VirtualHost sur le port 443====
| |
|
| |
| * Rendez-vous dans le dossier '''/etc/apache2/sites-available'''
| |
| * Ouvrez le fichier wordpress.local.conf
| |
| * Sur La base du VirtualHost du port 80 faite le VirtualHost du port 443
| |
| * Ajoutez la ligne <code>SSLEngine on</code>
| |
| * Ajoutez la ligne <code>SSLCertificateFile /etc/ssl/wordpresslocal.crt</code>
| |
| * Ajoutez la ligne <code> SSLCertificateKeyFile /etc/ssl/wordpresslocal.key</code>
| |
|
| |
| Redémarrer le serveur
| |
|
| |
| Rendez-vous sur le site '''https://wordpress.local'''
| |
|
| |
| ====Redirection du port 80 vers le port 443====
| |
|
| |
| Activer le mode rewrite avec la commande suivante : <code>a2enmod rewrite</code>
| |
|
| |
| Remplacez le contenu du VirtualHost du port 80 avec le code suivant
| |
|
| |
| <code>ServerName wordpress.local</code>
| |
|
| |
| <code>RewriteEngine On</code>
| |
|
| |
| <code>RewriteCond %{HTTPS} off</code>
| |
|
| |
| <code>RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}</code>
| |
|
| |
| ==Installation des autres utilitaires==
| |
|
| |
| Nous avons besoin des autres utilitaires pour faire fonctionner notre machine LAMP, voici la commande à effectuer pour les installer
| |
| <code>
| |
| apt install mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml wget -y
| |
| </code>
| |
|
| |
| ====Question 7====
| |
| À quoi sert l'argument '''-y'''
| |
|
| |
| Nous allons maintenant vérifier que PHP fonctionne dans le dossier WordPress, ajouter un fichier PHP nommé test.php et ajouter le code suivant :
| |
| <code>
| |
| echo "<?php phpinfo(); ?>"
| |
| </code>
| |
|
| |
| Rendez-vous sur la page web associé à votre fichier PHP
| |
|
| |
| ====Question 8====
| |
| D'après cette page, quelle est la version de PHP que vous venez d'installer ?
| |
|
| |
| ====Question 9====
| |
| Notre nom de serveur a-t-il bien été modifié du point de vue de PHP ?
| |
|
| |
| ===Installation de SSH===
| |
|
| |
| ====Question 10====
| |
| Quel est l'objectif de mettre en place le service SSH ?
| |
|
| |
| Voici la commande pour installer le service SSH :
| |
| <code>
| |
| apt install openssh-server
| |
| </code>
| |
|
| |
| Ouvrez désormais, sur votre machine hôte, l'application puTTY. Dans la partie HostName, entrez l'adresse IP de votre machine, vérifiez que le port est le 22. Lancez ensuite la connexion avec le bouton Open
| |
|
| |
| Travaillez désormais depuis le terminal de puTTY
| |
|
| |
| ===Installation de la base de donnée===
| |
|
| |
| Nous allons procéder à une installation "propre" de la base de donnée, pour cela effectuer la commande suivante :
| |
| <code>
| |
| mysql_secure_installation
| |
| </code>
| |
|
| |
| Voici les réponses à fournir à la configuration demandées par l'utilitaire
| |
| <code>
| |
| Enter current password for root (enter for none):
| |
| Change the root password? [Y/n] Y
| |
| New password:
| |
| Re-enter new password:
| |
| Remove anonymous users? [Y/n] Y
| |
| Disallow root login remotely? [Y/n] Y
| |
| Remove test database and access to it? [Y/n] Y
| |
| Reload privilege tables now? [Y/n] Y
| |
| </code>
| |
|
| |
| Nous allons maintenant nous connecter en root à la base de donnée
| |
|
| |
| <code>mysql -u root -p</code>
| |
|
| |
| nous allons créer un utilisateur dans cette base et lui attribuer des droits sur les tables
| |
|
| |
| <code>
| |
| CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
| |
| GRANT ALL PRIVILEGES ON *.* to 'user'@'localhost';
| |
| FLUSH PRIVILEGES;
| |
| EXIT;
| |
| </code>
| |
|
| |
|
| |
| Nous allons maintenant installer phpmyadmin, pour cela faites la commande suivante :
| |
| <code>apt-get install phpmyadmin</code>
| |
|
| |
| À l'aide de la touche espace, sélectionné pache2 en serveur Web
| |
|
| |
| [[File:Phpmyadmin.png|500px]]
| |
|
| |
| Choisissez ensuite '''oui''' pour configurer la base par défaut
| |
|
| |
| [[File:Phpmyadmin2.png|500px]]
| |
|
| |
| Entrez ensuite un mot de passe pour MySQL server.
| |
|
| |
| sur votre machine hôte dans un navigateur, vous pouvez maintenant accéder depuis l'addresse http://wordpress.local/phpmyadmin/ à '''phpmyadmin''' pour cela utiliser en nom d'utilisateur '''root''' et le mot de passe que vous vennez de saisir.
| |
|
| |
| [[File:Phpmyadmin3.png|500px]]
| |
|
| |
| Pour s'assurer qu'Apache à bien admin l'ajout des différents modules, nous allons le relancer grâce à la commande :
| |
|
| |
| <code>systemctl restart apache2</code>
| |
|
| |
|
| |
| ==Installation de Wordpress==
| |
|
| |
| Sur la machine Linux, rendez-vous dans le dossier temporaire. <code>cd /tmp</code> | | Sur la machine Linux, rendez-vous dans le dossier temporaire. <code>cd /tmp</code> |
|
| |
|
Sur la machine Linux, rendez-vous dans le dossier temporaire. cd /tmp
Nous allons ensuite télécharger la dernière version de WordPress avec la commande suivante :
wget https://wordpress.org/latest.zip
Une fois le zip téléchargé nous allons créer la base de données nécessaire à wordpress.
Pour cela, rendez-vous dans mysql depuis la racine de votre machine grâce à la commande :
mysql –u root –p
Créer ensuite votre base de données. CREATE DATABASE wp01;
$
Vérifiez que votre table a été créée grâce à la commande SHOW DATABASES;
Quittez MariaDB avec exit
Installer le paquet zip
Supprimez maintenant les tests que nous avons faits dans le dossier /var/www/html/wordpress
Nous allons maintenant dézipper le fichier précédemment télécharger de wordpress pour cela possitionez vous dans le dossier /tmp et effectuer la commande suivante :
unzip latest.zip -d /var/www/html/wordpress
Rendez-vous dans le dossier /var/www/html/wordpress
Nous pouvons remarquer qu'un dossier wordpress a été créé avec à l'intérieur l'ensemble de fichier pour rendre le dossier plus lisible, nous allons déplacer les fichiers au dossier wordpress précédent, pour cela faites la commande suivante :
mv wordpress/* /var/www/html/wordpress
Pour supprimer ensuite le fichie wordpress dans /var/www/html/wordpress faites la commande : rmdir wordpress
Avant d'accéder à la machine, il faut reload le serveur apache2
Configuration Wordpress
Nous allons accéder au site wordpress depuis votre machine hôte, supprimer le cache de votre navigateur et rendez vous à l'URL wordpress.local
La configuration du site s'affiche. Il est demmandé le nom de la base de donnée ainsi que ses identifiants. Entrez ce que vous avez noté précédemment.
Une page de configurations s'affiche.
- Rendez-vous sur votre machine Debian dans le dossier /var/www/html/wordpress
- Créez un fichier wp-config.php
- Copiez le contenu de la page de configuration dans le fichier wp-config.php
Vous pouvez maintenant appuyer sur le bouton Run the installation
Vous pouvez maintenant entrer le nom du site :
Ainsi que les identifiants, mot de passe de Wordpress