最近一段时间很多discuz站点的QQ互联插件都好好的出现了当前存在网络问题或服务器繁忙错误代码:20003问题:
由于QQ互联官方接口的升级,原有旧接口(oAuth1 接口)在一定条件下已经无法使用,凡是出现 20003 错误的 Dz必须开启 QQ 互联 的 oAuth2 模式,这需要您服务器的 PHP 能正常访问 HTTPS 远程页面,请确保 PHP 拥有扩展 php_curl、php_openssl 开启 HTTPS 的访问功能,并且无防火墙等系统级拦截。
开始openssl
# 下载到/var/www/php5目录下 cd /var/www/php5 wget http://mirrors.sohu.com/php/php-5.2.14.tar.gz # 解压 tar zxvf php-5.2.14.tar.gz # 进入PHP的openssl扩展模块目录 cd php-5.2.14/ext/openssl/ /var/www/php5/bin/phpize # 这里为你自己的phpize路径,如果找不到,使用whereis phpize查找 # 执行后,发现错误 无法找到config.m4 ,config0.m4就是config.m4。直接重命名 mv config0.m4 config.m4 /var/www/php5/bin/phpize ./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config ####### #这里提示openSSL错误的时候: 遇见问题 configure: error: Cannot find OpenSSL’s <evp.h> ####### 直接执行:yum install openssl openssl-devel 再 ./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config make make install # 安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =),我这里的目录是 var/www/php5/lib/php/extensions # 编辑php.ini文件,在文件最后添加 extension=openssl.so #重启php #查看php-fpm进程数: ps aux | grep -c php-fpm #查看运行内存 /usr/bin/php -i|grep mem #重启php-fpm /etc/init.d/php-fpm restart #重启nginx 或apache
2、新建文件 oauth_switch.inc.php
#首先,打开记事本,将以下代码复制进去:“ <?php $connect = C::t('common_setting')->fetch('connect', true); $connect['oauth2'] = 1; C::t('common_setting')->update('connect', serialize($connect)); include_once libfile('function/cache'); updatecache('setting'); showmessage('Switch oAuth to oAuth2', $_G['siteurl']); ?>
3、将 oauth_switch.inc.php 传到QQ互联插件目录(source/plugin/qqconnect)
4、然后访问 URL地址。http://你的域名/plugin.php?id=qqconnect:oauth_switch 此过程为切换到 oAuth2 模式,如您不了解如何开启此功能,请联系服务商解决。
5、运行了会提示一段英文,告诉你已经切换完毕。切换完毕后删除刚刚上传的 oauth_switch.inc.php 文件,接口已经升级完成了,再试试QQ互联是否可以正常登陆。