1、解决 X3.2 全局 HTTPS 问题思路 购买 SSL 证书 购买适合自己论坛的 SSL 证书,证书大致上分为标准型 DV SSL 证书、企业型 OV SSL 证书以及增强型 EV SSL 证书。
在服务端 WEB 服务器配置 参考文档:点击具体查看各种 WEB 服务器配置
在后台配置全局 HTTPS 进入 admin.php 后台,点击全局 - 站点信息 - 网站 URL 填写 https://yourdomain.com/admin.php
修成 Discuz 适配 https 如果你的 Web 服务是 Apache,请忽略这一步,Nginx 请继续看 Discuz 判断网站是否启动 SSL 是采用 $_SERVER[‘HTTPS’] 的方式,此方法不支持 Nginx(nginx+php-fpm),需要先做一些修改,让 Discuz 使用 $_SERVER[‘SERVER_PORT’]来判断网站是否启用 SSL 进入安装 DIscuz 根目录右键修改 public_html/source/class/discuz/discuz_application.php
1 $_G ['isHTTPS' ] = ($_SERVER ['HTTPS' ] && strtolower ($_SERVER ['HTTPS' ]) != 'off' ) ? true : false ;
修改为:
1 $_G ['isHTTPS' ] = ($_SERVER ['SERVER_PORT' ] == 443 || $_SERVER ['HTTPS' ] && strtolower ($_SERVER ['HTTPS' ]) != 'off' ) ? true : false ;
进入安装 DIscuz 根目录继续修改 public_html/uc_server/avatar.php
1 define ('UC_API' , strtolower (($_SERVER ['HTTPS' ] == 'on' ? 'https' : 'http' ).'://' .$_SERVER ['HTTP_HOST' ].substr ($_SERVER ['PHP_SELF' ], 0 , strrpos ($_SERVER ['PHP_SELF' ], '/' ))));
修改为:
1 define ('UC_API' , strtolower (($_SERVER ['SERVER_PORT' ] == 443 || $_SERVER ['HTTPS' ] == 'on' ? 'https' : 'http' ).'://' .$_SERVER ['HTTP_HOST' ].substr ($_SERVER ['PHP_SELF' ], 0 , strrpos ($_SERVER ['PHP_SELF' ], '/' ))));
后台 Ucenter 通信使用 https 方式 若不更改亦可以,这一步可以忽略 进入 admin.php 后台,点击站长 - UCenter 设置 - UCenter 访问地址将 http 改为 https 其后将头像调用方式改为使用静态地址调用头像。
后台 Ucenter 无法通信 审查元素,观察 return error 然后去官方找到相应的解决方法。
修成 Discuz 文章 https 进入安装 DIscuz 根目录继续修改 public_html/source/function/function_core.php 于$content = output_replace($content);代码下方处添加$content = str_replace('http://www.xxx.com','https://www.xxx.com',$content); 如果你有二级目录请这样添加$content = preg_replace('http://(.*?)xxx.com','https://\1xxx.com',$content);
2、X3.2 升级至最新 X3.4 总结 准备前置条件: DiscuzX 程序版本:Discuz! X3.2 Release 20141225 DiscuzX 后台版本:UCenter 1.6.0 DiscuzX 最新版本下载地址:https://gitee.com/3dming/DiscuzL/attach_files
操作步骤: 1)备份数据库,导出转储 SQL 文件结构和数据; 2)备份服务端网站目录; 3)创建 old 新文件夹,除了 data , config , uc_client , uc_server 目录以外的文件夹均移动进入 old 新文件夹内,注意 old 文件夹为小写字母; 4)通过 ftp 上传最新的服务端文件,注意分清下载的最新版本编码对应服务器正在使用的编码; 5)关闭站点,关闭服务端 web 服务; 6)将上传完毕解压后的 upload 文件夹内所有文件复制并替换服务端网站目录。 7)上传 utility 目录中的 update.php 文件到 install 目录中,删除 install.php 文件,并确保 install/data 中的 sql 文件完整。 8)执行 https://yourwebsite/install/update.php 按步骤完成升级。 最后尝试访问网站是否有异常,使用管理员登录站点后台,更新缓存。步骤为:后台=>工具=>更新缓存,完成升级。
升级过程中遇到的问题: 1.如果选择“是”您的站点将恢复站点默认风格,则你原网站风格、SEO 和 logo 全部还原为原始模版风格,注意升级选择。
2.在升级后无法登录后台 先确定你的账号在数据库内是否为管理员或者被清空,如无问题再找到根目录下的 uc_server/model 目录里的 admin.php 文件,并搜索代码 $this->cookie_status = 0; 修改为 $this->cookie_status = isset($_COOKIE['sid']) ? 1 : 0; 即可。
3.在升级时候遇到错误 【SELECT skey FROM common_setting WHERE skey=’strongpw’ LIMIT 1】 遇到 SQL 问题可以尝试 SQL 语句执行一下,很明显可以确定到 1146 问题,没有该表。尝试 creat common_setting 表即可,遇到这个问题的,后续也可能会遇到 common_syscache 表缺少 和 common_member 缺失 realname 字段,这里建议核对一下。这里我创建字段时候,选择 varchar(25)
4.在升级的时候遇到错误【请手工执行以下升级语句 XXX】 遇到又是 SQL 问题,先确定是否 SQL 语句执行正常。然后判断逻辑,这里 update.php 其实是官方升级程序,通过改表的方式升级的一个 bug.多年未改,只干了改表的事和新建表的事,改完表后,原来不存在了,但程序里却在对该表进行查询操作,所以会报“表不存在”的错误,导致升级程序终止,不能继续升级。 解决方法,即注释 if(!empty($oldcols[$key])) 至 ... ADO PRIMARY KEY ... 代码,刷新页面重新升级即可。
5.第一个步骤提示验证失败,无法进行升级 跳过第一个升级步骤,直接访问 https://yourwebsite/install/update.php?step=prepare 即可。 6.升级后发现许多地方乱码了 请核对字符编码为 UTF-8 简繁 还是 GBK
3、Discuz 开启 Redis Windows 系统操作 参考 CentOS 操作步骤
CentOS 系统操作 1.查看 php 版本 1 2 3 [root@VM_0_2_centos ~]# php -v PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: igbinary_unserialize in Unknown on line 0 PHP 5.6.40 (cli) (built: Jan 12 2019 09:19:57) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies [root@VM_0_2_centos ~]#
2. 查看 php-redis 扩展包全名 yum list | grep php56w* 如果是其它版本就将修改“56”修改为其正确本版
3. 通过 yum 安装 redis 扩展 yum -y install php56w-pecl-redis.x86_64
4. 重启 httpd 服务 service httpd restart
5. Discuz 需要编译 Config/config_global.php 配置才可以开启,默认是不打开的。 $_config['memory']['redis']['server'] = '127.0.0.1';
4、Discuz 迁移数据至 Flarum
参考以下方法https://github.com/KeKe12030/DiscuzToFlarum > https://github.com/branchzero/discuz-flarum-adapter > https://github.com/samyex6/discuz-flarum-migration
5、Discuz 迁移数据至 XenForo DZ 和 XF 均是 BB 代码,存在可迁移可能性