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論壇上證書

第一步:由於版主的證書是阿里雲免費的證書,所以直接去阿里雲下載,如下所示:

                  
然後解壓如下所示:

將解壓後的文件傳送到服務器,任意路徑,版主傳送的路徑是/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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章