使用codeigniter的多个环境
我试图了解使用多个环境的最佳做法,例如使用codeigniter为我的应用程序进行开发、测试和生产 到目前为止,我有一个文件夹用于我的应用程序。我在配置文件中看到过这样的地方:为每个环境创建一个文件夹,并在每个环境文件夹中放置数据库文件的副本 这是处理多个环境的最佳方法吗?我问这个问题的原因是,如果我在我的dev子域上工作,我仍然需要将所有相同的文件重新加载到主根文件夹。这是最好的工作流程吗 所以基本上我有两个网站 dev.siteurl.com siteurl.com使用codeigniter的多个环境,codeigniter,Codeigniter,我试图了解使用多个环境的最佳做法,例如使用codeigniter为我的应用程序进行开发、测试和生产 到目前为止,我有一个文件夹用于我的应用程序。我在配置文件中看到过这样的地方:为每个环境创建一个文件夹,并在每个环境文件夹中放置数据库文件的副本 这是处理多个环境的最佳方法吗?我问这个问题的原因是,如果我在我的dev子域上工作,我仍然需要将所有相同的文件重新加载到主根文件夹。这是最好的工作流程吗 所以基本上我有两个网站 dev.siteurl.com siteurl.com 我正试图找出处理这件事的
我正试图找出处理这件事的最佳选择。因为我想知道是否需要将所有文件重新加载到主级别,以便它可以处理生产服务器,还是有更简单的方法。是的,它的工作方式是在/application/config文件夹下创建一个名为development的额外嵌套文件夹,以便 /应用程序/配置/开发/ 在开发中,您将放置database.php文件的副本并更改开发数据库设置 /application/config/development/database.php 然后,您必须告诉codeigniter您使用的是哪个版本,因此在您的基本根文件夹edit index.php中: /index.php
define('ENVIRONMENT', 'development');
当您想要使用/config/development/database.php时,您将把环境更改为开发,当您想要使用生产数据库时,您将把环境更改为生产
编辑:CI TOC也有一个简短的部分解释这一点:我正在index.php中定义envirement
做点像
if ($_SERVER['SERVER_NAME']=='siteurl.com')
define('ENVIRONMENT', 'production');
else if ($_SERVER['SERVER_NAME']=='test.siteurl.com')
define('ENVIRONMENT', 'testing');
else
define('ENVIRONMENT', 'development');
根据环境变量使用配置部分我知道这是一个旧线程,但我现在正在从事一个Codeigniter项目,并且正在寻找一种好方法来维护两个环境,而不必在两个不同的URL上维护两个代码基。如果其他人正在寻找类似的答案,这里有一个可能的解决方案,允许您维护一个代码库 对于我当前的项目,我有siteurl.com和siteurl.com/sandbox siteurl.com/index.php
define('ENVIRONMENT', 'production');
$system_path = '../system';
$application_folder = '../application';
define('ENVIRONMENT', 'development');
$system_path = '../../system';
$application_folder = '../../application';
siteurl.com/sandbox/index.php
define('ENVIRONMENT', 'production');
$system_path = '../system';
$application_folder = '../application';
define('ENVIRONMENT', 'development');
$system_path = '../../system';
$application_folder = '../../application';
因此,我必须将所有相同的文件和文件夹上载到live production根目录?不,当您更改环境变量时,放置在/application/config/development/中的任何文件都将覆盖/application/config/中的相同文件。这是因为您的生产环境与开发环境不同(数据库设置等)。你的问题是一个工作流问题吗?我的意思是我有我的dev.siteurl.com和我的siteurl.com,我必须上传两次相同的文件,不是吗?这是你需要通过工作流和集成解决的问题。最简单的方法是使用带有post接收挂钩的git,将master发送到一个文件夹,将dev发送到另一个文件夹。所以,是的,你最终会使用两个文件夹,但是git版本控制会解决这个问题。不完全是我想要的答案,因为我仍然不知道我应该做什么。