gpt4 book ai didi

codeigniter - 使用 CodeIgniter 网站解决多服务器环境

转载 作者:行者123 更新时间:2023-12-03 07:04:19 25 4
gpt4 key购买 nike

我的基于 CodeIgniter 的网站有一个本地临时和生产环境。我越来越发现,每次部署一个版本时,由于服务器的变化,我都会有越来越多的小代码需要更改。

我可以添加一个好的(且快速的)解决方案,它允许我仅使用一个设置来设置这些变量。将其插入到index.php(某种 Hook )中的最佳位置是哪里?

最佳答案

如果您使用 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>

这样,您现在就可以在您的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);

通过此设置,您现在可以自由部署站点并向每个环境的 application/config/[file].php 文件添加其他配置参数。

替代...

处理多环境设置的另一种可能性是在文档根目录之外创建一个文件,该文件会被包含服务器环境值的版本控制系统(即 .gitignore)忽略。然后,您可以通过 file_get_contents() 或等效方法读取该文件。

关于codeigniter - 使用 CodeIgniter 网站解决多服务器环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com