Discuz论坛升级攻略及踩坑处理

一,背景

为了推进公司所有网站全站https升级,所以优先对论坛做https了升级,以便为全站https试验和积累经验。

二,Discuz https升级实战

discuz bbs的https升级,涉及以下工作:
1,https证书准备:
可以到StartSSL申请一个免费的单域名SSL证书,或者到GeoTrust SSL Certificates官网购买(这个是我们发现的,性价比最高的SSL证书,京东用的就是他家的,物美价廉)。

2,discuz版本升级:
最好使用X3.2最新版本,最新版已经很好的支持了https,低版本的可以升级过来,详情请参考官网文档。http://www.discuz.net/thread-3570835-1-1.html

3,代码细节修改:
需要对一些不是https访问的地址引用做修改,改为https的,比较少、杂,视具体情况而定,主要是一些第三方的插件/组件或云服务,有这些:
source/function/function_core.php
source/admincp/admincp_cloud.php
source/class/discuz/discuz_application.php
source/plugin/manyou/Service/DiscuzTips.php
source/plugin/pcmgr_url_safeguard/pcmgr_url_safeguard.class.php
config/config_ucenter.php
uc_server/avatar.php
template/default/common/header.php
最后这个文件,需要注意,如果有定制模板,请注意修改相应模板目录下的这个文件

4,引用地址修改:
引文的本站或其他站点的图片等文件,scheme都要由http改为https,否则一旦有引用非https资源的https页面,浏览器地址栏会显示异常,红叉或警告。由于内容较多,建议直接dump数据库、批量替换处理,然后再把数据导回数据库。

注意:尽快能修改的全一些,除了这些需要多点点别的页面,看到用浏览器访问展示的不是绿锁的页面,都要调整下。这个步骤,可以使用浏览器开发者模式跟踪这些内容。

三,问题处理

(比较常见的问题,不一定是https升级场景下的问题)

上面这些进展的还比较顺利。但是,由于本次升级了discuz版本,加上自己定制修改,版本改动较大,部署后用户头像无法上传,报服务器io错误。经网上搜索,实际验证,发现是如下两点惹得祸:
1,文件权限问题:
uc_server/data/avatar/ 是否可写 权限为777
uc_server/data/tmp/ 是否可写 权限为777
如果还搞不定,就用必杀技,把UC里面的data文件夹包括子文件夹都设置为777!!
上述操作完成后,登录后台,更新下缓存及UC缓存!

2,检查论坛uc_server/data/config.inc.php中uc_key 是否正确,此处的uc_key需要与config/config_ucenter.php文件中的uc_key保持一致。本人就是被这个坑了,原因是线下的代码入库到svn了,最后上线了,忘记修改这个文件了,导致uc_key、db信息都是错误的。修改后,验证ok。

温馨提示:有的时候,可能是缓存因素导致的,不会立马生效,此时喝杯水或抽根烟,休息下,再来看应该就好了,哈哈。

四,总结

总结下discuz迁移或升级经常出问题的地方:
1,db配置:
以下三个配置文件都涉及到db配置,db变更或迁移时,都需要修改,一定不要遗漏哟:
config/config_ucenter.php
config/config_global.php
uc_server/data/config.inc.php

2,文件权限:
论坛迁移或升级时,要记得为以下两个文件夹授权777(可能不需要这么高的权限也行,没具体研究),不然会出现帖子附件上传失败、头像上传失败:
data/
uc_server/data/
说明:前者是帖子的附件等内容的存放目录,后者是头像图片存放目录。

ps:本次https升级,对性能影响不大,基本可以忽略,访问依旧很流畅。可能,我们是基于阿里云搭建的服务,https到http的转化可以在阿里云SLB层完成,这样SLB到后端真实服务器就是http了,支持https的工作和压力都有SLB来承担了,由于SLB都是集群服务,所以效果还是不错了。

五,致谢

本人解决问题时,参考了以下文章,感谢文章作者!
1,https://bbs.aliyun.com/read/258971.html?pos=18
2,http://www.discuz.net/thread-2235818-1-1.html

先将原来的2.5F程序全部转移到一个新目录中(比如:d25f_bak)。(如果你的服务器不是独立主机,使用FTP也可以迅速移动你的目录的,看看这里吧:http://www.discuz.net/blog.php?tid=130169)<br><br>将Discuz!4.0正式版程序中的/upload/文件除了install.php和install目录全部上传(切记一定要使用二进制方式上传)到服务器中。<br>关于二进制上传可以看一下这里:http://www.discuz.net/viewthread.php?tid=201631&extra=page%3D1<br>之后根据你的mysql数据库信息配置config.inc.php文件。<br><br>切记:请察看一下你原来的数据表前缀是什么,并将config.inc.php中的$tablepre做相应修改<br><br>   D4正式版中config.inc.php新增加了一个变量$charset,请根据你所使用的语言来设置,目前只有三种可设置gbk、big5和utf-8<br>   如果你是简体则设置为gbk、繁体则设置为big5、使用utf-8则设置为utf-8。请谨慎设置此处!设置错误,可能会导致论坛出现乱码情况!请不要随意修改此处!<br>   (默认情况下config.inc.php中已经对应设置好了,请不要随意修改)<br><br>另,对于某些mysql4.1版的用户,如果确定字符集为非UTF-8的话,如果升级后出现乱码请将config.inc.php中的$charset设置为gb2312试一下<br><br>将upgrade25to4.php上传到论坛目录中,在浏览器中执行:http://yoursite/upgrade25to4.php。升级程序会自动运行,直到全部操作执行完毕。<br><br>将服务器中的 upgrade25to4.php 删除!<br><br>如果您的服务器是类Unix系统主机,别忘了将forumdata目录以及下面所有的目录和文件属性设置为777(所有用户组可读写执行)。<br><br>登陆后台->Discuz! 工具->更新论坛统计,将几个统计更新一下。如果还需要用到以前的图片呀、文件呀什么的,可以直接去/d25_bak/中去找吧,那就是你以前的2.5的所有文件:)进入系统设置,看看有没有什么问题,没有?开启论坛运行吧。当然,确定你的d25_bak/里面的文件没什么用了,你也可以删除这个目录。DISCUZ2.5升级到正式版操作完毕!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值