Nombre de webmasters SPIP découvrent la programmation de ce CMS en l’installant dans un contexte Windows® à l’aide d’un des deux kits intégrés Wamp ou Easyphp. Cette situation est sûrement due à la force des habitudes, qui demeure à peu près seule raison d’en rester là.
Dès lors qu’on aura installé la version de Debian de son choix, on découvrira rapidement avoir manqué de quelque chose en terme de confort et de facilités de travail. Apache, Mysql, PHP et Linux fonctionnent en effet en osmose native, et permettent une approche cohérente entre le primo-développement de son portail en local, puis sa mise en service et sa maintenance sur son serveur d’hébergement.
Nous détaillerons ici rapidement les opérations à réaliser, certaines extraites du manuel de sidux dans sa partie "Lamp dans sidux" dont la lecture est vivement recommandée.
Avant d’entrer dans le vif du sujet, interrogeons-nous, en tant que "spipette" ou "spipeux" sur ce qu’il faut attendre de ces opérations, qui peuvent nécessiter des préalables tels que l’installation d’un nouveau système d’exploitation sur son ordinateur, ce qui n’est pas rien.
Après tout la notion de confort est très relative, et on a parfaite légitimité à redouter le cumul de l’apprentissage à manipuler un nouvel environnement avec ses déboguages de webmaster. Pour celles et ceux ayant pris l’habitude d’un logiciel comme "Dreamweaver®" par exemple, la migration pourra s’imaginer comme un retour à l’âge de pierre. Alors pourquoi parler de confort ?
Tout d’abord parce que sous GNU/linux, on ne travaille pas avec du silex, mais on réalise rapidement qu’en terme de programmation, il vaut mieux évoluer dans un environnement léger et stable, qualificatifs dont on peut difficilement qualifier certaines usines à gaz "facilitant" jusqu’à la flagornerie notre supposée "créativité". La migration en somme, signifie aussi un changement de mentalité. D’un contexte de course à la consommation, on passe à celui sûrement plus austère et voire moins gratifiant d’un système prévu pour le travail et le web, qui constamment nous recentre sur l’essentiel : le site Internet est un outil pour communiquer, qui avant d’être esthétique et attrayant, mérite d’être accessible, léger et si possible, intéressant.
Bien sûr, si votre objectif est que votre site ne soit pas accessible aux personnes rencontrant des difficultés visuelles, voire ne voyant plus dutout, ou aux personnes utilisant d’anciens navigateurs ou souhaitant utiliser vos contenus pour enrichir et diffuser les leurs, si vous préférez combiner ces exclusions à l’imposition à vos visiteurs d’installer un logiciel propriétaire tiers pour le visiter, alors le plus sage effectivement, est de faire tout votre site en interface Flash® en utilisant Dreamweaver®, Flash® version n et autres formidables prouesses technologiques en restant sous Windows® dont il faudra vous convaincre qu’il en soit une aussi [1].
Les outils dans GNU/linux sont souvent plus spartiates, plus modulaires, au point qu’on ne puisse à vrai dire établir de comparaison pertinente avec les choix techniques d’autres parti-pris. Cependant ils ont pour caractéristiques d’être libres, de pouvoir donc se redistribuer et partager sans contrainte, et donc d’être en eux-même en cohérence avec l’idée même du web, celle qui fera de vos portails des espaces conviviaux d’échanges. SPIP étant un outil communautaire et collaboratif dans cet esprit, c’est autour de ses fondammentales que vous pourrez réfléchir vos conceptions.
D’autre part certaines caractéristiques de votre système local vont pouvoir réellement coincider avec la configuration du serveur d’hébergement, et c’est sans doute surtout à celà que nous faisons référence en terme de confort : vous pourrez par exemple tester votre spip en situation de cohabitation avec d’autres langages et outils de service comme par exemple Perl, python, la libraire pear, d’autres bases de données, des bibliothèques graphiques comme GD2, Imagemagick, etc .
1. Installation de l’environnement serveur.
Ouvrez un terminal et via la commande su devenez root
faites :
apt-get-update && apt-get install apache2 apache2-utils apache2-mpm-prefork php5 php5-common php5-gd mysql-server mysql-common libapache2-mod-php5 php5-mysql phpmyadmin bum gftp[3]Tout ça va vous installer l’essentiel. Il est vous est conseillé d’entrer un mot de passe pour Mysql, car laisser ce champ vide donne de mauvaises habitudes. Ceci dit il n’est pas obligatoire d’en choisir un qui soit impossible à retenir, sauf bien entendu pour les masochistes, dont il convient de respecter les goûts.
2. Préparer son web local pour y mettre ses projets web
2.1. Le web local
Sous Debian, la configuration d’apache est à l’adresse /etc/apache2/apache2.conf et le web local est installé dans le répertoire /var/www.
Testons pour commencer le bon fonctionnement de notre installation. Dans Kate ou tout autre éditeur de texte [4], éditons un fichier texte dont le contenu sera :
# test.php
<? phpinfo(); ?>puis sauvons-le dans notre /home/utilisateur [5] sous la dénomination test.php.
Ensuite dans une console root, on copie ce fichier dans /var/www
cp /home/utilisateur/test.php /var/www/Puis avec un navigateur Internet, rendons-nous à la page :
http://localhost/test.php
ou
http://son_adresse_ip:80/test.php
Ceci devrait retourner toute notre configuration et tous les paramètres par défaut de php.
Le répertoire /var/www est doublement sécurisé, à la fois par les protections d’apache et du système d’exploitation. En effet sous GNU/linux et par défaut, à l’exclusion du répertoire personnel de l’utilisateur en cours, tout autre répertoire n’est au départ pas accessible en écriture à d’autres personnes que l’administrateur root.
Il est déconseillé de laisser les choses en l’état en supposant pouvoir travailler en tant que root : c’est beaucoup trop imprudent, et peut conduire à ruiner définitivement tout son système et toutes ses données par inadvertance. Il existe plusieurs méthodes permettant de faire en sorte qu’on puisse éditer directement ses sources spip en tant qu’utilisateur.
Avant toute chose, ajoutons-nous en tant qu’utilisateur au groupe www-data ; dans une console d’adminstrateur, on entre :
adduser utilisateur www-data Pour développer aisément ses spips dans /var/www, voici les moyens accessibles :
a. Créer un raccourci du répertoire /var/www à un sous-répertoire de son /home/utilisateur
En tant qu’utilisateur, on crée d’abord, en graphique ou en console, dans son home un sous-répertoire www ; la commande dans la console est :
mkdir /home/utilisateur/wwwOuvrons ensuite un terminal root et entrons-y cette commande, qui établi un lien symbolique vers ce nouveau répertoire :
ln -s /home/utilisateur/www /var/www
b. Dédier une partition préparée à cet effet, accessible à l’utilisateur.
Dans l’exemple qui suit la partition dédiée est montée dans un sous-répertoire www de /media
D’autre part, ne s’agissant pas d’une adresse accessible par défaut en écriture à notre utilisateur, on prendra soin de vérifier que le fichier /etc/fstab en assure le montage automatique au démarrage en lecture-écriture pour les utilisateurs comme ceci, par exemple :
UUID=4abc0a42-7ace-4b2c-b65b-2991df649f60 /media/www ext3 auto,users,rw,exec,noatime 0 2Le procédé est le même que celui décrit ci-dessus, sauf que bien entendu on utilise le répertoire de montage de la-dite partition comme cible de notre lien symbolique ; ici pour le soin de l’exemple :
ln -s /media/www /var/www2.2. Un premier spip local
Quelque soit l’environnement fenêtré de votre Debian, vous pourrez toujours télécharger les dernières sources de spip sur le site de spip, puis les décompresser graphiquement avec un gestionnaire de fichiers capable de réaliser l’opération. Vous disposerez ensuite par copie les sources contenues dans l’archive dans un sous-répertoire de votre espace de développement. par exemple si celui-ci est dans votre home :
/home/utilisateur/www/essai_de_spipMais vous constaterez qu’il peut être interessant d’exploiter les commandes console à différents niveaux :
Pour changer à la volée les permissions des différents répertoires requis pour l’installation, on se déplace dans la console jusqu’à l’interieur du répertoire à modifier. pour l’exemple :
cd /home/utilisateur/www/essai_de_spippuis on change d’une seule commande les permissions de config, IMG, local, et de tmp
chmod -R 777 config IMG local tmpNotez que pour plus de facilité encore à démultiplier vos projets spip, vous puissiez, après avoir décompacté vos sources de SPIP :
y ajouter d’emblée les répertoires /squelettes /plugins et /plugins/auto :
mkdir squelettes plugins plugins/autofixer les permissions dans les sources pour l’ensemble :
chmod -R 777 config IMG local tmp squelettes plugins plugins/autopuis utiliser pour copier vos sources dans un nouveau projet une commmande préservant les permissions pré-établies, par exemple :
cp -Rupv /chemin/sources/* /home/utilisateur/www/essai_de_spipVous êtes alors prêt à installer SPIP en local en entrant dans la barre d’adresse de votre navigateur :
http://localhost/www/essai_de_spip/ecrire
3. Des points à connaître
3.1. Il est utile qu’apache et mysql fonctionnent pour que spip fonctionne...
Les logiciels comme Apache et MySQL sont des serveurs, à savoir des outils susceptibles de fonctionner en permanence en tâche de fond sur l’ordinateur sur lesquels ils sont installés. On parle aussi de "services" ou de "démons".
Pour lancer Apache par exemple sous Debian quand il est encore inactif, on entre dans une console root :
/etc/init.d/apache2 startPour lancer MySQL, c’est pareil :
/etc/init.d/mysql startLa syntaxe pour arrêter un service sera du même genre :
/etc/init.d/service stop...notez évidemment que si les deux services spécifiques cités ne sont pas actifs, vous pourrez attendre longtemps avant que votre spip local fonctionne ! mais rassurez-vous nous avons tous oublié de les lancer un jour ou l’autre !
La commande permettant de vérifier l’état actif ou inactif d’un serveur est celle-ci :
/etc/init.d/service status3.2. Dans Debian la mise à jour d’un serveur active son lancement automatique à chaque démarrage.
Debian a la particularité d’activer le lancement automatique des services qui le peuvent si le paquet concerné est mis à jour. Donc si lors de leur installation vous ne paramétrez pas apache et mysql comme devant démarrer à chaque boot de votre Debian, ça le sera dès que l’un ou l’autre ou les deux seront mis à jour.
Un moyen de revenir sur cette situation si par exemple, vous n’utilisez pas Debian uniquement pour développer du SPIP 24h/24 et voudriez maîtriser vos ressources en ne les activant-désactivant qu’au strict gré de votre besoin, est d’utiliser l’outil bum (Boot up manager), avant-dernier paquet logiciel installé dans notre liste.
Bum est le successeur de l’outil aujourd’hui déprécié rcconf, et il permet comme son ancêtre de controler les services activés au démarrage. À la différence de rcconf bum fonctionne en mode graphique, mais s’agissant d’un outil système bien sûr, il vous demandera votre mot de passe d’adminstrateur avant de démarrer.
Son fonctionnement est ultra-simple : il affiche sur une colonne l’ensemble des services disponibles, ceux prévus pour s’activer au démarrage étant cochés dans des cases. Pour activer désactiver vos services au démarrage, il suffit de jouer des ces sélections puis via le menu, d’appliquer les changements demandés.
Soyez attentif à ce que vous faites avec bum ! N’activez-désactivez au démarrage que les services dont vous connaîtriez la fonction spécifique. Ici nous ne parlons a priori que d’apache et mysql.
3.3. Si on développe un SPIP, c’est peut-être pour publier un jour en ligne...
Gftp, installé durant la procédure indiquée dans cet article, est un client ftp/ssh fonctionnant en mode graphique, qu’on utilise une cible ftp ou un compte distant ssh2.
Un de ses grands avantages est de permettre l’édition de signets avec mémorisation des paramètres pour les connexions distantes à vos différents hébergements.
En conclusion : Cet article n’a pas vocation à constituer un modèle à proprement parler. Il vise à apporter des conseils pouvant aider les personnes à réaliser l’installation de spip de développement sur leur système Debian GNU/linux et n’est probablement pas abouti ni exempt d’erreurs éventuelles. Signalez-nous celles-ci dès que vous les rencontrez, afin qu’elles soient rapidement corrigées. Utilisez pour ce faire le formulaire de contact du site. Faites de même si vous rencontrez le moindre problème en appliquant les recommandations de l’article et/ou si voyiez des choses intéressantes à y ajouter. Merci à vous.
[1] Cette logique est d’autant plus défendable qu’elle correspond en tout point à la négligeance quant au sort de toutes les supposées minorités dans nos belles démocraties hautement techniciennes contemporaines : 17% des personnes utilisant Internet rencontrent des problèmes visuels !
[2] Pour GNU/linux Fichier.truc n’est pas fichier.truc ; Pour GNU/linux, cp -R Mes Documents signifiera copier le répertoire Mes puis le répertoire Documents, qu’il ne trouvera bien sûr ni l’un ni l’autre, et vous le notifiera !
[3] Notez que sous GNU/linux, sélectionner une expression texte comme par exemple une commande avec sa souris, puis cliquer sur la molette de la souris là où l’on veut reproduire l’expression en question, permet dans certains cas d’éviter de la re-taper ou de procéder à de fastidieux copier-collers.
Si par ailleurs, apt-get vous retournait un message d’erreur sur un composant (celà peut arriver, surtout avec sid, supprimez-le de la liste des paquets à installer et entrez à nouveau votre commande d’installation.
[4] On parle ici d’éditeur et texte et pas de "traitement de texte". pour faire la différence, référez-vous à l’article du site qui en parle, et dont les informations sont toutes aussi valides pour GNU/linux que pour d’autres systèmes. Quant à Kate, il est cité car c’est un éditeur avec reconnaissance syntaxique de nombreux langages, avec un navigateur de fichiers intégré, et qui permet de sauvegarder des sessions correspondant à chacun de ses projets web, évitant de fastidieuses navigations pour passer des uns aux autres.
[5] on remplace bien sûr la chaine ’utilisateur’ par son véritable identifiant d’utilisateur.