Synology [TUTO] Installer Wordpress sur votre NAS Synology avec le Serveur Web

morgyann

Maître Jedi
2 Février 2023
618
117
78
BZH
Après pas mal de recherche sur la toile, je n'ai trouvé que très peu de tuto pour installer Wordpress (WP) de façon "classique" (via un serveur web) sur un Nas (Synology pour ce tuto).
Aussi, je vous conseille ce type d'installation "classique" plutôt que d'utiliser le package WP. Ce dernier est, à mon avis, inutilisable : version en retard -> donc vos plugins et thème (à jour) fonctionneront mal - les modifications nécessaires (ouvrir par ex sur son seul NDD) sont compliquées à opérer - le transfert de votre site d'un nas à l'autre ou chez un hébergeur sera des + compliqués ...
L'avantage de l'auto-hébergement, c'est que c'est gratuit :) - que vous n'êtes pas limité par le volume - que les vitesses d'upload et d'intervention sur vos fichiers et votre configuration se feront en direct (pas de latence de transfert) - vous pouvez sauvegarder et transférer votre site en peu de temps ...
Les inconvénients : c'est que il vous faudra un peu "mettre les mains dans le cambouis" - (chez les hébergeurs c'est en un clic) - et que vous vous êtes tributaire d'éventuelles pannes de courant ou d'internet ou de matériel et de votre débit montant.

Étape 1 : Installer les applications (Centre de Paquets) et les fichiers (Wordpress)

Télécharger et activer les paquets suivants (dans l’ordre) : Web-Station, MariaDB 10 (+créer un mot de passe), PHP 8.2, phpMyAdmin, Éditeur de texte.
Télécharger Wordpress sur le site https://fr.wordpress.org/download/ (en français)

En installant Web-Station un dossier partagé « web » a été créé automatiquement. Transférez via SMB (par ex) le dossier compressé WP (Wordpress) dans le dossier « web » du Nas et décompressez-le.

Imagewp.png

Vous pouvez aussi changer le nom de ce dossier wordpress si vous le souhaitez (à faire à cette étape et de préférence en minuscule et sans espace) - ou si vous souhaitez installer plusieurs sites / apps web sur le serveur web - (afin de les reconnaître et les personaliser). Si vous changez le nom, il faut le faire à cette étape.

Étape 2 : Configurer le serveur web

Ouvrez Web-Station - État normal - Nginx est activé par défaut pour DSM (vous pouvez installer Apache si vous préférez) - nous utiliserons php 8.2 (le + récent) - et php 8.0 (pas sur la capture) sera activé aussi pour phpMyAdmin

Imagewp2.png

Configurez le Profil PHP dans l'onglet Paramètres du langage de script) – Cliquez sur créer
Remplissez les champs « Profil » et « Description » et activez le cache puis « suivant »

Imagewp3.png

Cochez les extensions suivantes : curl, exif, gd, iconv, imagick, intl, mysqli, openssl, pdo_mysql, zip, zlib (vous pourrez par la suite en rajouter si vous en avez besoin). Puis suivant,

Imagewp4.png

Paramètres FMP (laissez par défaut - vous pourez aussi modifier par la suite si besoin) et suivant,

Imagewp5.png

Et confirmer les paramètres.

Imagewp6.png


Rendez-vous maintenant sur l’onglet « Service Web » et cliquez sur créer et choisissez « Site web en langage script natif » puis suivant :

Imagewp7.png

Remplissez les champs (nom en minuscule sans espace) et description puis sélectionnez votre dossier (décompressé et éventuellement renommé) :

Imagewp8.png
Sélectionnez suivant et cliquez sur ok,

Imagewp9.png
Portail Web :

Avant de vous rendre sur cette page, cela suppose que vous avez un nom de domaine (NDD) et que celui-ci est « certifié » (Panneau de conf -> Sécurité->Certificats).

Cliquez sur créer et « Portail de Service Web »

Imagewp10.png

Puis dans nom d’hôte indiquez votre nom de domaine et validez HSTS

Imagewp11.png

Puis validez « créer ».

Imagewp12.png

