修改/www/web/default/public_html/phot/phpsso_server/caches/configs下面的system.php和database.php
解决PHPCMS 安装问题 Can not connect to MySQL server
系统环境 centos
安装phpcms v9报错如下
正在准备安装 ...
后台管理主模块安装成功......
PHPSSO单点登录系统安装成功......
错误信息:
MySQL Query :
MySQL Error :
MySQL Errno : 0
Can not connect to MySQL server
-------------------------解决办法------------------------------------
1、修改文件
将/etc/php.ini文件中的short_open_tag = Off 项,设置成On,重启服务器即可。
2、设置目录的权限时使用 chmod -r 777 目录名称
phpcmsV9涉及到图片的问题貌似不少,以前无忧主机小编就处理过关于后台验证码不显示、后台上传图片报错等问题。但是今天小编遇到的并没有涉及到这方面,而是一个关于会员登录的问题,会员无法登陆phpcmsV9。
通过在网上寻找资料,无忧主机小编明白了出现这个问题的原因。由于服务器的防火墙限制,导致了phpcms的phpsso通信异常。
解决方法如下:
当服务器安装防火墙,服务器将无法通过域名访问网站,这个时候您需要把phpsso修改一下路径。
登陆phpcmsV9后台的phpsso管理——应用管理,您会发现通信是失败的。这个时候我们需要把路径改成localhost/xxx/,如下图所示:
phpcms后台
光改上面那个地方还不够,我们还需要找到phpsso/caches/configs/system.php里找到 phpsso_api_url= 把后面的域名也改成localhost/xxx/phpsso_server
这样问题就可以完美解决了。环境:
操作系统:Linux
服务器软件:nginx/1.1.16PHP/5.3.27
MySQL 版本:5.5.34-log
PHPCMS程序版本:Phpcms V9.5.7 Release 20140625
问题:
本地:本地调试一切正常
服务器上:PHPCMS中PHPSSO通信成功,无法进行账号注册、登录,通过跟踪代码发现下面代码中返回的的$fp为空值
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
fsockopen函数替换为pfsockopen函数返回值仍为空
经过搜索,发现原来是因为fsockopen函数和pfsockopen函数存在安全问题,已被服务器禁用
安全通知公告网址:http://www.xrnet.cn/store/2012-01-10.html
解决办法:
用其他函数代替fsockopen、pfsockopen函数,比如stream_socket_client
示例如下
修改前:
- $fp = fsockopen($host, 80, $errno, $errstr, 30);
或
- $fp = fsockopen($host, $port, $errno, $errstr, $connection_timeout);
修改后:
- $fp = stream_socket_client("tcp://".$host."80", $errno, $errstr, 30);
或
- $fp = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $connection_timeout);
注释:DISCUZ通信失败也有可能是因此原因!