我们正在将我们的网站从当前的网站托管服务转移到AWS。该网站外包给第三方开发商,并被移交给我。在检查代码时,我看到它是在Code Igniter中完成的。
我已将网站上传到AWS中的实例,以便与当前的网络主机并行运行:
我已确保AWS数据库连接正常运行。在一个配置文件中,我调整了基本URL:
function baseUrl(){
//$base ='http://www.oursite.com/';
$base = 'http://ec2-our-instance.compute.amazonaws.com/';
return $base;
}
调用baseURL()将返回我们的AWS实例URL。
我现在的问题是网站通过路由URL中的文件名,功能和参数来调用文件site_info.php中的函数。
下面列出了功能文件的目录:
\site\application\controllers\site_info.php
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();
对函数showSomething()的调用回应了当前托管网站上的内容,即www.oursite.com。我甚至可以在浏览器上运行URL www.oursite.com/site/site_info/showWorld并获取回音内容。
AWS托管网站返回错误“此服务器上找不到请求的网址/网站/ site_info / showWorld。”
我该如何纠正?
答案 0 :(得分: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();