【发布时间】:2013-02-17 22:34:50
【问题描述】:
我在这里有点困惑。我有一个文件 provision_test.php ,当使用 php provision_test.php 执行时,它会运行良好,执行 curl 并获取页面。但是当从网络 http://example.com/provision_test.php 执行时,它无法正常运行。我正在运行 Ubuntu Linux 12.04.1 服务器,x86_64。
任何想法都将不胜感激......如果您需要任何额外信息,请告诉我,我很乐意帮助您。
编辑 1
文件:provision_test.php
<?php
$domain = "example.net";
$password = "123";
$serverip = "example.com:10000";
$ch = curl_init();
$userpwd = 'root:password';
curl_setopt($ch, CURLOPT_URL, "http://{$serverip}/virtual-server/remote.cgi?program=create-domain&domain={$domain}&pass={$password}&default-features");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
curl_exec($ch);
curl_close($ch);
?>
系统上安装了 php5-curl 包。但是我没有在 php.ini 文件中专门启用 curl。我该怎么做呢?
我可以验证 php5-curl 软件包是否已正确安装,但我无法确认 apache 是否已启用它。我通过在命令行中执行它知道 curl 有效。
另外,我的服务器上没有 selinux 或类似的东西。
我将在 PHP 错误的情况下再次运行该脚本,看看我明天是否能找到任何东西。
【问题讨论】:
-
请发布来自
provision_test.php的相关代码示例(如果不是很长,请发布整个内容) -
我想你已经在 apache 中启用了 curl,在通常位于
/etc/php5/apache/php.ini的 php.ini 中。另外,我想,你已经做了sudo apt-get install php5-curl -
“无法正常运行”---不是技术问题说明
-
额外信息将包括您为自己调试所做的工作。我们是来帮忙的,但你必须自己做一些工作。例如验证基于 Web 的 PHP 是否已正确安装 curl。你检查错误情况了吗?也许网络服务器安全系统(selinux、suhosin 等)正在阻止请求。这些都是我们根本无法帮助您的事情,因为您完全没有提供任何有用的细节。
-
看看我添加了什么。