2核1G3M服务器88一季度

腾讯云,阿里云百度云等 折扣价→点我←

解决Discuz! X3.4 不支持fsockopen和allow_url_fopen环境提示Authorization Error! discuz 教程

游客1 游客组

本帖最后由 民审-M 于 2018-3-21 13:48 编辑

解决Discuz! X服务器禁止了外部访问权限allow_url_fopen,,导致 Authorization Error! Unable to connect to server!



fsockopen()
不支持
该函数需要 php.ini 中 allow_url_fopen 选项开启。


站长端解决方案:

服务器的php.ini文件设置关闭了allow_url_fopen,如果你是租用的服务器或者虚拟主机,需要联系服务商。

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = Off

其他云主机服务器排查问题步骤如下:
1、首先查看php是否有禁用相关函数[indent][p=22, null, left]找到php.ini ,打开,查找“disable_functions”,看后面是否列出了禁用函数,如果有fsockopen,说明此函数已经被禁用,直接去除此函数重新php服务,看问题是否解决,一般没有必要不必禁用函数,可将=后面的函数名全去除[/p][/indent]2、查看allow_url_fopen是否开启[indent][p=22, null, left]在php.ini中查找“allow_url_fopen”,看=后面是否为On,如果是Off 则说明,些函数被关闭,我们只需修改为On ,重起php服务,再去看问题是否解决[/p][/indent]3、修改extension=php_openssl.dll[indent][p=22, null, left]在php.ini中查找“extension=php_openssl.dll”,将前面的“;”去掉,然后重起php服务,看问题是否解决.
注:.dll是windows 特有的。如果是Linux主机,可不必尝试这个办法。[/p][/indent]

服务端解决方案:

服务器禁用了allow_url_fopen同时禁用了fsockopen pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
具体操作:
搜索程序中的字符串 fsockopen( 替换为 stream_socket_client( ,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。
示例如下
修改前:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
修改后:
$fp = stream_socket_client($host."80", $errno, $errstr, 30);


站长窝论坛版权声明 1、本帖标题:解决Discuz! X3.4 不支持fsockopen和allow_url_fopen环境提示Authorization Error!
2、论坛网址:站长窝论坛
3、站长窝论坛的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
4、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
5、站长窝论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本帖由游客1在站长窝论坛《程序综合区》版块原创发布, 转载请注明出处!
评论
最新回复 (26)
返回
发新帖