Zoh*_*aib 8 php development-environment codeigniter
Codeigniter开发环境没有设置.我总是在index.php中使用这段代码.但我不明白为什么我在使用localhost时将"生产"作为输出.
switch(dirname(__FILE__)){
case "H:\wamp\www\sitedirectory":
define('ENVIRONMENT', 'development');
break;
default:
define('ENVIRONMENT', 'production');
break;
}
echo ENVIRONMENT ; // output is "production" while i am on localhost
echo dirname(__FILE__) ; // output is "H:\wamp\www\sitedirectory"
Run Code Online (Sandbox Code Playgroud)
bmo*_*ate 21
真奇怪.它对我来说完全一样.你能尝试这样的吗?
switch($_SERVER["HTTP_HOST"]){
case "localhost":
define('ENVIRONMENT', 'development');
break;
default:
define('ENVIRONMENT', 'production');
break;
}
echo ENVIRONMENT ; // output development
Run Code Online (Sandbox Code Playgroud)
为了根据服务器的 IP 动态设置环境,下面我使用正则表达式来检查本地 IP,例如 127.0.* 和 10.0.*。
在您项目的根目录查找index.php并替换:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
Run Code Online (Sandbox Code Playgroud)
和:
$server_ip = getHostByName(getHostName());
if (preg_match("/^(127\.0\.|10\.0\.).+/i", $server_ip)) {
define("ENVIRONMENT", "development");
define("BASEURL", "http://localhost:8000/");
} else {
define("ENVIRONMENT", "production");
define("BASEURL", "https://domain.com/");
}
Run Code Online (Sandbox Code Playgroud)
确保BASEURL用您自己的值替换并application/config/config.php添加:
$config['base_url'] = BASEURL;
Run Code Online (Sandbox Code Playgroud)
为了进一步改进application/config/database.php在数据库设置之前添加$db['default'] = array(:
if(ENVIRONMENT !== 'production') {
$db = [
'username' => '',
'password' => '',
'database' => '',
'hostname' => '127.0.0.1'
];
} else {
$db = [
'username' => '',
'password' => '',
'database' => '',
'hostname' => ''
];
}
Run Code Online (Sandbox Code Playgroud)