phpcms v9通信失败怎么办?Phpcms v9 与 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.php 361行
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
改成
$fp = stream_socket_client("tcp://".($ip ? $ip : $host).":".$port, $errno, $errstr, $timeout);
经过测试,可以登陆成功。
这个问题不少朋友碰到,不过在Linux阿帕奇下,这个问题比较少。
PHP中文网,大量的免费PHPCMS教程,欢迎在线学习!