Discuz附件放到阿里云OSS教程

1. 首先开通阿里云OSS(该步骤就不解释了)

2.下载OSS程序,解压上传到网站的根目录。
链接:https://pan.baidu.com/s/1pMdf8uv 密码:ardn
以上资源失效可以直接点击这里下载OSS程序

3.修改config-config_global.php文件,在底部添加以下代码

// -------------------  THE END  -------------------- //
// --------------------------  附件储存-开始  -------------------------- // 
$_config['extend']['storage']['curstorage']='aliyun';       
$_config['extend']['storage']['aliyun']['access_id']='     ';      // 2 OSS Access Key ID 
$_config['extend']['storage']['aliyun']['access_key']='    ';     // 3 OSS Access Key Secret       
$_config['extend']['storage']['aliyun']['access_host']=NULL;     // 默认即可 
$_config['extend']['storage']['aliyun']['bucket']='       ';         // 1 就是你给OSS取的那个名称
$_config['extend']['storage']['aliyun']['attachurl']='http://     /';      // oos外网地址 
// ---------------------------  结束 ----------------------------------- //

?>

4.修改extend/vendor/storage/aliyun/sdk.class.php的第72行为自己的节点

5.进行远程附件配置并测试
进入后台——全局——上传设置——远程附件
FTP账户填写 Access Key ID /创建的OSS名字
FTP密码填写 Access Key Secret
远程访问URL填写OSS访问域名

6.附件迁移到OSS后需要更新附件的链接地址,参考Discuz! X3.2本地附件全部修改为远程附件的方法

7.配置完成后更新缓存,在远程附件配置页测试远程附件,测试正常即可。

Discuz! admin.php 安全加固 防止普通用户访问

网站管理后台暴露在外面始终不是一件什么好事,最好的安全加固方法就是把目标隐藏起来。

通过修改admin.php可以防止普通用户访问,从而提升安全性。

此方法适用Discuz! X全系列版本

具体实施方案:
打开admin.php,在25行,找到$discuz->init();

在改代码下面换行添加以下代码:

if(!$_G['uid'] || !getstatus($_G['member']['allowadmincp'], 1)) {
header('Location: /');
}

Discuz! X3.3站点部署SSL后兼容HTTPS访问教程

1、修改source/class/discuz/discuz_application.php(第187行)

$_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;

修改为:

$_G['isHTTPS'] = true;

2、修改uc_server/avatar.php(就在头几行)

define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));

修改为:

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'], '/'))));

3、修改/template/default/common/header.htm
将http://全部查找替换为:https://(一共5处)

4、后台 – 全局 – 站点信息 – 网站 URL:将http://改成https://网址

5、后台 – 站长 – UCenter设置 – UCenter 访问地址改成https://网址

6、后台 – UCenter(如果不能正常访问可以在新窗口打开,也可以直接访问UC地址) – 应用管理 – 点右边的编辑 – 应用的主URL改成https://网址

7、后台 – 工具 – 更新缓存

8、后台 – 界面 – 风格,点击“更新CSS缓存”按钮

Discuz! X3.2本地附件全部修改为远程附件的方法

进行操作前,请备份数据库

一、本地转到远程

1、论坛后台–全局–上传设置–启用远程附件

2、将本地附件目录data/attachment里面的文件夹移动到远程服务器上

3、数据库执行sql语句

论坛的(0表示本地,1表示远程,)

update pre_forum_attachment_0 set remote=1 where remote=0;
update pre_forum_attachment_1 set remote=1 where remote=0;
update pre_forum_attachment_2 set remote=1 where remote=0;
update pre_forum_attachment_3 set remote=1 where remote=0;
update pre_forum_attachment_4 set remote=1 where remote=0;
update pre_forum_attachment_5 set remote=1 where remote=0;
update pre_forum_attachment_6 set remote=1 where remote=0;
update pre_forum_attachment_7 set remote=1 where remote=0;
update pre_forum_attachment_8 set remote=1 where remote=0;
update pre_forum_attachment_9 set remote=1 where remote=0;

门户的

update pre_portal_article_title set remote=1 where remote=0;
update pre_portal_attachment set remote=1 where remote=0;
update pre_portal_topic_pic set remote=1 where remote=0;

相册的{相册表中的remote取值还有一种情况为remote=2(论坛附件图片保存到相册)}

update pre_home_pic set remote=remote+1;

二、远程转到本地
后台关闭远程附件设置,将附件移动到本地服务器的 data/attachment目录后执行sql即可
0表示本地,1表示远程

update pre_forum_attachment_0 set remote=0 where remote=1;
update pre_forum_attachment_1 set remote=0 where remote=1;
update pre_forum_attachment_2 set remote=0 where remote=1;
update pre_forum_attachment_3 set remote=0 where remote=1;
update pre_forum_attachment_4 set remote=0 where remote=1;
update pre_forum_attachment_5 set remote=0 where remote=1;
update pre_forum_attachment_6 set remote=0 where remote=1;
update pre_forum_attachment_7 set remote=0 where remote=1;
update pre_forum_attachment_8 set remote=0 where remote=1;
update pre_forum_attachment_9 set remote=0 where remote=1;
update pre_portal_article_title set remote=0 where remote=1;
update pre_portal_attachment set remote=0 where remote=1;
update pre_portal_topic_pic set remote=0 where remote=1;
update pre_home_pic set remote=remote-1;

修改Discuz! X3.2登录框提示文字“UID/用户名/Email”教程

移动互联网时代,越来越多的网站支持手机号登录,Discuz!程序也有相关的插件做了支持,但由于登录框提示文字不在在嵌入点,因此插件无法进行修改,需要站长手动进行修改。
以下是修改方法:

第一步:
打开source\language\member\lang_template.php
增加

'mobilenumber' => '手机号',

第二步:修改template\default\member\login_simple.htm
在25行

{lang username}

后面加入

/{lang mobilenumber}

第三步:更新缓存即可。

效果如下:

Discuz! X3.2开启https后UCenter通信失败的解决方法

打开uc_server\model\misc.php第68行找到

$port = !empty($matches['port']) ? $matches['port'] : 80;

在该句代码下方插入

if(substr($url,0,5)=='https'){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($post){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if($cookie){
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
return curl_exec($ch);
}

通信成功!