Nous avons fini avec Web-Station (juste pour l'installation du site) - mais il vous faudra par la suite y retourner pour configurer certaines valeurs de l'onglet "coeur" de votre profil PHP (notament pour redéfinir l'upload des fichiers).

Étape 3 : Faire correspondre (Panneau de Conf -> Sécurité -> Certificats -> Parametres) le "service avec le certificat"

Étape 4 : Créer une base de données / utilisateur


Ouvrer (lancer) le paquet « phpMyAdmin » Indiquez « root » en utilisateur et le mot de passe créé lors du lancement du paquet MariaDB

Imagewp13.png


Sur la colonne de gauche, cliquez sur « nouvelle base de données » et allez directement à l' onglet « comptes utilisateurs » - cliquez sur « ajoutez un compte utilisateur »
Donner un nom, Nom d’hote -> local, un mot de passe (à confirmer) et cocher « …donner à cet utilisateur tous les privilèges … »

Puis le bouton « Exécuter » en bas à gauche de la page. (dans mon exemple, j'ai créé "morgyann").

Imagewp15.png
Vous pouvez fermer, l'onglet phpMyAdmin et revenir à DSM et ouvrir "File Station"

Étape 5 : Configurer les droits à votre dossier WP Web

Dossier "web" (clic droit) "propriétés" -> "permissions" vérifiez que les permissions sont en clairs (http et administrators) - cochez la case "appliquez à ce dossier ..." et "Sauvegarder".

Imagewp16.png

Rendez-vous maintenant sur votre "sous" dossier "wordpress" - rendez les permissions explicites (pour qu'elles apparaissent en clair) + créer l'utilisateur SYSTEM et donnez lui les droits en lecture et écriture. + - cochez la case "appliquez à ce dossier ..." et "Sauvegarder".

Imagewp17.png

Étape 6 configurer et lancer WP

Ouvrez un onglet sur votre navigateur à l'adresse de votre site : https://monsite.fr - (si tout c'est bien passé vous devriez arriver sur la page qui suit) - cliquez sur le bouton ...
NB : j'écris ce tuto en même temps que j'exécute ces étapes et je m'aperçois que j'ai téléchargé la version anglaise :rolleyes:

Imagewp18.png

Remplissez les champs avec les éléments lors de la création utilisateur dans phpMyAdmin (dans mon cas c'était morgyann)

Imagewp19.png

Poursuivez vous êtes sur le bon chemin

Imagewp20.png

Créez / indiquez vos informations de connexion :

Imagewp21.png

"Installer Wordpress" (bouton) et identifiez - vous. Sur le tableau de bord -> Mises à jour et cliquez sur "réinstaller la version 6.6. .."

Imagewp23.png

Il vous demande de vous connecter en FTP :eek: - il nous reste donc encore une dernière autorisation à opérer 🛠️ (courage on va y arriver) :
Ouvrer - File Station -> web -> wordpress -> wp-config-php (fichier) ---- Faites un clic droit et sélectionner "ouvrir avec un éditeur de texte" et ajouter (copier/coller) en bas de la page :

Code:
//**La ligne suivante permet les téléchargements directs*/

define('FS_METHOD', 'direct');

Puis, onglet "Fichier" -> "Enregistrer"

Imagewp24.png

Revenez sur votre tableau de bord wp et procédez à la réinstallation de la version 6.6 ... (étape où maintenant il réinstallera sans demander l'upload en FTP) ;)
Contrôlez la santé du site - C'est Good !!!! (il me recommande d'installer un plugin de cache - mais ce n'est plus l'objet du tuto).

Imagewp25.png

Voilà, profitez de votre installation WP.

NB : Vous pouvez aussi installer votre site WP en Docker - l'installation est + rapide et l'image fonctionne bien.
 

Pièces jointes

  • Imagewp16.png
    Imagewp16.png
    102.8 KB · Affichages: 3
  • Imagewp12.png
    Imagewp12.png
    62.2 KB · Affichages: 5
Dernière édition:
@morgyann merci pour ce super tuto 👍🏻
Ps : pour tes captures d’écran, tu peux utiliser des applications comme Greenshot (Windows), Flameshot (macOS) pour faire des zones de flou, ça évite de devoir passer 100 fois avec un crayon sur ce qui ne souhaite pas laisser affiché, et et qui peut quand même être déchiffré 🤣
Il existe pléthore d’applications pour ça avec des annotations possibles.
Sur macOS la préférence va à CleanShot (payant).
je ne me souvient pas de l’outils sous Windows dont avait parlé @FX Cachem dans un de ces articles , et que @EVO apprécie beaucoup, mais il avait détrôné Greenshot quand j’utilisais encore beaucoup Windows.
Édit :
ha trouvé , c’est Clowd :
Mais cet outils ne semble plus maintenu et n’a pas eu de mise à jour depuis plus de 2 ans …
 
pour tes captures d’écran, tu peux utiliser des applications
J'utilise rarement les captures d'écran - (j'ai Grennshot mais pas encore expérimenté) - donc je suis allé avec mes basiques (touche clavier - crayon - copier/coller). Il faut que je regarde le fonctionnement de ce type d'app pour faire de belles capture d'écran (sans gribouillis) 🎨🖼️- pour de prochains tutos.
 
Merci pour le tuto !!

Perso j’éviterais d'installer un Wordpress sur un NAS si c'est ouvert publiquement sur le monde extérieur, sans l'isoler un minimum du reste de l'OS (par exemple avec Docker).
Les sites Wordpress sont très ciblés par les attaques et même bien configuré et a jour, il n'est pas exclu qu'un pirate arrive parfois a y insérer un malware dans le code source...

Il faut au minimum y ajouter un ou des plugins de sécu comme : Solid Security Basique + Sucuri Security

Et surtout les configurer pour faire du reporting par email en cas de changement aux niveaux des plugins (suppression, ajout...) ou des fichiers de wordpress.
Il peuvent aussi détecter l'insertion de malware Javascript dans le code.
Ses plugins gèrent le Brut force entre autres et bloque les IP.

Il faut aussi blinder la configuration du '.htaccess' à la racine du site si possible et bien sur activer la 2FA pour la gestion et supprimer le compte 'admin' par défaut.

Il est aussi indispensable d'ajouter un plugin de backup journalier du site (UpdraftPlus - Sauvegarde/Restauration), car en cas de hack, c'est la seule solution pour revenir à n - jours.
Suite a un hack, il y a souvent une multitude de fichier PHP parasite obfusqués cachés partout dans des répertoires de Wordpess, donc une vrai galère pour nettoyer tout a la main et possible que le BD soient corrompues aussi avec de l'insertion de code Javascript ....

Le dernier hack que j'ai pu observer sur un site Wordpress, le pirate avait supprimé les plugins de sécu installés. En regardant les logs brut de son scan chez l’hébergeur, je n'ai toujours pas compris comment il a pu passer car tout était à jour coté Wordpress et pas de trace de connexion avec les comptes admin... J'ai bloqué son IP et restauré le site en J-2.
Le hack n'était pas visible (le site était 100% opérationnel), sans doute transformé en serveur 'zombie' mais difficile à dire avec du code obfusqués...
 
Dernière édition: