我有一个脚本,使用file_get_contents()从远程服务器获取json响应.
虽然file_get_contents()在本地文件上正常工作但不能使用http或https,但它给我发出以下错误file_get_contents():http://在服务器配置中禁用了wrap_url_fopen = 0 in和file_get_contents(https://) api.domain.com/resolve.json?url=blablabla):无法打开流:没有找到合适的包装器..它是一个专用服务器,我有WHM ..我试过
>在WHM PHP配置编辑器上设置allow_url_fopen = on但这不起作用.
>在发生错误的目录中使用allow_url_fopen = on创建一个php.ini文件,但这不起作用.
>添加了ini_set(‘allow_url_fopen’,’开’);到PHP脚本的开头,但这不起作用.
我知道我可以使用Curl,但我想知道为什么这不起作用..脚本在其他服务器和localhost上正常工作
更新:
phpinfo();
给我
allow_url_fopen Off
allow_url_include Off
always_populate_raw_post_data Off
这意味着我的php.ini更改没有生效..我做错了什么?
解决方法:
通过ssh登录到您的服务器并输入
sudo nano /etc/php5/apache2/php.ini //<<<< ubuntu/debian server, might differ for you
在文件中,只需按“ctrl w”并输入“allow_url_fopen”并返回,很可能你会先解释,所以重复搜索几次.现在您可以更改条目
于allow_url_fopen = 0
至
于allow_url_fopen = 1
按“ctrl x”并用“y”确认文件保存.
然后输入
sudo service apache2 restart
这将重新启动apache,以便可以加载新的php.ini配置.完成这些步骤后,您应该能够在外部使用file_get_contents.
边注
如果找不到php.ini文件,您将在phpinfo()的顶部找到加载的php.ini文件的路径
标签:apache,php,curl
来源: https://codeday.me/bug/20190716/1476695.html