1

我想在我的服务器上使用 cURL,但它给了我以下错误

Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot
be activated when in safe_mode or an open_basedir is set in
/www/htdocs/w009663c/download/webapp/browser/pproxy.php on line 180

Warning: Cannot modify header information - headers already sent 
by (output started at /www/htdocs/w009663c/download/webapp/browser/
pproxy.php:180) 
in /www/htdocs/w009663c/download/webapp/browser/pproxy.php on line 242
{"status":{"http_code":301},"contents":""}

我要求服务器管理员切换安全模式,但他说它已经关闭。

还有什么可能导致这个问题?

4

4 回答 4

4

当处于安全模式或设置了 open_basedir 时,无法激活 CURLOPT_FOLLOWLOCATION

我假设 open_basedir 已经设置好了,因为那似乎是一个共享服务器,我假设他们不会关闭它

<?php 
phpinfo();

进入文件并查看输出以查看配置设置。

也许是一种解决方法

看看 curl-setopt 手册的这个评论:

http://php.net/manual/ro/function.curl-setopt.php#102121

也许该解决方法对您有用

于 2011-02-28T20:31:37.613 回答
0

curl 的手册页中列出了一些解决方法:http ://www.php.net/manual/en/function.curl-setopt.php#102121

另一种解决方法是使用 PEAR Http_Request 或 Zend_Http。

于 2011-02-28T20:33:18.917 回答
0

也许错误消息的第二部分:or an open_basedir is set

让我猜猜,您使用 Plesk 作为控制面板?它的 Plesk 通常会open_basedir设置...

于 2011-02-28T20:29:21.477 回答
0

您是否使用 ini_get() 检查了 open_basedir 和 safe_mode?它们实际上可能没有被关闭,或者您可能有一个 open_basedir 集。

如果您使用的是 plesk,此链接可能会有所帮助:http ://www.linuxweblog.com/plesk-vhost.conf

于 2011-02-28T20:30:54.053 回答