本欄目下相關鏈接 |
經驗技巧 |
如何優化我的 Discuz! 讓它運行更快?
由於 Discuz! 是使用數據庫的應用程序,因此數據庫的大小,也就是貼子數目,會員數目等直接影響到各項檢索的速度。但您盡可以放心, D
iscuz! 經過特別的耐高壓設計,確保在任何時候都可以比功能或級別相近的其他產品容納更多的文章和在線人數是我們始終追求的目標。除去貼
子和在線人數的因素,您可以嘗試從以下幾個方面入手優化 Discuz! : 下面列出幾個可能會影響 Discuz! 效率的功能,如果不必要,您可以在系統設置中將其關閉: 能否從遠程服務器恢復備份數據? 可以的。Discuz! 的數據備份功能支持遠程數據調用,您不需要事先將數據文件下載,只要在數據恢復中寫入遠程服務器上的備份數據文件名即可,例如http://www.your.com/forumdata/dz_0108_j3dhsgr-1.sql,如果您是多卷備份,請從起始卷(第一卷)開始,逐次輸入到最後一卷的 文件名。遠程數據調用需要兩台主機之間的網絡速度較快,否則可能導致超時錯誤。由於是文件傳輸,所以並不需要遠程數據庫連接的權限。 我想修改貼子列表上部的頁碼顯示個數,該如何做? 現在默認值為 10。修改方法為:打開 ./include/global.func.php,找到 function multi 的行,在下面可以看到 $page = 10; 字樣。將10修改為您需要的頁碼個數即可。 為什麼不提供管理記錄的刪除功能? Discuz! 管理記錄用文件保存,為了防止記錄被非法刪除,自動存留 15 天內的最新記錄,這些記錄佔用不了很多的空間,不需手工刪除。 如一定要刪除,可通過FTP 直接刪除 ./forumdata/(xxx)log.php 即可。 請給出論壇統計中 Discuz! 論壇活躍指數的計算方法。 論壇活躍指數由以下五項經過係數相乘後相加而成: 如果您有認更合理的計算方法,歡迎和我們聯繫。 我想在帖子中顯示會員的性別該怎麼做? 通常您只需要修改 index 模板即可,查找: {lang postnum} $post[postnum] ,在其後面添加: 如何禁止普通會員複製帖子內容? 修改 header 模板,查找<body ,然後後面添加:<!--{if !in_array($groupid,array(1,2,3))}--> oncopy="return false;" oncut=" return false;"<!--{/if}-->這樣可以禁止除版主以上級別的用戶的複製動作,如果還想開放某些用戶組的複製權限,可以在1,2,3後面加其他用戶組的 groupid ,之間用英文半角逗號分隔。 怎樣通過執行 SQL 語句對所有會員進行加分獎勵? 您可以進入系統設置的數據庫升級或 phpmyadmin 等數據庫管理工具,執行如下 SQL 語句:UPDATE cdb_members SET credit = credit + N WHERE groupid = X; 其中: N 為想要增加的積分數量, X 為用戶組的 groupid 。如果您想給所有用戶組積分加 N ,可以執行如下SQL 語句: UPDATE cdb_members SET credit = credit + N; 如何將登陸 cookie 有效期默認設置成 瀏覽器進程 ? 修改論壇根目錄下的logging.php :查找 default: $month_checked = 'checked'; ,替換成: default: $task_checked = 'checked'; 。 怎樣讓發帖時在主題上自動加上發帖日期? 打開模板 viewthread。htm ,搜索: {lang subject}: $thread[subject] ,然後在後面加入:[<!--{eval echo gmd ate("$dateformat", $thread['dateline'] + $timeoffset * 3600)}-->]這樣只需要在模板中進行修改就可以了。 管理員密碼忘記了怎麼辦? 假如你在你的論壇的uid為 A ,只要在phpMyAdmin中執行 SQL 語句:UPDATE `cdb_members` SET `password` = 'c4ca4238a0b923820dcc50 9a6f75849b',`secques`='' WHERE `uid` = 'A' LIMIT 1 ;就可以了。執行之後,該用戶的密碼被重設為1,且沒有安全提問。 如何清除論壇所有的登陸IP記錄? 先關閉論壇,進入"系統設置"裡的"數據庫","數據升級"中輸入: UPDATE `cdb_posts` SET `useip` = '';UPDATE `cdb_members` SET `regip` = '',`lastip` = '' ; 提交即可;這樣會將用戶註冊時候的 IP 也刪除掉。如果不想刪除用戶註冊時候的 IP ,可以將第2句換成: UPDATE `cdb_ members` SET `lastip` = '' ; 如何不讓遊客看到已註冊用戶的詳細資料? 打開 viewpro.php ,查找: $discuz_action = 61; ,在後面添加:if (!$discuz_uid) { showmessage('對不起,遊客無權 查看註冊會員的資料。');} 我想重置會員的積分和發帖數,使兩者相等該怎麼做? 如果發1貼加1分,可以在系統設置的數據庫升級或 phpmyadmin 裡運行如下語句:UPDATE `cdb_members` SET credit=postnum; , 同理發1帖加2分就是:UPDATE `cdb_members` SET credit=postnum*2; 。 為什麼不提供管理記錄的刪除功能? Discuz! 管理記錄用文件保存,為了防止記錄被非法刪除,系統自動存留 500 條最新的記錄,並佔用不了很多空間,不需手工刪 除。如一定要刪除,通過 FTP 直接操作 ./forumdata/xxlog.php即可。 怎樣設置才能讓遊客只能瀏覽論壇主題列表,不能瀏覽帖子內容? 您可以進入系統設置編輯遊客組的權限詳情,禁止其瀏覽帖子即可。 |