Installer WordPress sur un NAS Synology

Mis à jour le :

Installer WordPress sur un serveur local peut s’opérer sur un serveur NAS (Network Attached Storage) de type Synology.

Ces espaces de stockage en réseau disposent de tous les paquets nécessaires pour faire tourner WordPress : serveur Web (Nginx ou Apache), PHP et MariaDB. Une excellente combinaison pour développer en local sans encombrer votre machine de travail quotidienne. Ce tutoriel correspond à DSM 7.2 et aux versions suivantes, jusqu’à DSM 7.4.

C’est quoi un serveur NAS Synology ?

Un serveur NAS pour Network Attached Storage ou espace de stockage en réseau est un boitier d’une ou plusieurs baies abritant des disques durs. En termes simples, cela ressemble à un gros disque dur externe à ceci près qu’il exécute un véritable système d’exploitation capable d’exécuter des applications.

Chez Synology, sans doute le meilleur fabricant de NAS au monde, on retrouve une suite incroyables d’applications pour disposer de votre propre cloud privé. La plupart des services connus des internautes comme du partage de fichiers (Google Drive, Dropbox), d’écoute musicale (Deezer, Spotify), de sauvegarde (Time Machine) ou encore de bibliothèque photo (Google Photos, iCloud) disposent de leurs équivalents sur un Synology. La plupart du temps ces applications surpassent même celles des marques citées précédemment.

Côté développement Web, nous retrouvons des paquets comme Web Station, Apache HTTP Server, PHP, MariaDB 10, phpMyAdmin, Node.js et même WordPress. Comme pour les installateurs automatiques des hébergeurs, je déconseille ce dernier : il suit les versions de WordPress avec retard (la dernière version publiée dans l’archive Synology est une 6.8) et installe le site dans un dossier que vous maîtrisez moins bien. Les NAS proposent aussi tous les services de connexion : FTP, SFTP, SSH, etc.

Vous l’aurez compris, on peut tout faire avec un NAS dont la capacité de stockage démentielle se chiffre en To.

Quels sont les avantages d’installer WordPress sur un Synology ?

Cette approche nous permet entre autres :

  • D’économiser de l’espace disque sur sa propre machine : la multiplication d’instances locales de vos WordPress augmentent très rapidement la consommation d’espace disque ;
  • De rendre disponible un environnement de développement sur votre réseau local et même à distance : un NAS est directement connecté sur votre réseau, c’est le propre de ce type de boitier alors profitons-en tout en prenant en compte les aspects liés à la sécurité ;
  • De créer un site par projet, à la demande : le paquet Web Station associe à chaque site un service Web (dossier, serveur Apache ou Nginx, version de PHP) et un portail Web (nom de domaine, ports, HTTPS). Il est donc facile de changer le domaine, le serveur, la version de PHP ou les ports ;
  • De maintenir une stabilité générale : votre machine va évoluer au rythme des mises à jour de votre système d’exploitation (Windows, MacOS ou Linux). Il n’est pas rare de casser son environnement de développement suite à un changement de version par exemple. Avec son approche par paquet, Synology apporte une stabilité à toute épreuve ;

Il faut bien reconnaître un inconvénient toutefois : la rapidité des échanges entre vos NAS et votre ordinateur dépendront directement de la qualité de votre réseau ainsi que de la puissance de votre NAS. Pour ma part, je ne considère pas cela comme un frein car nous travaillons sur des fichiers de petites tailles.

Comment installer WordPress sur un NAS Synology ?

Prérequis Synology

