linux下部署Discuz论坛

Discuz论坛基础搭建

 第一步:下载XAMPP(Apache+Mysql+PHP+RERL)

                 下载的xampp-linux-x64-5.5.30-7-installer.run

                 上传到/home目录下,然后在命令行输入 ./xampp-linux-x64-5.5.30-7-installer.run,如果报权限问题,

                  可以先对文件权限进行处理,输入 chmod 777 xampp-linux-x64-5.5.30-7-installer.run,然后在安装  

                  检测:如果安装完成会出现: /opt/lampp/

第二步:运行启动 xampp,命令行输入:/opt/lampp/lampp start  在浏览器中输入 http://ip 会出现xampp界面

第三步:下载discuz3.X  下载可以去官方的地址,百度一大把,这里就不在给出

                  然后将 upload 改名为up 上传至 /opt/lampp/htdocs 目录下

                  修改Discuz3目录的属性,将其修改为可读可写, 命令为 chmod -R 777 /opt/lampp/htdocs/up

                   其中为什么使用 -R 就是级联的目录文件,该目录下所有的子文件都改变属性

  第四步:版主想直接通过ip访问

                  进入opt/lampp/htdocs找到index.php

                  改动如下header

                   ('Location: '.$uri.'/up/');

                  进入opt/lampp/etc下找到httpd.conf

                  修改如下:

                  DocumentRoot "/opt/lampp/htdocs/up"

                  <Directory "/opt/lampp/htdocs/up">

 第五步:版主服务器ip是10.0.11.110浏览器中访问http://10.0.11.110

Discuz论坛上证书

第一步:由于版主的证书是阿里云免费的证书,所以直接去阿里云下载,如下所示:

linux下部署Discuz论坛                  
然后解压如下所示:

linux下部署Discuz论坛

将解压后的文件传送到服务器,任意路径,版主传送的路径是/opt/lampp/etc如下所示:

linux下部署Discuz论坛

第二步:修改/opt/lampp/etc/extra下的httpd-ssl.conf文件

listen 443 (当然版主的自带就是listen 443,所以不必操作)

接下的修改和版主保持队型

<VirtualHost _default_:443>

DocumentRoot "/opt/lampp/htdocs/up"(版主将up设为根目录)

SSLCertificateFile "/opt/lampp/etc/ssl.crt/1548100_www.xxxx.com_public.crt"

SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/1548100_www.xxxx.com.key"

SSLCertificateChainFile "/opt/lampp/etc/1548100_www.xxxx.com_chain.crt"

这个时候可以用https访问,不过还有部分链接是http,版主是完美主义者,接下来在如下/opt/lampp/htdocs/up/source/function路径中找到function_core.php

找到$content = output_replace($content);

在这行代码下添加如下代码:

$content = str_replace('http://www.xxxx.com:80','https://www.xxxx.com',$content);

此时在访问网站,如下:

linux下部署Discuz论坛

此时版主网站既可以通过http访问,也可以通过https

版主希望请求http是跳转到https

在source/class/class_core.php 文件找到如下代码:

set_exception_handler(array('core', 'handleException'));

在该代码后面添加如下代码

if($_SERVER['SERVER_PORT'] != '443' && $_SERVER['PHP_SELF'] != '/api/uc.php') {
         if(!preg_match("/(Caogen8|Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", $_SERVER['HTTP_USER_AGENT'])) {
                 header('HTTP/1.1 301 Moved Permanently');
                 header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
                 exit;
         } elseif(preg_match("/(Baidu|Google)/i", $_SERVER['HTTP_USER_AGENT'])) {
                 header('HTTP/1.1 403 Forbidden');
                 exit;
         } }

说明:当访问端口不为443(即https)时,如果不是搜索引擎则跳转到https页面,否则如果是百度或Google蜘蛛(这两个搜索引擎已支持收录https)则返回403禁止访问,避免重复收录 http 和 https 或优先收录了 http ,其它搜索引擎未定义,正常返回 http 页面(其它搜索引擎可能不支持收录 https ,因此开放 http 给他们)。

以上代码中“Caogen8”可以任意修改,管理员使用以下UA可以不跳转到https,便于对http版进行调测:
Mozilla/5.0 (compatible; Zidingyi/2015; +http://www.xxx.com)

禁止查看用户资料

 第二种:修改代码。

(1) 禁止【游客】查看”个人资料”

修改文件︰
source/include/space/space_profile.php

①找到以下代码:

1

getonlinemember(array($space['uid']));

②在下方加入以下代码并保存文件:

1

2

3

if (empty($_G['uid'])) { //如果用户uid为空,也就是用户未登录

showmessage('quickclear_noperm');  // 提示:您没有权限进行此操作

}

修改好后,在不登录论坛的情况下,访问网址:http://您的域名/?uid(如http://您的域名/?2),显示如下图所示:

linux下部署Discuz论坛

(2) 如果要禁止【所有用户】查看”个人资料”,按以下方法修改

修改文件︰
source/include/space/space_profile.php

①找到以下代码:

1

getonlinemember(array($space['uid']));

②在下方加入以下代码并保存文件:

1

2

3

if (empty($_G['uid'])||$_G['uid']) { //id不存在或存在都不允许访问

showmessage('quickclear_noperm'); // 提示:您没有权限进行此操作

}

修改好后,在不登录或登录论坛的情况下,访问网址:http://您的域名/?uid(如http://您的域名/?2),显示如下图所示:

linux下部署Discuz论坛

(3) 如果只允许管理员查看“个人资料”或用户只能自己查看自己的”个人资料”,按以下方法修改

修改文件︰
source/include/space/space_profile.php

①找到以下代码:

1

getonlinemember(array($space['uid']));

②在下方加入以下代码并保存文件:

 

1

2

3

if ($_G['uid']!=$space['uid']&&$_G['adminid'] != 1) { //当前用户id查看的不是自己的空间,并且当前用户不是管理员

showmessage('quickclear_noperm'); // 提示:您没有权限进行此操作

}

修改好后,在不登录或登录论坛的情况下,访问网址:http://您的域名/?uid(如http://您的域名/?2)

上一篇:centos7启动firefox问题


下一篇:mysql发展历程 各分支版本溯源