我有一个基于CodeIgniter的站点的本地,登台和生产环境.我越来越多地发现每次部署版本时,由于服务器的不同,我会有越来越多的代码需要更改.
我可以添加一个好的(和快速)解决方案,这将允许我通过使用一个设置来设置这些变量.哪个是在index.php中插入这个的最佳位置,某种钩子?
如果您正在使用Apache,则可以设置一个环境变量,该变量可由PHP在该站点的虚拟主机文件中读取:
<VirtualHost *:80>
DocumentRoot /path/to/site
ServerName local.mysite.com
ErrorLog /path/to/error_log
CustomLog /path/to/access_log common
<Directory /path/to/site>
SetEnv ENVIRONMENT local
RewriteEngine On
Options FollowSymLinks Indexes
AllowOverride AuthConfig Options FileInfo
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
因此,您现在可以在index.php文件中相应地检查和设置服务器环境:
// always default to production for safety
$environment = 'production';
// check for an environment override
if (function_exists('apache_getenv') && apache_getenv("ENVIRONMENT")) {
$environment = apache_getenv("ENVIRONMENT");
} else if (getenv("ENVIRONMENT")) {
$environment = getenv("ENVIRONMENT");
}
// set the environment constant
define('ENVIRONMENT', $environment);
Run Code Online (Sandbox Code Playgroud)
通过此设置,您现在可以自由地部署站点并application/config/[file].php为每个环境的文件添加其他配置参数.
处理多环境设置的另一种可能性是在文档根目录之外创建文件,并由包含服务器环境值的版本控制系统(即.gitignore)忽略.然后你可以通过file_get_contents()或等效的方式读取该文件.
| 归档时间: |
|
| 查看次数: |
4378 次 |
| 最近记录: |