0

我正在尝试使用 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 服务器。联系他们,他们说这很可能是软件问题。所以我想我会问大家!

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

4

1 回答 1

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,则为 php4-curl)

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

<?php
echo phpinfo();
?>

在那里搜索 CURL。

于 2014-01-14T20:26:43.183 回答