我听说过“部署应用程序”这一短语听起来比将单个已更改的文件上传到服务器要好/容易/可靠得多,但是我不知道从哪里开始。

我有一个受版本控制(在Subversion存储库中)的Zend Framework应用程序。我该如何“部署”我的应用程序?如果我有一个不想覆盖的“上载”目录,该怎么办?

我通过第三方托管我的应用程序,因此除了FTP之外我对其他信息一无所知。如果其中任何一个涉及登录到我的服务器,请解释该过程。

最佳答案

自动将测试部署到阶段服务器,然后将其自动运行到该服务器,这称为连续集成。这样做的想法是,如果您 checkin 了破坏测试的内容,则会立即收到通知。对于PHP,您可能需要研究XincphpUnderControl

不过,您通常不希望自动部署到生产环境。通常要做的是编写一些脚本来自动执行任务,但是您仍然需要手动启动。为此,您可以使用诸如Phing或其他构建工具之类的框架(最受欢迎的选择是Capistrano),但是您也可以一起搅拌一些shell脚本。我个人更喜欢后者。

脚本本身可以执行不同的操作,具体取决于您的应用程序和设置,但是典型的过程是:

  • ssh到生产服务器。其余命令通过ssh在生产服务器上运行。
  • 运行svn export svn://path/to/repository/tags/RELEASE_VERSION /usr/local/application/releases/TIMESTAMP
  • 停止服务(Apache,守护程序)
  • 运行unlink /usr/local/application/current && ln -s /usr/local/application/releases/TIMESTAMP /usr/local/application/current
  • 运行ln -s /usr/local/application/var /usr/local/application/releases/TIMESTAMP/var
  • 运行/usr/local/application/current/scripts/migrate.php
  • 启动服务

  • (假设您的应用程序在/usr/local/application/current中)

    关于php - 如何开始从Subversion版本库部署PHP应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/800294/

    10-12 07:35
    查看更多