我正在尝试使用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服务器。联系他们,他们说这很可能是一个软件问题。所以我想我会问你们所有人!
任何有关帮助的回复都将不胜感激!
答案 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。