Retour d'expérience : migration de mon environnement de développement web Windows vers Debian

Tags: #<Tag:0x00007fb5e2ab2710> #<Tag:0x00007fb5e2ab2490> #<Tag:0x00007fb5e2ab2328> #<Tag:0x00007fb5e2ab2148>

Salut les zamis, j’ai franchi un pas significatif dans ma migration vers Linux, alors je suis content, je partage la bonne nouvelle ainsi qu’un petit retour d’expérience. J’ai installé sous Trixie tous les outils qui me permettent désormais de faire du développement web, je peux enfin me passer de Windows pour ça, et c’est une bonne nouvelle.

J’utilisais WAMPserver sous Windows, qui a le mérite de tout packager et d’offrir une interface centralisée pour gérer toute la pile Apache, MariaDB, PHP : arrêt et redémarrage des services, bascule d’une version à l’autre (surtout utile pour PHP), configuration des hôtes virtuels, etc.

Sous Linux, point d’interface centralisatrice, il faut installer et administrer les services séparément. L’install de Apache et MariaDB se passe très bien, et pour bénéficier de plusieurs versions concurrentes de PHP, on ajoute le dépôt sury (grâce à extrepo). La liaison entre Apache et PHP se fait très facilement par les paquets suffixés _fpm.

Quelques spécificités par rapport à Windows :

  • Gestion des droits sur le dossier www : Debian ajoute par défaut un dossier /var/www/html et invite le développeur à mettre ses sites là-dedans. Ce dossier est configuré root/root en 0755, mais il est préconisé de le transformer en [votre user]/www-data 2750. Ainsi, vous avez tous les droits pour développer, Apache a les droits en lecture pour afficher le site, et rien d’autre, ça fait le taf.
  • Gestion des hôtes virtuels : Debian installe Apache avec une gestion précâblée des hôtes virtuels. On est incité à déclarer un unique hôte virtuel par fichier de conf dans le dossier /etc/apache2/sites-available, ces hôtes virtuels peuvent ensuite être activés/désactivés indépendamment avec les commandes a2ensite et a2dissite (ces commandes créent ou suppriment un lien dans /etc/apache2/sites-enabled en arrière-boutique). À noter que le même mécanisme de available/enabled est implémenté pour les modules et les configurations Apache.
  • Gestion des droits root sur MariaDB : par défaut, MariaDB est installé avec son compte root lié au compte root Debian (connexion par unix_socket), c’est-à-dire qu’il est impossible de s’y connecter à l’ancienne avec un mot de passe MariaDB. J’ai donc utilisé sudo mariadb pour accéder au prompt sql et créer des comptes applicatifs distincts, un par base de données. Donner à ces comptes les droits CREATE DROP INDEX ALTER SELECT INSERT UPDATE DELETE sur leur base associée est suffisant pour la suite.

Quelques considérations perso :

  • Adminer a ma préférence comme outil d’administration de MariaDB, il est ultra léger et se présente sous la forme d’un unique script PHP pour tout faire.
  • Composer pour PHP et npm pour NodeJS s’installent très facilement
  • Vscodium a ma préférence comme IDE, l’intégration native de git est un plus. Là aussi, j’ai fait appel à extrepo pour installer facilement son dépôt. Je ne sais pas pourquoi, mais la dernière version a besoin que je la lance avec une option --disable-gpu, sinon j’ai une fenêtre toute noire (bug 2702).
  • apt pour la gestion de toutes ces briques est une vraie simplification. Sous Windows, chaque mise à jour de Apache ou installation d’une nouvelle version de PHP, NodeJS, etc se traduisait par des téléchargements sur des sites sourceforge ou autre, des installations plus ou moins compliquées… C’est un vrai soulagement sous Linux.

Bonjour @Thierz,

Merci pour votre partage d’expérience. Personnellement je n’ai pas totalement abandonné Windows car je l’utilise presque exclusivement pour tester le rendu de mes pages Web sous Edge. Je fais aussi appel aux outils en ligne de vérification de code HTML et CSS du W3C.

En matière d’IDE, j’ai retenu Visual Studio Code avec ses modules Git mais votre choix me semble plus pertinent car Vscodium ne ferait que cloner Visual Studio avec le tracking (pistage) en moins.

Rien ne vous empêche de construire vous-même une interface centralisée pour gérer toute la pile mais cela ne saurait remplacer complètement le mode commande. Vous pouvez aussi écrire en Bash des scripts pour automatiser certaines tâches. Il existe aussi des Frameworks tel que par exemple Symfony (PHP) ou Django (Python) qui permettent de développer des applications en ligne tout en bénéficiant d’un fond de fonctionnalités avancées et d’un niveau de sécurité élevé sans avoir à réinventer la roue. Quand on développe sous LAMP ou WAMP, on essaye à un moment ou à un autre d’aller plus vite car il y a tellement de choses à voir, à traiter… Pour de la gestion de contenu, un CMS tel que par exemple Wordpress peut très bien faire l’affaire et on peut l’étendre avec des modules ou de la programmation en PHP. Si l’on veut passer au cran supérieur, l’utilisation d’un Framework devient vite incontournable.

1 J'aime

J’utilise Symfony en effet, je le trouve très bien fait. La courbe de progression en autodidacte est un peu longue, mais au final ce n’est pas du temps perdu quand on finit par comprendre sa philosophie.

Je préfère faire mes propres CMS avec Symfony, c’est un peu plus long mais au moins c’est cousu main pour l’usage du site final. Mes rares expériences, avec les Wordpress et autres Joomla, m’ont donné l’impression de devoir composer avec une base trop généraliste qui part dans tous les sens + des plugins qui ne font jamais exactement ce qu’on veut.

Je n’ai d’ailleurs rien eu à faire de particulier dans ma migration pour conserver Symfony, puisqu’il est installé par Composer à partir de la config contenue dans les fichiers sources de mes sites.

Il y a autant d’arguments pour ou contre, notamment liés aux expériences utilisateur, mais aussi en matière de sécurité. C’est d’ailleurs pour cela que les deux existent.

Tout à fait.

Heu… ! A mon avis c’est l’inverse, c’est Visual Studio qui ne fait que cloner Vscodium avec le tracking, le pistage et toutes les windozeries en plus…
Rendons à César ce qui est à César et surtout n’inversons pas les rôles.
Salutations.

1 J'aime

Merci @euchat de cette correction d’inversion. Je vais finir par me mettre à Vscodium en abondonnant VStudio :wink: