我试图通过使用多个环境来了解最佳行动方案,例如使用codeigniter为我的应用程序开发,测试和生产。
截至目前,我的应用程序有一个文件夹。我在配置文件中看到的地方为每个环境做了一个文件夹,并在每个环境文件夹中放置了一个数据库文件的副本。
这是处理多种环境的最佳方法吗?我问的原因是因为如果我在我的dev子域上工作,我仍然需要将所有相同的文件重新上载到主根文件夹。这是最好的工作流程吗?
所以基本上我有两个网站。
dev.siteurl.com siteurl.com
我试图找出处理此问题的最佳方案。因为我想知道我是否只需要将所有文件重新上传到主级别,以便它可以处理生产服务器,或者是否有更简单的方法。
答案 0 :(得分:8)
是的,它的工作方式是在你的/ application / config文件夹下你创建了一个名为development的额外嵌套文件夹,以便你有
/应用/配置/开发/
在开发内部,您将放置database.php文件的副本并更改开发数据库设置
/application/config/development/database.php
那么你必须告诉codeigniter你在哪个版本,所以在你的基础根文件夹中编辑index.php:
的index.php
define('ENVIRONMENT', 'development');
如果要使用/config/development/database.php,则会将环境更改为开发,如果要使用生产数据库,则会将环境更改为生产
编辑:CI TOC也有一个简短的部分解释:https://www.codeigniter.com/user_guide/general/environments.html
答案 1 :(得分:7)
我在index.php中定义环境 做点什么
if ($_SERVER['SERVER_NAME']=='siteurl.com')
define('ENVIRONMENT', 'production');
else if ($_SERVER['SERVER_NAME']=='test.siteurl.com')
define('ENVIRONMENT', 'testing');
else
define('ENVIRONMENT', 'development');
并根据环境变量使用配置部分
答案 2 :(得分:3)
我知道这是一个旧线程,但我现在正在开发一个Codeigniter项目,并且正在寻找一种维护两个环境的好方法,而无需在两个不同的URL上维护两个代码库。如果其他人正在寻找类似的答案,这里有一个可能的解决方案,允许您维护一个代码库。
对于我目前的项目,我有siteurl.com和siteurl.com/sandbox。
<强> siteurl.com/index.php 强>
define('ENVIRONMENT', 'production');
$system_path = '../system';
$application_folder = '../application';
<强> siteurl.com/sandbox/index.php 强>
define('ENVIRONMENT', 'development');
$system_path = '../../system';
$application_folder = '../../application';