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)