如何優化我的 Discuz! 讓它運行更快?
由於 Discuz! 是使用數據庫的應用程序,因此數據庫的大小,也就是貼子數目,會員數目等直接影響到各項檢索的速度。但您儘可以放心, D iscuz! 經過特別的耐高壓設計,確保在任何時候都可以比功能或級別相近的其他產品容納更多的文章和在線人數是我們始終追求的目標。除去貼 子和在線人數的因素,您可以嘗試從以下幾個方面入手優化 Discuz! :
- 1. 在系統設置中常規選項打開頁面 Gzip 壓縮,在支持 Gzip 壓縮的 PHP 系統上可以提高頁面打開速度數倍;
- 2. 將 config.inc.php 中 $tplrefresh 的值置 0 或調大 (最大為 9) 。這是個專家參數,關係到模板刷新的時間檢查,如果您不完全瞭解原理,切勿修改;
- 3. 定期優化數據表, 如每週或每三天;
- 4. 選擇裝有 Zend Optimizer 的空間商, Zend Optimizer 是免費軟件,可以在一定程度上提高 PHP 代碼的運行速度;
- 5. 選擇裝有 Zend Perf ormance Suite 的空間商 (很少見),Zend Performance Suite 是商業軟件,由於 Discuz! 是代碼與數據庫並 重的論壇產品,該軟件可以極為巨大的提高 Discuz! 的運行效率。
- 下面列出幾個可能會影響 Discuz! 效率的功能,如果不必要,您可以在系統設置中將其關閉:
- 1 。論壇統計功能;
- 2 。貼子列表顯示加點的圖標;
- 3 。過多的 Smilies 或詞語過濾;
注意: 鑑於 Discuz! 特別設計的體系結構,可能會和其他論壇產品有所不同,沒有列出來的其他功能,作者都認為打開與關閉不會對程序效率產生 大的影響,您可放心的使用。 除了上述功能以外,建議您不要設置過多的"用户組","詞語過濾"和"Smilies 代碼",因為過多的設置會導致檢索和替換的過程變得緩慢。當然, 如果您的設置內容數目在默認 (初始安裝) 數目的 2 倍以內,都被認為是較合理的範圍,不會耗費過多時間。
能否從遠程服務器恢復備份數據?
可以的。 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! 論壇活躍指數的計算方法。
論壇活躍指數由以下五項經過係數相乘後相加而成:
- (每天增加會員數/會員總數 + 每天增加帖子數/帖子總數) * 1500
- 平均每帖回覆數 * 10
- 人均會員發帖數 * 1
- 發帖會員佔總會員百分比 * 0.1
- 每個訪問者的瀏覽頁數 * 1
如果您有認更合理的計算方法,歡迎和我們聯繫。
我想在帖子中顯示會員的性別該怎麼做?
通常您只需要修改 index 模板即可,查找: {lang postnum} $post[postnum] ,在其後面添加:
{lang gender} <!--{if $post['gender'] == 1}-->{lang male} <!--{elseif $post['gender'] }-->{lang female} <!--{else}-->{lang secret} <!--{/if}-->
如何禁止普通會員複製帖子內容?
修改 header 模板,查找<body ,然後後面添加:<!--{if !in_array($groupid,array(1,2,3))}--> oncopy="return false;" oncut=" return false;"<!--{/if}--> 這樣可以禁止除版主以上級別的用户的複製動作,如果還想開放某些用户組的複製權限,可以在 1,2,3 後面加其他用户組的 groupid ,之間用英文半角逗號分隔。
怎樣對所有會員進行加分獎勵?
您可以以登錄論壇後台,在用户管理 --> 積分獎懲裏面進行獎懲
如何將登陸 cookie 有效期默認設置成 瀏覽器進程 ?
修改論壇根目錄下的 logging.php : 查找 $cookietimecheck = array((isset($_DCOOKIE['cookietime']) ? intval($_DCOOKIE['cookietime']) : 2592000) => 'checked'); ,替換成: $cookietimecheck = array((isset($_DCOOKIE['cookietime']) ? intval($_DCOOKIE['cookietime']) : 0) => 'checked'); 。
怎樣讓發帖時在主題上自動加上發帖日期?
打開模板 viewthread 。 htm ,搜索: {lang subject}: $thread[subject] ,然後在後面加入:[<!--{eval echo gmd ate("$dateformat", $thread['dateline'] + $timeoffset * 3600)}-->]這樣只需要在模板中進行修改就可以了。
管理員密碼忘記了怎麼辦?
可以使用 Discuz! 工具箱中的恢復管理員密碼功能進行修改,詳情請見 《Discuz! 工具箱》
如何清除論壇所有的登陸 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 即可。
怎樣設置才能讓遊客只能瀏覽論壇主題列表,不能瀏覽帖子內容?
您可以進入系統設置編輯遊客組的權限詳情,禁止其瀏覽帖子即可。