用于开发和生产的不同网址

时间:2017-03-07 11:21:39

标签: linux codeigniter nginx

我正在尝试使用NGINX设置CodeIgniter项目。但是,它已经是一个在线的网站,例如test.com。这意味着该项目还有$config['base_url'] = 'test.com'。但是,当我想设置NGINX服务器块时,我必须根据this post定义与base_url中的域相同的服务器名称。但是,我希望将url test.dev用于开发,test.com应该只链接到在线网站。我如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

设置您的ENVIRONMENT变量。 https://www.codeigniter.com/user_guide/general/environments.html 为了您的生产

 define('ENVIRONMENT','production');

和发展

 define('ENVIRONMENT','production');

在您的配置文件中,您可以像这样或任何变量进行检查

if(ENVIRONMENT == 'development'){
    $config['base_url'] = 'test.dev';
}else{
    $config['base_url'] = 'test.com';
}

答案 1 :(得分:1)

创建环境。 Handling Multiple Environments

在index.php中找到一行

//define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

在该行下方检查dirname并粘贴此代码

switch(dirname(__FILE__))
{
case 'Path\of\your\live\server\folder':
    define('ENVIRONMENT','production');
break;

case 'path\of\your\local\folder':
    define('ENVIRONMENT','development');
break;
}

现在您拥有一个全局变量ENVIRONMENT,它具有生产或开发价值。您可以在此变量上放置一个开关,并在config.php中为base_url指定值,或在database.php中为DB凭据选择活动组。

答案 2 :(得分:1)

在CI中,您可以为正在使用的每个环境定义config.php文件。 在config文件夹中,创建一个development文件夹,在其中放置config.php文件,其中包含您需要的base_url。然后,在该环境中,CI将使用该新文件而不是主config.php文件。