2017-03-20 14 views
0

私たちのウェブサイトは現在のWebホストからAWSに移行しています。ウェブサイトは第三者の開発者に委託され、私に引き渡されました。コードをチェックすると、コードイグナイターで実行されたことがわかりました。私のAWS Webホストでコードイグナイターのルートを動作させるにはどうすればいいですか

私は、現在のWebホストとの並列運転のためにAWSでインスタンスにウェブサイトをアップロードしました:現在のホストで

  • ウェブサイトはURLにアクセスされたwww.oursite.com
  • AWSインスタンスは、url ec2-our-instance.compute.amazonaws.comにアクセスします。

私はAWSデータベース接続が機能していることを確認しました。 1つの設定ファイルで、ベースURLを調整しました。

function baseUrl(){ 
    //$base ='http://www.oursite.com/'; 

    $base = 'http://ec2-our-instance.compute.amazonaws.com/'; 

    return $base; 
} 

baseURL()を呼び出すと、AWSインスタンスのURLが返されます。

今私の問題は、URLのファイル名、機能、パラメータをルーティングすることで、Webサイトがファイルsite_info.phpの関数を呼び出してしまうことです。

関数ファイルのディレクトリが以下の通りである:site_info.phpで

\site\application\controllers\site_info.php 

一つの機能は次のとおりです。

function showWorld(){ 
    echo 'Hello World'; 
} 

showWorld(へのcURLの呼び出し)のルートに設定されたURLを持っていますつまり、baseURL()。 '/ site/site_info/showWorld'のようになります。コードは以下の通りである:

function showSomething(){ 
    $url = baseURL().'/site/site_info/showWorld'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,120); 
    curl_setopt($ch, CURLOPT_NOSIGNAL, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); 
    curl_setopt($ch, CURLOPT_USERAGENT , 
    curl_setopt($ch, CURLOPT_URL, $url); 
} 

showSomething(); 

コールは、すなわちwww.oursite.com現在ホストされているウェブサイト上のコンテンツをエコー表示()showSomethingを機能させます。ブラウザ上でURL、www.oursite.com/site/site_info/showWorldを実行してエコーコンテンツを取得することもできます。

AWSでホストされているサイトから「このサーバーで要求されたURL/site/site_info/showWorldが見つかりませんでした」というエラーが返されます。

これを修正するにはどうすればよいですか?

+0

私はCIエキスパートではありませんが、あなたの 'baseURL()'は何も返しません。相対URLではなく絶対URLを返すようにしてください。 – Justinas

+0

baseUrl()はどこで定義しますか? showsomething()と同じコントローラにありますか? – Pacio

答えて

0
Just Define in your root/application/config/config.php 
$config['base_url'] = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['SERVER_NAME']."/"; 

call like this 

function showSomething(){ 
    $url = base_url(true).'site/site_info/showWorld'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,120); 
    curl_setopt($ch, CURLOPT_NOSIGNAL, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); 
    curl_setopt($ch, CURLOPT_USERAGENT , 
    curl_setopt($ch, CURLOPT_URL, $url); 
} 

showSomething(); 
関連する問題