其他 Discuz! X3.1/3.2 开启https(SSL)的方法

[复制链接]
建站高手 发表于 2015-10-13 19:34:42 [其他] 显示全部楼层 |阅读模式 上一主题 下一主题
discuz使用视频教程

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
百度搜索支持https并全面开启https后,很多人都跟风https,今天就来说说discuz! X3.1/3.2 如何开启https(SSL)?

先说说discuz目前一些落后的地方:
1、对高版本 PHP 兼容不佳,很多使用高版本PHP的都会出现很多诡异问题甚至无法正常使用
2、对 HTTPS 兼容不佳,因为云平台的一些应用接口不支持https,所以导致使用https后云平台的应用受到影响同时影响网站性能。

下面教你如何给 Discuz! X3.1/3.2 开启https(SSL)支持:

一、SSL证书&配置

首先,要开启SSL,总得有一个证书吧?无论是正规CA颁发的,还是自己签的,没有肯定是不行的。如果没有的话,先去申请个吧。(具体方法请谷歌,这里不再赘述)

二、Discuz! 程序调整

自 Discuz! X3 开始,已经加入了对https的支持,如果你使用https访问论坛,论坛中的链接都会变成https。如果你发现大部分链接都已经使用了https,就代表Discuz已经自动识别了,此时,可以跳过本步,直接进入下一步。

Discuz采用 $_SERVER[‘HTTPS’] 的方式来判断SSL,但是因为VPS架构问题(nginx+php-fpm),无法采用这种方式识别,所以需要对Discuz程序进行一些调整(使用 $_SERVER[‘SERVER_PORT’] 来判断)。

1、打开source/class/discuz/discuz_application.php(约第187行处):查找:

  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;
复制代码


2、打开uc_server/avatar.php(约第13行处): 查找:

  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'], '/'))));
复制代码


修改过后,更新缓存,发现大多数链接都变成了https。

三、后台设置

在后台还有一些设置,可能会干扰https的使用

1、后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的

2、UCenter后台 > 应用管理 > 应用的主URL,修改为https开头

另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果进行了之前的几步还是无法启用,可以暂时删除这里的设置试试。

3、清理缓存,设置完成之后,需要清理缓存,使设置生效。

清理缓存及内存缓存,如果设置了帖子缓存,还需清理数据库内的缓存(清空相应cache数据库,或者静等缓存失效) 。

至此,Discuz https启用成功,当然,在访问某些页面的时候,可能锁会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。

最后:个人不建议使用discuz开启程序https,因为ACE的HTTPS问题很多,同时discuz程序自身对HTTPS支持也不好。





上一篇:分享下用户表主表与存档表合并的方法
下一篇:Discuz x论坛导读不显示的解决方法

大神点评2

Skyfree 发表于 2015-10-14 20:01:00 [其他] 显示全部楼层
本帖最后由 Skyfree 于 2015-10-14 20:02 编辑

呵呵,https://www.itiankong.com/,dx3.1开https。
onlineage 发表于 2016-12-26 00:33:09 [其他] 显示全部楼层
Skyfree 发表于 2015-10-14 20:01
呵呵,https://www.itiankong.com/,dx3.1开https。

求一份 dz开启https  nginx 301重定向规则
DZ远程协助  QQ:97150702
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表