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论坛上证书
第一步:由于版主的证书是阿里云免费的证书,所以直接去阿里云下载,如下所示:
然后解压如下所示:
将解压后的文件传送到服务器,任意路径,版主传送的路径是/opt/lampp/etc如下所示:
第二步:修改/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);
此时在访问网站,如下:
此时版主网站既可以通过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),显示如下图所示:
(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),显示如下图所示:
(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)