我希望能够以最有效的方式自动区分我的开发服务器和生产(和 Beta 测试)服务器,而不依赖于 HTTP_HOST 之类的东西。我希望这对其他开发人员来说是透明的,这样他们就不必担心。
当我部署到生产环境时,我使用预编译 css 并压缩 js,但我希望在生产环境中使用未压缩的 js(以及即时编译的 css)。一个简单的“开发”标志就足以区分它们,但是在不浪费生产资源的情况下将此变量引入开发环境的最佳方法是什么?
我当前的计划是动态重写 php (或 ini 文件,用 parse_ini_file 解析)文件作为我们部署过程的一部分,将开发人员设置为 false (无论如何我都可以重写此文件来为编译后的文件设置新文件名) CSS 和 js)。但是,我担心如果部署脚本出现意外问题(如所写),则可能存在将开发人员模式插入生产的风险。换句话说,我希望开发环境具有特定性,这样就不会有生产系统被误认为开发系统的风险。
我考虑使用单独的 user.ini 文件来设置自定义“开发”标志来区分这一点,但我很难让它发挥作用,并且想在花更多时间之前看看是否有更好的解决方案。
最佳答案
您可以做的是在每台服务器上的 httpd.conf 文件中设置该标志。因此,对于您的 Dev box,您只需将其添加到您的 apache conf SetEnv APPLICATION_ENVdevelopment
中即可。对于您的生产框,执行相同的 SetEnv APPLICATION_ENV 生产
。
在您的 php 应用程序配置中,您可以执行以下操作:
switch ($_SERVER['APPLICATION_ENV']){
case 'production':
define('SOME_CONSTANT', 'SOME VALUE');
break;
case 'development':
define('SOME_CONSTANT', 'SOME VALUE');
break;
}
关于php - 有效区分 PHP 的开发服务器和生产服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789448/