西安人的城墙下,是西安人的生活
不积跬步无以至千里,不积小流无以成江海

phpweb正版授权安装提示错误

phpweb正版授权安装提示无法连接到验证服务器。

具体见

无法连接到验证服务器

无法连接到验证服务器

原因:服务器的fsockopen函数没有开启,所以没办法验证了,服务器默认不是开启的。

解决办法:打开服务器的fsockopen函数

网上两种常用的解决方法:

方法一:

第一步:
php.ini文件中查找

        allow_url_fopen?=?On

使其值为On
第二步:
php.ini文件中查找

       extension=php_openssl.dll

如果前面有分号,去掉分号
第三步:
重启web服务器,apache或IIS

方法二

1.??vi??php.ini
找到 allow_url_fopen 这个参数设置成 On,即
allow_url_fopen = On

2. 让你的php支持 opensll扩展。
默认,是没有openssl扩展的,只能重新编译安装。
yum??install openssl??openssl-devel
cd??/usr/local/src/php-5.2.14/ext/openssl
/usr/local/php/bin/phpize
./configure –with-openssl –with-php-config=/usr/local/bin/php-config
make && make install
看提示,把编译成的openssl.so 拷贝到你在php.ini 中指定的 extension_dir 下

3. vi??php.ini
加入
extension=openssl.so

4. 重启web server

——————————————————————————————————————————————

附:如何解决fsockopen函数被禁用

1、如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen。

具体操作:搜索程序中的字符串?fsockopen(?替换为?pfsockopen(。示例如下
修改前:
$fp?=?fsockopen($host,?80,?$errno,?$errstr,?30);

修改后:
$fp?=?pfsockopen($host,?80,?$errno,?$errstr,?30);
2、如果服务器同时禁用了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);
3、如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能,参考代码:
function?b_fsockopen($host,?$port,?&$errno,?&$errstr,?$timeout)?{
$ip?=?gethostbyname($host);
$s?=?socket_create(AF_INET,?SOCK_STREAM,?0);
if?(socket_set_nonblock($s))?{
?$r?=?@socket_connect($s,?$ip,?$port);
?if?($r?||?socket_last_error()?==?EINPROGRESS)?{
??$errno?=?EINPROGRESS;
??return?$s;
?}
}
$errno?=?socket_last_error($s);
$errstr?=?socket_strerror($errno);
socket_close($s);
return?false;
}

具体操作:1.首先找到使用fsockopen函数的代码段,将上面代码加至其上端,搜索该代码段中的字符串fsockopen(?替换为?b_fsockopen(。
2.因为fsockopen函数返回文件指针所以可以被文件函数操作,但是这个b_fsockopen函数没能返回文件指针,需要继续修改代码段:用socket_read(替换掉?fread(,用socket_write(替换掉fwrite(,用socket_close(替换掉fclose(。

 

————————————————————————————————————————————

西城思易-?phpweb正版授权,插件定制 ?二次开发 ?功能修改 问题处理;

QQ:2632163814

淘宝店铺:ueye.taobao.com

原创文章如转载,请注明本文链接:西秦记 » phpweb正版授权安装提示错误
分享到: 更多 (0)

IT信息化解决方案设计咨询

联系我们