微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 在SVN部署期间维护开发环境和实时环境之间的配置差异

我们使用ExpressionEngine CMS(PHP)来创建网站.对于每个站点,我们设置了一个subversion存储库并提交EE安装以及所使用的任何自定义模板,图像,javascript等.存储库中包含的文件包含所有环境变量和.htaccess文件.

我们有一个开发服务器,它通过我们用于开发的post-commit更新了存储库的工作副本.当我们准备发布时,我们在subversion中创建一个分支,进行生产环境所需的任何更改,标记版本号,导出存储库,将其上载到实时服务器上的新目录,并将文件符号链接到位.回滚就像symlinking回到之前的版本一样简单.

问题是我们必须修改开发和生产服务器需要不同的环境变量的步骤.这就像(联合国)评论重定向错误位置的htaccess规则,交换谷歌地图API密钥,因为域不同,运行脚本将javascript最小化为一个混淆文件以保持大小和http连接关闭等等.

问题是如何更加自动化?我们希望将发布程序降至最低限度.我熟悉Capistrano和Make等工具的存在,但我不确定如何让他们修改所有必要的文件……你会如何组织这样的事情?是否值得花时间自动化,每隔几周就会发生一次?

解决方法:

可以通过启用$_SERVER [‘HTTP_HOST’]来处理许多配置选项.

例如

switch ($_SERVER['HTTP_HOST']) {
    case 'developement.domain.com':
        $api_key = "dev environment api key";
        break;
    default:
        $api_key = "live environment api key";
}

然后,对于.htaccess问题,您可以使用AccessFileName指令在vhost定义中设置备用.htaccess文件

<VirtualHost *:80>
    ServerName sitename
    AccessFileName .htaccess-dev
</VirtualHost>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