Création d'un site Joomla!

Dans un article sur JoomXtensions, j'avais évoqué la possibilité d'installer rapidement un site Joomla! à partir de scripts de faible taille capables d'importer directement les packs d'installation depuis le serveur Joomla! francophone, mais JInstaller avait été remplacé par GetJoomla FR qui n'est plus accessible sur ce serveur.

La première chose à vérifier est que le serveur respecte bien les pré-requis concernant les versions de PHP et MySQL, au risque que l'installation ne puisse se faire s'ils ne sont pas respectés. En ce qui concerne PHP, il est conseillé d'utiliser une version 7.1 ou 7.2 pour la version 3.9 de Joomla!

Pendant longtemps et encore souvent maintenant pour une installation directe en ligne, la méthode était de récupérer en local le pack d'installation standard (ou un quickstart de template incluant Joomla! et des exemples avec des extensions complémentaires) et de le décompresser puis d'envoyer ces milliers de fichiers avec un client ftp sur le serveur de développement, avec le risque d'incident de copie que cela représente.

Pour une installation sur un serveur local (personnellement j'utilise UwAmp dans sa version non installable, simple zip qu'on décompresse dans son propre dossier), il suffit de créer un sous-dossier spécifique au site dans le dossier principal ("www" ou "public_html" par exemple) correspondant au "localhost" du serveur et d'y décompresser ce pack d'installation.

En local sauf cas particulier, il n'est pas nécessaire de créer une base de données, l'utilisateur "root" de la base de données ayant ce droit de création. Mais rien n'empêche de le faire cependant.

Pour simplifier une installation sur un serveur distant si on ne dispose pas d'un script dont j'ai parlé au début, le mieux est de pouvoir décompresser en ligne le pack d'installation, mais peu d'hébergeurs le permettent en mutualisé. L'avantage est de n'envoyer qu'un fichier au lieu de milliers et donc de le faire dans un temps beaucoup plus court et avec beaucoup moins de risque d'altération, altération dont on serait immédiatement averti lors de la décompression. Ce pack une fois sur le serveur distant, il faut donc le décompresser soit depuis un gestionnaire de fichiers proposé dans le panel d'administration du compte chez l'hébergeur, soit avec un script : bien souvent j'utilise le fichier kickstart.php d'Akeeba, capable de décompresser aussi bien des fichiers "jpa" Akeeba que des fichiers "zip" (je n'ai pas testé d'autres types de packs compressés).

Encore plus simple pour ceux qui disposent d'une version Pro d'Akeeba backup : utiliser la version Pro de Kickstart qui permet d'importer le pack d'installation depuis une URL, ce qui rend les choses encore plus rapides. L'inconvénient est qu'on n'a pas d'adresse directe vers le zip d'installation du pack francophone car elle change à chaque version (ou alors il faut aller la chercher dans https://api.github.com/repos/AFUJ/joomla-cms-fr/releases) et qu'il faut donc utiliser soit la dernière version anglophone de Joomla! que propose Kickstart, soit un quickstart de template.

Une fois le pack décompressé, il suffit de lancer la procédure d'installation, de fournir les informations d'accès à la base de données, de supprimer si besoin le fichier de sécurité si le serveur de base n'est pas "localhost" et de suivre les différentes instructions.

Personnellement, j'installe ensuite systématiquement l'éditeur de texte JCE, l'extension de sauvegarde Akeeba backup pour des sauvegardes complètes, le plugin LazyDbBackup pour des sauvegardes automatisées de la base de données, Cache cleaner de Regular Labs pour une gestion plus facile voire automatisée du vidage de cache, JCH optimize pour une gestion optimisée du cache et la compression des fichiers CSS et JS et enfin OSmap pour le plan de site. Pour certaines de ces extensions, je privilégie leurs versions "pro". Je ne parle ici que des extensions standard de base. Il est bien entendu qu'ensuite, selon les besoins spécifiques du site, il faut alors faire appel à des extensions comme galerie photo, forum ou autre.