Ouvrez le Centre de paquets puis installez :

  • Web Station : il gère les services et les portails Web de chaque site ;
  • Apache HTTP Server 2.4 : je le recommande pour WordPress, car il lit les fichiers .htaccess que WordPress utilise pour les permaliens (Nginx, disponible d’office dans Web Station, les ignore) ;
  • PHP 8.3 (ou 8.2 / 8.4 selon ce que propose votre version de DSM) : WordPress recommande PHP 8.3 ou plus. Synology ne prend plus en charge PHP 7.3, 7.4 et 8.0 depuis DSM 7.3, ni PHP 8.1 depuis DSM 7.4 ;
  • MariaDB 10 : le moteur de bases de données. Gardez sous la main le mot de passe de son compte administrateur root : phpMyAdmin vous le demandera ;
  • phpMyAdmin : l’interface Web de gestion des bases de données, comme chez n’importe quel hébergeur.

Les paquets nouvellement installés sont accessibles depuis le menu principal de DSM.

Création du site dans Web Station

1. Préparez le dossier du site. Dans File Station, créez un dossier dans le dossier partagé web, par exemple web/monsite (chemin réel : /volume1/web/monsite). Vérifiez que le groupe http dispose des droits de lecture et d’écriture sur ce dossier : Web Station l’utilise pour exécuter les sites, et WordPress en a besoin pour installer extensions et mises à jour.

2. Créez un profil PHP. Dans Web Station, ouvrez Paramètres du langage de script > PHP, puis cliquez sur Créer :

  • renseignez le Nom du profil (par exemple « WordPress PHP 8.3 ») ;
  • choisissez la Version PHP ;
  • dans l’onglet Extensions, cochez au minimum mysqli, ainsi que les extensions recommandées pour WordPress qui figurent dans la liste : curl, exif, gd ou imagick, intl, mbstring, openssl, zip.

3. Créez le service Web. Ouvrez Service Web, cliquez sur Créer, puis choisissez Site Web en langage de script natif. Sélectionnez :

  • le profil PHP créé à l’étape précédente ;
  • la racine du document (web/monsite) ;
  • le serveur HTTP : Apache HTTP Server 2.4.

4. Créez le portail Web. Ouvrez Portail Web, cliquez sur Créer, choisissez Portail de services Web puis le service que vous venez de créer. Comme type de portail, choisissez Basée sur un nom :

  • Nom d’hôte : votre domaine local, par exemple monsite.test (voir ci-dessous) ;
  • sélectionnez les ports par défaut (80 et 443) ;
  • HSTS (dans les Paramètres HTTPS) : laissez la case décochée en local, sauf si vous disposez d’un certificat valide pour ce domaine.

Validez avec Créer : le lien du site apparaît dans la liste des portails.

Pourquoi .test plutôt que .local ? L’extension .local est réservée à la découverte de services sur le réseau local (mDNS, Bonjour sous macOS), ce qui provoque des lenteurs de résolution, voire des conflits. .test est réservée aux tests et n’existera jamais sur Internet. Évitez aussi .dev et .app : ces extensions sont préchargées en HSTS dans les navigateurs, qui imposent alors une connexion HTTPS avec un certificat valide.

Création de la base de données

Lancez à présent phpMyAdmin depuis le menu principal de DSM. Identifiez-vous avec les identifiants administrateur de MariaDB 10 (compte root) : la page de connexion est normale, car phpMyAdmin ne reprend pas vos identifiants DSM.

Dans l’onglet Bases de données, saisissez un nom pour votre base, choisissez l’interclassement utf8mb4_unicode_520_ci (ou utf8mb4_unicode_ci), puis faites Créer.

Créez ensuite un utilisateur dédié à ce site depuis l’onglet Comptes utilisateurs, avec tous les privilèges sur cette base uniquement. C’est la même bonne pratique que sur un serveur de production : un site compromis ne donne pas accès aux autres bases.

Installation standard de WordPress

L’installation de WordPress sur un serveur local ne diffère pas vraiment d’une installation classique.

Commencez par télécharger l’archive officielle en français. Décompressez-la, puis placez le contenu de son dossier wordpress dans le dossier du site créé plus haut (web/monsite).

Ouvrez ensuite le nom de domaine défini plus haut (http://monsite.test) et procédez à l’installation habituelle, avec le nom de la base, l’utilisateur et son mot de passe.

Si l’installateur affiche « Erreur lors de la connexion à la base de données » alors que les identifiants sont bons, vérifiez le port indiqué dans l’application MariaDB 10. S’il ne s’agit pas de 3306 (c’est le cas de certains NAS mis à jour depuis DSM 6, où MariaDB 10 écoutait sur le port 3307), précisez-le dans le champ Adresse de la base de données, par exemple 127.0.0.1:3307.

Si WordPress affiche ensuite un formulaire « Informations de connexion » réclamant des identifiants FTP pour installer une extension, c’est qu’il refuse d’écrire directement sur le disque : il ne le fait que si les fichiers qu’il crée appartiennent au même compte que ses propres fichiers, or vous les avez copiés avec votre compte DSM. Les droits du groupe http suffisent : ajoutez ces lignes dans wp-config.php, juste avant la ligne « C’est tout, ne touchez pas à ce qui suit ! Bonne publication. ».

// Write files directly: the http group has read/write access to the site folder.
define( 'FS_METHOD', 'direct' );

Réglages additionnels

Il vous faudra modifier le fichier hosts de votre ordinateur pour qu’il sache où trouver votre domaine .test :

  • sous macOS, ouvrez le Terminal, exécutez sudo nano /etc/hosts et saisissez votre mot de passe. Ajoutez une ligne par domaine local, en remplaçant l’adresse par l’IP locale de votre NAS ;
  • sous Windows, lancez le Bloc-notes en tant qu’administrateur et ouvrez C:\Windows\System32\drivers\etc\hosts. Ajoutez la même ligne.
192.168.1.20    monsite.test

Si vous installez WP-CLI sur le NAS, veillez à l’exécuter avec le binaire PHP du paquet installé plutôt qu’avec le PHP système de DSM. Repérez son chemin avec find /volume*/@appstore/PHP8.* -path '*/bin/php8*', puis créez dans votre profil de console un alias wp qui lance WP-CLI avec ce binaire.

Sauvegarde et accès à distance

  • Sauvegarde : Hyper Backup sait sauvegarder toutes les bases MariaDB 10 en même temps que les fichiers du dossier web. Pensez à l’activer, même pour un environnement de développement.
  • Accès à distance : pour travailler hors de chez vous, préférez un VPN à l’ouverture de ports sur votre box. Un site de développement exposé sur Internet (extensions en test, WP_DEBUG actif) est une cible facile.

Vous disposez à présent d’un environnement de développement local sur votre Synology. Vous pouvez étendre les possibilités à bien des égards car ce type de système embarque tout ce qu’il faut comme services.

Questions fréquentes

phpMyAdmin me demande un identifiant : lequel saisir ?

Il s’agit des identifiants administrateur de MariaDB 10, pas de ceux de DSM : le compte root et son mot de passe.

Quelle version de PHP choisir sur mon Synology ?

La plus récente proposée par le Centre de paquets et compatible avec vos extensions : WordPress recommande PHP 8.3 ou plus. Sous DSM 7.4, PHP 8.1 n’est plus pris en charge.

Faut-il utiliser le paquet WordPress de Synology ?

Je ne le recommande pas : il installe une version de WordPress en retard sur la version officielle et vous maîtrisez moins l’arborescence. Une installation manuelle ne prend que quelques minutes de plus.

Sans NAS, une autre option consiste à installer WordPress en local avec Local by Flywheel.

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

28 réponses

  1. Avatar de calvinux
    calvinux

    tu peux acheter un nom de domaine en .ovh a deux euros par an chez ovh et creer autant de sous domaine que tu veux pour tes multi site et faire des cname vers ton ddns dans la zone dns , il te faudra faire des virtualhost pour chaque sous domaine dans web station

  2. Avatar de Cide
    Cide

    Bonjour, très tuto. j’ai 2 serveurs DS918+ un perso et un pro pour site perso. le perso est déjà configurer avec un ddns gratuit pour un accès en ligne. sur le pro j’ai installé WordPress en multisite et il est fonctionnelle. Ma question: comment avoir accès au multisite via un DDNS gratuit (changeip.com).
    Merci pour votre aide.
    Cide.

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Du moment qu’un DNS de type A pointe sur l’IP du Synology, le site devrait s’afficher (multisite ou non).

  3. Avatar de Akhlan
    Akhlan

    super tuto, merci beaucoup,

    j’ai une question, comment donner accès, montrer mon site à une personne distante ? Je n’ai pas de NDD pour le moment… Je fais un site WordPress pour le gite d’une ami et le nom de domaine n’est pas encore définit mais je voudrais lui montrer ce que ça donne…

    Merci

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Sans domaine, il faudrait modifier le fichier host de chaque machine pour indiquer que le site est sur votre NAS. Pas simple.

      1. Avatar de Akhlan
        Akhlan

        j’ai que le pc de mon amie à modifier, moi je suis en local donc je peux me contenter de l’IP

      2. Avatar de akhlan
        akhlan

        je ne parviens pas à rentrer les bonnes informations

        Vous devez saisir ci-dessous les détails de connexion à votre base de données. Si vous ne les connaissez pas, contactez votre hébergeur.

        Nom de la base de données : Nom de la base que j’ai créé dans phpMyAdmin (BDD)
        Identifiant : Celui que j’ai créé avec accès sur la base citée au dessus
        Mot de passe :
        Adresse de la base de données : localhost ou 127.0.0.1
        Préfixe des tables : wp_BDD

        Une erreur critique est survenue sur votre site.
        En apprendre plus sur le débogage de WordPress.

        ça peut venir de quoi ?

        1. Avatar de Aurélien Denis
          Aurélien Denis

          C’est compliqué de vous aider à distance, regardez les journaux de logs en activant les outils de déboggage de WordPress. Vous pouvez installer WordPress via le paquet Synology sinon ou encore contacter leur support.

          1. Avatar de akhlan
            akhlan

            je ne veux pas du WordPress Synology, il est en 5.2 alors que nous somme sen 5.4, c’est le support synology qui m’a donné votre adresse 😉

            Je vais contacter le support WordPress alors 😉

        2. Avatar de calvinux
          calvinux

          verifier la configuration PHP notament le port de mariad db et le sock

          j’avais la même erreur et le port etait sur 3306

          https://gyazo.com/00ebd99e041ee8ab20f7921159bf5107
          https://gyazo.com/9498616c4ddc843260539de2a424eef2

  4. Avatar de Pascal
    Pascal

    Bonjour,

    J’ai installer un site wordpress sur mon syno avec virtual host paramétrés sur apache et maintenant je cherche à modifier pour passer en nginx mais hélas cela ne fonctionne pas. Comment peux t’on basculer.

    Merci

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Aucune idée, je n’utilise pas nginx. Je vous invite à vous reporter à leur excellente documentation et / ou voir avec le support.

  5. Avatar de MH Lebée
    MH Lebée

    Je précise que je n’ai pas coché la case HSTS dans Virtual Host

  6. Avatar de MH Lebée
    MH Lebée

    Bonjour, j’ai suivi tout le tuto, mais j’ai un problème quand je veux enfin accéder à mon installation de WordPress via mon navigateur.
    Je rentre donc mon adresse dans la barre d’adresse de mon navigateur et j’ai l’erreur suivante (avec https barré)

    Un chiffrement est normalement utilisé sur le site zeinorientalspa.dev pour protéger vos informations. Lors de la dernière tentative de connexion de Google Chrome au site zeinorientalspa.dev, des identifiants inhabituels et incorrects ont été retournés. Il est possible qu’un individu malveillant tente de se faire passer pour zeinorientalspa.dev ou qu’un écran de connexion Wi-Fi ait interrompu la connexion. Vos informations restent sécurisées, car nous avons arrêté la connexion avant l’échange des données.

    Le site zeinorientalspa.dev est actuellement inaccessible, car il utilise la technologie HSTS. Les erreurs réseau et les attaques sont généralement temporaires. Vous devriez donc pouvoir accéder à cette page plus tard.

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Vous pouvez passer outre l’avertissement de sécurité et travailler avec un certificat auto-signé en local.

      1. Avatar de MH Lebée
        MH Lebée

        Bonjour,

        merci de votre réponse.
        J’ai installé un certificat auto-signé sur mon Synology.
        J’ai retenté d’accéder à zeinorientalspa.dev, mais j’ai encore le même problème.
        Est-ce-qu’il y a une étape qui manque ?

        Merci, bonne journée

        1. Avatar de MH Lebée
          MH Lebée

          J’ai changé les paramètres du certificat auto signé pour qu’il soit utilisé pour zeinorientalspa.dev, mais j’ai toujours l’erreur NET::ERR_CERT_AUTHORITY_INVALID, impossible de passer outre.

          De plus, j’ai une question : est-ce-que une fois que ça fonctionnera, mon client pourra accéder au site en cours de développement ?

          Merci, bonne journée

          1. Avatar de Aurélien Denis
            Aurélien Denis

            De mémoire, l’utilisation d’un .dev est déconseillé. Il est possible de générer des SSL depuis le panneau de configuration de Synology mais il faut bien lire la documentation. Pour ce qui est l’accès externe, cela reste techniquement faisable (c’est un serveur Web comme les autres) mais nécessitera une configuration additionnelle non détaillée ici.

            L’intérêt majeur reste le développement en local.

  7. Avatar de thierry
    thierry

    bonjour,
    je ne comprends pas la partie réglages additionnels
    « Sous Windows, même principe en éditant le fichier C:\WINDOWS\system32\drivers\etc\hosts ; »
    que dois je rajouter dans le fichier hosts ?
    par exemple une ligne du type
    127.0.0.2 wpchannel.local

    merci pour votre réponse et pour ce super article

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Ce fichier hosts permet de surclasser les serveurs de DNS votre FAI. Autrement dit, c’est votre machine qui va définir quel serveur doit être utilisé pour afficher un domaine précis. Il vous faut spécifier l’IP de votre serveur local puis le domaine retenu pour votre projet.

  8. Avatar de algaillard
    algaillard

    Bonjour,
    Merci pour les conseils.
    J’ai installé wordpress 5.1 sur mon Synology DS218+ et ça tourne.bien
    Néanmoins, l’installation de l’extension mailpoet (pour les abonnements et les newsletters) refuse de fonctionner car elle dit ne pas pouvoir se connecter à la base de données.
    Nota : C’est exactement la même chose en utilisant le paquet standard fourni par Synology qui lui, crée automatiquement une base de donnée.
    Quelqu’un aurait-il rencontré (et résolu) un tel problème ?

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Le problème se produit-il à l’installation de l’extension ? Il faudrait sans doute revoir la configuration de PHP pour allouer plus de mémoire.

  9. Avatar de Apostille
    Apostille

    Après avoir suivi la procédure, impossible d’ouvrir PhpMyadmin pour créer ma base de données, je tombe sur une fenêtre qui me demande un nom d’utilisateur

    1. Avatar de Ivan
      Ivan

      J’ai le même problème. Y a-t-il une solution?

      1. Avatar de Aurélien Denis
        Aurélien Denis

        Si vous tombez sur la page de connexion à phpMyAdmin, c’est normal. Il vous faut spécifier le nom d’utilisateur et le mot de passe. Cela peut être modifié dans le paquet phpMyAdmin dans Synology.

  10. Avatar de Bernard G.
    Bernard G.

    Bonjour,

    Merci pour cet excellent article… Très utile et bien détaillé.

    Amicalement

  11. Avatar de alanya
    alanya

    Merci pour cet article qui va me permettre de me lancer dans l’installation d’un WordPress sur mon DS2013.
    J’espère qu’il y en aura d’autres … En tout cas, je m’abonne 😉

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Merci !