我想在我的服务器上使用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,但他说它已经关闭了。
还有什么可能导致这个问题?
答案 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。