【Linux环境】安装Ucenter和WeCenter以及对接


一、操作系统:openSUSE10.0.13-2.3.2-X86_64

二、软件环境版本:

Ucenter(UCenter_1.6.0_SC_UTF8)

WeCenter(WeCenter_3-0-2)

Apache2.4

MariaDb5.1

PHP5.6.1


三、软件环境安装:

    1)Apache、MariaDB以及PHP安装、配置

因为采用openSUSE 图形化的,所以直接用YaST安装,搜索MariaDb、PHP、Apache对应的包安装。

同时为了保证WeCenter(PHP)的顺利运行,还下载并安装了:php-ctype、php-curl、php-gd、php-mbstring、php-mysql、php-pdo、php-xmlrpc等包,可以参考之前的Window安装篇,对.dll文件的引用。

因为用到YaST安装,所以后续基本没有像Windows配置环境,如果感兴趣的话,主要配置文件包括:

  • /etc/apache2/conf.d/php5.conf  (Apache的)
  • /etc/apache2/httpd.conf (Apache的)
  • /etc/php5/apache2/php.ini(php的)
  • /etc/php5/conf.d/*.ini(php的关联包)

(上述采用YaST安装导致了一个小意外,忙了一天,后面会述说,希望以后避免)


2)创建一个www组的新用户,如open。该用户用来对Apache服务中的文件进行限制。

    3)UCenter安装与配置

         a. 从官网下载1.6.0的UTF8版本(为与Wecenter搭配):http://www.comsenz.com/downloads/install/ucenter;
         b. 在Apache www目录下的htdoc下,mkdir一个新的目录:/useradmin;
         c. 将UCenter上传到 /useradmin下;(ssh上传)
         d. 【可以修改useradmin和子目录文件的所有者为apache用户,如新建一个www组中的open】
         e.浏览器中打开页面,进行安装,如:http:// localhost/useradmin;


3)Wecenter安装与配置

         a.从官网下载WeCenter_3-0-2的版本:http://www.wecenter.com/downloads/;

         b.在Apache www目录下面的htdoc下,mkdir一个新的目录:/aq;

         c. 将WeCenter文件夹中的Upload上传到/ag下;

         d. 将文件夹的拥有者修改为 open:www;

         e. 修改根目录/aq 为组用户可读写:770,不级联到子目录;

         f. 修改/aq/system 为组用户可读写:770,不级联到子目录;

         g. 修改/ag/system/config 为组用户可读写770,级联到子目录;

         h. 打开浏览器,输入WeCenter访问地址,按照引导进行安装。





【注意】

1)由于前面所说,apache、mysql等应用通过YaST安装,这里出现了一个问题:当通过表单或其他形式向服务器提交数据时,如 登录,发起Ajax请求后,可以顺利提交数据,但ajax返回error,脚本终止。页面alert:“发生错误, 返回的信息: {"rsm":null,"errno":-1,"err":"\u8bf7\u8f93\u5165\u7528\u6237\u540d"}”,err翻译出来是:请输入用户名。正常该错误提示在页面中显示,而不是alert。出现的原因在于ajax 得到服务器回应后,启动error,而非 success,error函数里面将错误信息直接alert出来了。解决方法:

通过查看Apache服务器的error log看到,因为插入了重复id的Session导致的。而WeCenter的SessionId 是由PHP生成的。

查找/etc/php5/php.ini,找到 session.hash_function,里面有可能写着:session.hash_function = sha256, 或者 session.hash_function=1(SHA-1 160bits) 等,我这里修改为:

session.hash_function=0(MD5 128 bits)

原因:WeCenter的SessionId是32位的,而通过sha256加密后超过了32位,被自动截取保存为32位,后续程序查询Session更新信息时,根据新生成(和之前的sha256加密后的应该相同)查找必然找不到相同的,再次插入时,又被截取了,结果就重复了。所以采用MD5,生成是26位的。











你可能感兴趣的:(PHP)