8
03
2010
Il me restait encore un dernier point à aborder concernant mon petit script de mise en prod. Celui-ci est spécifique aux hébergements mutualisés chez 1and1, puisqu’il s’agit de la gestion des magic quotes qui sont activées par défaut chez cet hébergeur. Cette partie du script vise donc à les désactiver.
Vu qu’il s’agit d’un hébergement mutualisé, il n’est pas possible de modifier directement la configuration serveur de Php. Il est possible de faire la modification dans le code des pages Php, mais je préfère différencier les aspects métiers du code et la configuration. La dernière solution est de faire la modification dans un fichier php.ini.
Contenu du fichier php.ini :
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
Un fichier?
Oui et non : un fichier php.ini par répertoire contenant des fichiers Php.
Ce qui est un peu lourd et c’est là qu’intervient le script de mise en prod. C’est lui qui va se charger de recopier le fichier php.ini dans tous les répertoires concernés dans l’archive à distribuer. Pour faire cette opération on utilise l’instruction d’itération for. Elle n’est pas par défaut dans Ant, il faut ajouter la librairie ant-contrib (pour ma part, la version 1.0beta3 ne fonctionne pas, j’ai gardé la 0.6). Et il n’y a plus qu’à boucler sur les dossiers en excluant ceux qui n’en n’ont pas besoin comme les répertoires d’images, de css, …
<for param="folder">
<path>
<dirset dir="${DIST_DIR}">
<include name="**" />
<exclude name="*/css/**" />
<exclude name="*/images/**" />
<exclude name="*/js/**" />
</dirset>
</path>
<sequential>
<copy file="./php.ini" todir="@{folder}" />
</sequential>
</for>
Plus d’infos sur le comportement des magic quotes chez PhpFrance.
Faire suivre cet article :
Commentaires : Pas de Commentaires »
Catégories : Technique
11
02
2010
Complément important de mon script de mise en production, le tag des sources dans le repository CVS. CVS est un gestionnaire de sources, qui permet de stocker les différentes versions du code source. Il est donc intéressant de temps en temps, de placer des repères sur toutes ces sources, en particulier, lors d’une mise en prod. Cela permettra de récupérer l’ensemble des sources telles qu’elles étaient lors d’une mise en ligne donnée.
Rien de bien compliqué avec Ant, on va juste ajouter quelques instructions à la target deploy_end, qui rétablit l’accès au site une fois la mise à jour de la base (manuelle…) effectuée.
<tstamp>
<format property="tag_date" pattern="yyyy-MM-dd" />
</tstamp>
<echo message="Tag des repository CVS : prod_${tag_date}" />
<cvspass cvsroot="${CVSROOT}" password="${CVS_PWD}" passfile="./.cvspass" />
<cvs cvsRoot="${CVSROOT}"
command="rtag -R prod_${tag_date} ${CVS_MODULE}"
failonerror="false" quiet="true" reallyquiet="true" />
<cvs cvsRoot="${CVSROOT}"
command="rtag -R prod_${tag_date} ${CVS_MODULE_ENV}"
failonerror="false" quiet="true" reallyquiet="true" />
La directive tstamp permet d’obtenir la date courante au format spécifié par l’attribut pattern et la placer dans une propriété tag_date utilisable ensuite, comme ici pour le nom du tag.
La directive cvs exécute la “command” spécifié : rtag -R prod_${tag_date} ${CVS_MODULE}. Ce qui veut dire en français : place le tag prod_2010-02-10 sur le projet nommé par la propriété CVS_MODULE. Il y aura donc autant de commande cvs que de projets à tagguer.
Faire suivre cet article :
Commentaires : Pas de Commentaires »
Catégories : Technique
2
02
2010
Mon projet étant bientôt prêt, j’ai préparé la semaine dernière un script de mise en production du site, afin d’automatiser au maximum cette procédure pour la rendre plus simple, mais aussi plus sûre. N’ayant qu’un hébergement mutualisé chez 1and1, je ne dispose pas de connexion SSH, ce qui limite un peu les actions disponibles.
J’ai choisi de faire ce script avec Ant, tout simplement parce que je le connais pour l’avoir utilisé dans mes jobs précédents et qu’il me convient parfaitement. Il s’intègre de plus très bien dans Eclipse, que j’utilise pour développer, à condition d’avoir installé le plugin adéquat, soit l’environnement JDT (Java Development Tools), si on a choisi comme moi, une installation Eclipse PDT (Php Development Tools) qui n’inclue pas d’utilitaires pour Java. Car Ant tourne à l’aide de Java.
Que fait ce script?
Avec ce script, j’ai voulu automatiser 3 opérations : la sauvegarde, la construction du projet à déployer et le déploiement.
Lire la suite »
Faire suivre cet article :
Commentaires : 2 Commentaires »
Catégories : Technique
Commentaires récents