使用基于ZF的应用程序的自动部署工具进行配置和内容管理

时间:2010-10-01 14:16:30

标签: zend-framework deployment automation capistrano phing

我正在尝试自动部署特定项目,并且对于谁处理配置文件以及用户资产有点失落。 (应用程序基于基于Zend Framework的btw)。

主应用程序文件夹的结构如下:

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

该配置文件是存储所有配置的地方。 所以'app'文件夹包含PHP中的大量代码,'public'包含JavaScript,HTML / CSS等类似的代码(基本上可以访问Web)。

如果我按照Capistrano的模型,将每个包扩展到它自己的文件夹然后符号链接到,我该如何处理该config.ini文件? 那么上传到./public文件夹的所有用户内容呢?

谢谢!

1 个答案:

答案 0 :(得分:4)

Capistrano方法是在远程服务器上建立这样的结构:

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

在共享目录中,您包含配置文件和任何用户生成的内容(例如shared/files)。然后在每次部署时,一旦检出代码,就会自动从结帐创建符号链接到相关的共享目录。 E.g:

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

这样,当用户将文件上传到public/files时,它实际上存储在shared/files中。