cURL没有得到服务器的响应?

时间:2014-01-14 17:43:26

标签: php curl dedicated-server

我正在尝试使用cURL在执行SSH命令后从其他服务器获取响应。这样做时,我认为这是一个连接错误,因为我没有从服务器收到任何响应。所以我制作了一个测试文件并输出“Works!”,但是cURL并没有从中获取任何东西。它将我的页面置于等待循环中然后退出并且没有响应。

test.php代码:

<?php echo "works!"; ?>

现在尝试获取“Works!”的代码响应。

<?php
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://SERVERIP/test/test.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
curl_close($ch);
echo $output;
?>

另外,如果它有帮助,我最近刚升级到CDN服务器。联系他们,他们说这很可能是一个软件问题。所以我想我会问你们所有人!

任何有关帮助的回复都将不胜感激!

1 个答案:

答案 0 :(得分:3)

尝试使用CURLOPT_FOLLOWLOCATION

<强>例如:

<?php
//I've added this two lines for debug, run the script and check for errors, when done, comment the lines.  
error_reporting(E_ALL); 
ini_set('display_errors', 1)

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://SERVERIP/test/test.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$output = curl_exec($ch); 
curl_close($ch);
echo $output;
?>

根据您的评论,我更新了答案:

关闭Linux服务器上的PHP安全模式

Using SSH, connect to your server.
Once you are logged in, type su - root.
For your password, type the same password you used to connect to your server.
At the command prompt type:
vi /etc/php.ini
Go to the line safe_mode = on and press the "i" key.
Change the line to safe_mode = off and press the "Esc" key.
Type :wq! to save your file.

关闭Windows服务器上的PHP安全模式

Using Remote Desktop Connection, log in to your server as an administrator.  
Open c:\windowsphp.ini in Notepad.  
Change the line safe_mode = on to safe_mode = off.  
Save and close php.ini.  

在php.ini上启用curl:

<强>窗:

找到php.ini并取消注释:

extension=php_curl.dll

<强> Linux的:
关于使用apache2的debian:

apt-get install php5-curl
/etc/init.d/apache2 restart

(php4-curl,如果它是php4)

确保您的php是使用curl支持编译的,使用以下代码制作脚本:

<?php
echo phpinfo();
?>

在那里搜索CURL。