当前日期时间
当前时间:
网站标志
Logo
全站搜索
广告位
phpweb图片广告
广告位
phpweb图片广告
自定内容

phpweb已经是国内最强的的开源电子商务系统了,但并非完美,因为任何...

互联网3年一轮回,京东凡客等电商品牌在三年之前也不过是小打小闹,而如...

电商已经成为趋势,传统行业的竞争已经逐渐演变到网络上,也有不少用Weboss...

phpweb系统是固定的模式,适用于大部分行业与需求。但有一些行业还是有自己...

当前位置
文章正文

phpweb安装提示错误信息,如何开启fsockopen?

发表:管理员  发表时间:2013-08-22 12:35:19   阅读:(4591)次  

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(。

 

假如我们资讯/文章对您有所帮助,您可以通过扫描捐赠二维码支持一下我们~

感谢您对我们的支持,您的小小支持让我们有信心走得更远!

脚注信息
© 2005-2015 草莓互联(100cm.cn) 广州同福信息科技有限公司 版权所有,并保留所有权利。

广州市东莞庄一横路116号 粤ICP备11046216号

经营性网站备案信息 广州网络警察报警平台 不良信息举报中心  百度信誉档案 广州工商红盾网 可信网站认证