Introduction
Cette page vise à expliquer une manière de monter son environnement de développement pour pour vlm
Objectif
- Disposer de plusieurs vhost de développement en prise directe avec un checkout local du subversion de type :
- http://trunk.vlm.foo.com pour le trunk
- http://prod.vlm.foo.com pour la branche de maintenance actuelle
- pouvoir juste faire un svn update pour mettre à jour ces vhosts
Prérequis
- avoir installé VLM comme indiqué dans installation
- la suite suppose que vous avez donc un répertoire /home/vlm qui est votre répertoire racine
Nota bene
- le windserver & le module php issu de vlm-c seront nécessairement mutualisés. (répertoire ~/bin )
- pour des raisons d'espaces disques, le répertoire contenant les gshhs sera mutualisés également
Checkout du svn
Contrairement à l'installation, le but est ici de pouvoir travailler dans le svn, et donc que vos modifications soient visibles sans avoir besoin de commiter.
En se plaçant dans votre répertoire racine, utiliser la commande :
svn co http://dev.virtual-loup-de-mer.org/svn/vlm svn
ce qui va créer un répertoire 'svn' contenant tout le subversion de vlm.
Configuration du ou des vhost
Le but est de pouvoir éventuellement disposer d'un vhost par branches du subversion.
Exemple de fichier vhost pour le trunk (1.2.3.4 est l'ip de votre serveur, foo.com votre domaine, vlm le sous domaine que vous avez utilisé dans l'installation précédente) :
<VirtualHost 1.2.3.4:80>
ServerAdmin admin@foo.com
DocumentRoot /home/vlm/svn/trunk/site
ServerName trunk.vlm.foo.com
ServerAlias vlm-trunk
ErrorLog /var/log/apache2/vlm_trunk_error_log
CustomLog /var/log/apache2/vlm_trunk_access_log combined
<Directory /home/vlm/svn/trunk/site>
DirectoryIndex index.php index.html
Order Allow,Deny
Allow from All
AllowOverride All
Options Indexes Includes
AddType application/x-httpd-php .php
</Directory>
Exemple de vhost pour la branche V_0_9 :
<VirtualHost 1.2.3.4:80>
ServerAdmin admin@foo.com
DocumentRoot /home/vlm/svn/branches/V_0_9/site
ServerName prod.vlm.foo.com
ServerAlias vlm-prod
ErrorLog /var/log/apache2/vlm_prod_error_log
CustomLog /var/log/apache2/vlm_prod_access_log combined
<Directory /home/vlm/svn/branches/V_0_9/site>
DirectoryIndex index.php index.html
Order Allow,Deny
Allow from All
AllowOverride All
Options Indexes Includes
AddType application/x-httpd-php .php
</Directory>
</VirtualHost>
Créez autant de vhost que vous avez de branches ou vous travaillez..
Mysql
Dupliquez la base mysql si vous le souhaitez, vous pouvez sans problème utiliser une base par vhost. Mais le besoin est en général assez minime, les modifications de schema étant rares et en générale ascendantes.
php (core)
Vous avez déjà tout configuré lors de l'installation initiale.
Répertoires et liens symboliques
- Créer un répertoire ~/svndatas/ qui contiendra entre autres les répertoires TEMP de chaque branche
- Créer les sous répertoire (exemple : ~/svndatas/tmp-trunk)
- Pour chaque branche, mettez vous dans le répertoire site et créer le lien symbolique vers les images. Exemple : ln -s ../medias/images/ images
Fichiers de configurations
Les fichiers de configuration et les liens symboliques peuvent être créé au sein des répertoires du subversion sans en faire partie. Ne les ajoutez pas avec svn add !!!
A la fin de cette installation, quand vous ferez un 'svn status', vous verrez :
? conf ? site/images ? site/.htaccess ? site/robots.txt ? lib/phpcommon/param.php ? hosting/conf/conf_script
Le ? signifie que le fichier n'est pas versionné, et c'est normal.
.htaccess
Dans chaque branche sur laquelle vous travaillez, créez votre fichier .htaccess.
Exemple pour le trunk, fichier ~/svn/trunk/site/.htaccess
<Files /f_windAtPosition.php> Order Allow,Deny Deny from All </Files> <IfModule mod_php5.c> php_value include_path ".:/home/vlm/svn/trunk/lib/phpcommon:/usr/share/php:" php_value extension vlmc.so </IfModule> Options Indexes Includes FollowSymLinks
param.php
Dans chaque branche sur laquelle vous travaillez, créez votre fichier param.php à partir du fichier hosting/conf/param.php.dist.
Exemple pour le trunk, fichier ~/svn/trunk/lib/phpcommon/param.php :
<?php
define("SERVER_NAME", "VLMTEST-TRUNK");
/********to_be_change****************/
define("DBSERVER", "localhost");
define("DBUSER", "vlm");
define("DBPASSWORD", "foobar");
define("DBNAME", "vlm");
// Stockage des gshhs, idem que VLMGSHHS dans conf_script
define("GSHHS_DIRECTORY", "/home/vlm/gshhs");
// SYSTEME DE GESTION DU VENT : OLD, NEW, NO, SPF
define("SYSTEME_WIND_AT_POSITION", "SPF");
//TEMPORARY DIR : idem que $VLMTEMP = $VLMRACINE/tmp dans conf_script
define("VLMTEMP", "/home/vlm/svndatas/tmp-trunk");
?>
NB :
- c'est a cet endroit qu'il faut spécifier la base de donnée éventuellement spécifique à la branche
- le paramètrage du GSHHS_DIRECTORY utilise le même répertoire que l'installation initiale
- le répertoire VLMTEMP pointe vers le répertoire que nous avons créé précédemment.
conf_script
Pour pouvoir tester des runs du moteur, il est nécessaire de configurer le conf_script pour chaque branche. Il y a une différence d'arborescence qui nécessaire un lien symbolique. Ce qui s'appeller le VLMRACINE est la racine de la branche
Pour chaque branche :
- en se placant à la racine de la branche, créer un lien symbolique ln -s hosting/conf conf
- copier le fichier hosting/conf/conf_script.dist en hosting/conf/conf_script et éditez le
- tout n'est pas utile, mais il faut modifier au moins les clefs suivantes :
- export VLMJEUROOT=$VLMRACINE
- export VLMTEMP=/home/vlm/svndatas/tmp-trunk
- personnalisez pour qu'il trouve votre binaire php export VLMPHPPATH="/opt/php/bin/php --define extension=vlmc.so --define include_path=.:/opt/php/lib/php:$VLMJEUROOT/lib/phpcommon"
- personnalisez d'autres clefs si vous savez ce que vous vous faites...
Notes particulière sur l'utilisation des scripts du moteur
execution à la maine
Les scripts shell de VLM présupposent que la variable VLMRACINE est définie.
Donc si vous souhaitez lancer un run moteur, par exemple, dans la branche trunk, il faut avoir défini la variable
Exemple :
VLMRACINE=/home/vlm/svn/trunk ; /home/vlm/svn/trunk/moteur/cron-vlm.sh
Crontab
Il est nécessaire de préceder les lignes qui vont s'appliquer à une branche donnée par l'affectation correcte de VLMRACINE (Cf. exemple dans le moteur)
Divers
Fichier robots.txt
Si vous faites l'install ci dessus sur un serveur connecté à un internet, vous ne souhaitez sans doute pas être référencé par les moteurs de recherche (ne serait ce que pour une question de charge serveur). Dans ce cas, créer un fichier robots.txt dans 'site' qui contient :
User-Agent: * Disallow: /
