2010-10-01 45 views
0

J'essaie d'automatiser les déploiements d'un projet particulier et un peu perdu quant à savoir qui gérer le fichier de configuration et les ressources utilisateur. (L'application est basée sur le btw de Zend Framework).Gestion de la configuration et du contenu avec des outils de déploiement automatisés pour l'application ZF

dossier de l'application principale est structuré comme suit:

./app 
    ./config.ini <----- config file 
    ./modules 
    ./controllers 
    ./models 
    ./views 
./libs 
./public 

Ce fichier de configuration est l'endroit où tous les configs sont stockés. Donc le dossier 'app' contient tout un tas de code en PHP et 'public' contient tout un tas de code en JavaScript, HTML/CSS et ce genre de choses (accessible en ligne).

Si je suis le modèle de Capistrano, où chaque paquet est développé dans son propre dossier auquel il est alors lié, comment gérer ce fichier config.ini? Qu'en est-il de tout le contenu de l'utilisateur qui est téléchargé dans ./ dossier public?

Merci!

Répondre

4

L'approche Capistrano c'est d'avoir une structure comme celui-ci sur votre serveur distant:

releases/ 
    20100901172311/ 
    201010011/ 
    [...] 
current/ (symlink to current release) 
shared/ 

dans le répertoire partagé vous inclure votre fichier de configuration et tout le contenu généré par l'utilisateur (par exemple shared/files). Ensuite, à chaque déploiement, une fois que vous avez extrait le code, vous créez automatiquement des liens symboliques depuis la caisse dans vos répertoires partagés pertinents. .: par exemple

releases/201010011/public/files -> shared/files 
releases/201010011/application/configs/config.ini -> shared/config.ini 

cette façon, lorsqu'un utilisateur télécharge un fichier à public/files il est réellement stocké dans shared/files.