您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

解决phpcmsv9通信失败的方法

吴军卓2025-04-29 16:48:08phpcms教程已有2人查阅

导读phpcmsv9通信失败怎么办?phpcmsv9与phpsso通信失败,会员不能注册不能登陆怎么办?有朋友这么说:服务器其它配置正确,通信始终失败原因已经找到:

phpcmsv9通信失败怎么办?phpcmsv9与phpsso通信失败,会员不能注册不能登陆怎么办?有朋友这么说:服务器其它配置正确,通信始终失败原因已经找到:
由于有防火墙的服务器一般是端口映射,这样就导致外网可以通过域名正常访问网站,而内网则无法通过域名访问网站。而v9与phpsso通信接口地址是通过域名链接,从而始终导致通信失败。这是v9的自身缺陷问题,开发者没有充分考虑到这一点。
望官方尽早修复这个BUG.
也有朋友说:官方下载的安装包内phpsso_server文件里,并没有这个文件。所以解决的方法就是从v9的phpcms/libs/classes/文件夹里复制吧,然后还要在phpsso_server/caches/文件下建一个sessions目录,不然文件无法写入。
当然网上也有方法是把session_mysql.class.php这个文件里的第21行语句session_start();放到它前一句的前面,这样的话,也可以解决,但是v9不会采用数据库存储的方式,只会采用文件存储,而且,session的存储位置也不是按照system.php里设置的位置存储。会存到php.ini文件里设置的目录下。
提供一个解决方法:
把phpcms\modules\member\classes\client.class.php361行

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

改成

$fp = stream_socket_client("tcp://".($ip ? $ip : $host).":".$port, $errno, $errstr, $timeout);

经过测试,可以登陆成功。
这个问题不少朋友碰到,不过在Linux阿帕奇下,这个问题比较少。

本文标签:

很赞哦! (0)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: