2017-03-07 12 views
0

NGINXでCodeIgniterプロジェクトをセットアップしようとしています。しかし、それはすでにオンラインである、例えばtest.comのようなウェブサイトです。つまり、プロジェクトには$config['base_url'] = 'test.com'も含まれています。しかし、NGINXサーバーブロックを設定する場合は、ドメインと同じサーバー名をbase_urlに定義する必要があります(this post)。しかし、私は開発のためにURL test.devを持っていて、test.comはオンラインのウェブサイトにリンクする必要があります。これをどのように達成するのですか?開発と生産のための異なるURL

答えて

1

環境を作成します。あなたのindex.phpでHandling Multiple Environments

dirnameの上のチェックは、その行の場所の下

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

を言う行を見つけ、あなたが持っているグローバル変数の環境を持っている今、このコード

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

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

を貼り付け生産や開発を重視しています。この変数にスイッチを置き、config.phpのbase_urlに値を与えるか、database.phpのアクティブなグループをDBクレデンシャルとして選択することができます。

+0

のように確認することができますについてこれの前にnginx。詳細は@shafiqさんの答えをご覧ください。 – Stan

1

CIでは、使用している環境ごとにconfig.phpファイルを定義できます。 configフォルダーに、developmentフォルダーを作成し、base_urlのファイルをconfig.phpに配置します。その環境では、CIはメインファイルconfig.phpの代わりにその新しいファイルを使用します。

+0

明らかに私はこれの前にnginxと別の問題があります。詳細については、@ shafiqの答えを見てください。 – Stan

2

ENVIRONMENT変数を設定します。 https://www.codeigniter.com/user_guide/general/environments.htmlあなたの生産のために

define('ENVIRONMENT','production'); 

開発

define('ENVIRONMENT','production'); 

とconfigファイルにあなたはどうやら私は別の問題を抱えているこのまたは任意の変数

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

私はこれを試しましたが、現在私のtest.devは "Problem loading page"を与えています。また、 'access.log'と' error.log'はリクエストを表示しません。私の '/ etc/nginx/sites-available/test.dev'ファイルは、元の投稿のリンクに表示されているものと似ています。私は 'sites-enabled'へのシンボリックリンクも作成しました。私は間違って何をしていますか? – Stan

+0

'/ etc/hosts'ファイルに' 127.0.0.1 test.com'を追加すると、「Welcome to nginx!」という結果になります。私がtest.comにアクセスしようとすると、つまり、デフォルトのページにリダイレクトされます。 – Stan

+0

これはあなたの仮想ホストの設定の問題かもしれないと思います。 http://stackoverflow.com/questions/15489919/nginx-static-index-redirect – shafiq

関連する問題