使用curl的PHP safe_mode问题

时间:2011-02-28 20:26:27

标签: php safe-mode

我想在我的服务器上使用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":""}

我请求服务器管理员切换safe_mode,但他说它已经关闭了。

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

4 个答案:

答案 0 :(得分:4)

  

在safe_mode或设置了open_basedir时无法激活CURLOPT_FOLLOWLOCATION

我认为open_basedir已设置然后因为这似乎是一个共享服务器,我认为它们不会关闭它

<?php 
phpinfo();

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

也许是一种解决方法

看一下curl-setopt手册的评论:

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

也许这种解决方法适合你

答案 1 :(得分:0)

可能是错误消息的第二部分:or an open_basedir is set

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

答案 2 :(得分:0)

您是否使用ini_get()检查了open_basedir以及safe_mode?实际上它们可能没有关闭,或者你可能有open_basedir设置。

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

答案 3 :(得分:0)

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

其他解决方法是使用PEAR Http_Request或Zend_Http。