wp-config.php 基本設定:檔案 & 記憶體·內容修訂 SSH、SFTP、cPanel 設定指南

聯盟行銷揭露 Ver 3.1
聯盟行銷揭露 Ver 3.2(僅限行動版)
測試環境 RHEL 系列AlmaLinux 9.8PHP 8.3WordPress 7.1.32026-10-11 確認

wp-config.php 檔案是 WordPress 網站最重要的設定檔。這個檔案存放 WordPress 連線資料庫與運作所需的 核心資訊,就像網站的心臟。

Ⅰ. wp-config.php 的角色

這個檔案包含下列敏感設定。

  • 資料庫連線資訊
  • ↳ 包含連線到存放 WordPress 內容之資料庫所需的必要資訊,例如 MySQL 或 MariaDB 的資料庫名稱、使用者名稱、密碼與主機。
  • 安全金鑰與 salt
  • ↳ 用來加密使用者登入工作階段與 Cookie、加強安全性的唯一隨機字串。沒有這些金鑰,工作階段就無法保持安全。
  • 其他核心設定
  • ↳ 定義了控制 WordPress 運作方式的重要常數,例如資料表前置詞、開啟/關閉偵錯模式、停用檔案編輯等。
WordPress 的 wp-config.php 檔案

因為這些特性,wp-config.php 檔案會成為外部攻擊者的 首要攻擊目標。如果檔案的存取權限設錯或內容外洩,可能導致整個資料庫外洩,或網站管理權限被奪走,形成嚴重的 安全漏洞。因此,強化 WordPress 安全的第一步,就是確保這個檔案的安全。

1️⃣ wp-config.php 檔案位置

wp-config.php 位於安裝 WordPress 的最上層資料夾,和 [wp-admin]·[wp-content]·[wp-includes] 資料夾在同一層。cPanel 主機的這個位置是 [public_html] 資料夾,VPS 則放在網站根目錄(例如 [/var/www/html/wp-config.php])。

如果在最上層資料夾看不到這個檔案,就檢查上一層資料夾。WordPress 會先在安裝資料夾尋找 wp-config.php,找不到時再從正上方的資料夾載入。

2️⃣ 開啟 wp-config.php 的方法

在主機控制台的 [File Manager] 移到最上層資料夾,對 wp-config.php 按滑鼠右鍵並選擇 [Edit]。這是不需另外安裝程式、直接在瀏覽器中修改的方法。

FTP 程式(FileZilla)可以把檔案下載到自己的電腦,用編輯器修改後再上傳。上傳前先另外保存一份原始檔,出錯時就能立刻還原。

像 VPS 這樣透過 SSH 連線的伺服器,在編輯器名稱 [vi] 後面加上檔案路徑執行即可,[nano] 也能用同樣方式開啟。

vi /var/www/html/wp-config.php

3️⃣ wp-config-sample.php 與基本結構

剛下載的 WordPress 壓縮檔裡沒有 wp-config.php,同一個位置只有 [wp-config-sample.php]。在安裝畫面輸入資料庫資訊後,WordPress 會以這個檔案為基礎產生 wp-config.php,自己複製後改名也會得到相同結果。

define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );

[DB_NAME]·[DB_USER]·[DB_PASSWORD]·[DB_HOST] 這四行填入主機商提供的資料庫資訊。只要有一個值錯誤,就會顯示 [Error establishing a database connection] 錯誤,而不是網站。

從 [AUTH_KEY] 到 [NONCE_SALT] 這八行是加密登入 Cookie 的值,從 [https://api.wordpress.org/secret-key/1.1/salt/] 取得新的一組後整批替換。更換這些值後,所有已登入的使用者都會被登出。

[$table_prefix] 是加在資料表名稱前面的前置詞,預設值為 [wp_],在同一個資料庫安裝多個 WordPress 時用來區分彼此。把 [WP_DEBUG] 改成 [true] 後 PHP 錯誤會顯示在畫面上,所以運作中的網站要維持 [false]。

Ⅱ. 安裝 WordPress 後套用的 wp-config.php 基本設定

所有設定行都放在 /* That’s all, stop editing! Happy publishing. */ 註解上方。在下方模擬器中從 SSH·cPanel·FTP 選擇連線方式並開啟 wp-config.php,就會直接跳到左側所按設定的那一行。

⚙️ wp-config.php 設定設定模擬器
/* That’s all, stop editing! Happy publishing. */
從技術上來說,這行註解(/* That’s all, stop editing! Happy publishing. */)作為 PHP 程式碼並沒有任何特殊功能,只是單純的 註解而已。
user_a@server: ~
Last login: Mon Oct 5 14:10:02 2026 from 10.0.0.12
[user_a@server ~]$
但它扮演著 WordPress 開發團隊留給使用者的 ‘標記‘ 角色,意思是「這行註解下方是 WordPress 運作所需的核心程式碼,請不要動」。
  1. 設定常數(define)放上面: 大部分與 WordPress 設定相關的常數(define)都必須定義在 /* That’s all, stop editing! Happy publishing. */ 這行註解的正上方, WordPress 才能在初始化設定的過程中正常載入。
  2. WordPress 從下方開始載入: 這行註解下方有 [ABSPATH] 的定義和 [require_once( ABSPATH . ‘wp-settings.php’ );] 這段程式碼。從載入這個 [wp-settings.php] 檔案的那一刻起,WordPress 的核心功能才真正開始運作。
因此,如果要加入 額外的設定 (例如停用檔案編輯 [define(‘DISALLOW_FILE_EDIT’, true);],或設定記憶體上限 [define(‘WP_MEMORY_LIMIT’, ‘256M’);] 等),就必須寫在 WordPress 核心載入檔被呼叫 之前,也就是 註解的正上方,才能正確套用而不出錯。
wp-config-sample.php 在 [stop editing] 註解正上方還有一行 [Add any custom values between this line and the “stop editing” line.] 註解,自己加入的設定就放在這兩行註解之間。
WordPress 記憶體設定
WordPress 教學或官方文件中,大多只出現 [define(‘WP_MEMORY_LIMIT’, ‘256M’);] 這一行 而已。
記憶體設定用來指定 WordPress 在 PHP 中可使用的記憶體上限,避免佈景主題或外掛執行時發生記憶體不足錯誤(Fatal error: Allowed memory size exhausted)。換句話說,這是為了讓網站穩定運作、避免資源超載的 基本安全機制。
‘WP_MAX_MEMORY_LIMIT’ 是 讓後台可使用比前台更多記憶體的設計。
WP_MEMORY_LIMIT 是「網站訪客用的記憶體上限」,
WP_MAX_MEMORY_LIMIT 則是「管理員與內部處理用的擴充上限」。
兩者必須一起設定,才能 完整控制 WordPress 的記憶體。
如果 wp-config.php 的值比伺服器上 php.ini 或 PHP-FPM pool 的設定還大,會以伺服器設定為準。
限制內容修訂
不需要為了設定內容修訂的數量另外安裝外掛。把下面這一行常數加進 wp-config.php 就能達到同樣效果,資料庫裡也不會留下日後要清除的外掛設定。
WordPress 的內容修訂會不斷累積文章修改前的資料,讓網站變慢。特別是沒有安裝快取的 WordPress 網站,以及即使裝了快取、在管理後台控制台作業期間,尤其是在文章或頁面中製作內容時,連訪客看到的頁面都可能變慢。
例如伺服器的總 CPU 用到 50% 左右時,不管用哪個快取外掛,訪客頁面的速度都可能下降。
因此要停用內容修訂,或限制保留的數量。
如果有使用 WP Rocket 或 Perfmatters,也可以在它們的設定畫面處理。 WP Rocket 會透過 [資料庫] 分頁的 [文章版本] 刪除已累積的內容修訂,但沒有限制數量的設定。
WP Rocket 資料庫內容修訂清理畫面
Perfmatters 可在 [Limit Post Revisions] 設定每篇文章保留的內容修訂數量,在 [Autosave Interval] 設定自動儲存間隔。
Perfmatters 內容修訂限制設定
調整文章自動儲存間隔
WordPress 文章自動儲存的間隔預設是 1 分鐘。例如可以從預設的 60 秒 → 延長到 5 分鐘(300 秒)。
Heartbeat 設定
Heartbeat 沒有可放進 wp-config.php 的常數,所以無法用這個檔案調整。如果把下面的程式碼放進 wp-config.php,它會在 WordPress 載入 [add_action] 函式之前執行,網站就會因 [Call to undefined function add_action()] 錯誤而停擺。
WordPress 的 ‘Heartbeat’ 是確認伺服器與網站是否持續連線的訊號。Heartbeat API 透過 
/wp-admin/admin-ajax.php 從網頁瀏覽器執行 AJAX 呼叫。在 WordPress 控制台中,這個檔案每 15 秒就會送出一次 POST 要求。
可以設定成只在管理後台的撰寫文章畫面 [post.php]·[post-new.php] 中運作。
WP Rocket:如果有使用,可在 [Heartbeat] 分頁中,分別為管理後台、文章編輯器、前台選擇 [Do not limit]·[Reduce activity]·[Disable] 其中之一。
WP Rocket Heartbeat 設定畫面
Perfmatters 可在 [Disable Heartbeat] 設定允許 Heartbeat 的畫面,在 [Heartbeat Frequency] 設定要求間隔。
Perfmatters Heartbeat 設定
如果兩個外掛都沒有,就不要只為了 Heartbeat 再安裝外掛。外掛 即使刪除後,設定值仍會留在資料庫,所以請把下面的程式碼放進佈景主題的 [functions.php]。
/** Disable Heartbeat everywhere except post editor */
add_action('init', function() {
    global $pagenow;
    if ($pagenow != 'post.php' && $pagenow != 'post-new.php') {
        wp_deregister_script('heartbeat');
    }
}, 1);
全域設定
全域設定是放入本文所有設定的 wp-config.php。
記憶體兩行、內容修訂限制 3 個、自動儲存 300 秒,依序放在 [stop editing] 註解上方。
Heartbeat 放進 wp-config.php 會出錯,所以不在全域設定中。
按畫面右上角的複製圖示,只會複製要加入的那幾行。
只在瀏覽器中運作,不會變更實際檔案。在上方選擇連線方式,依序按下標籤開啟 wp-config.php,就會移到左側所按設定的那一行。也可以不按標籤,直接點選終端機自行輸入指令與 vi 按鍵。虛擬伺服器裡只有本文需要的檔案,cPanel·FileZilla 畫面是把實際畫面縮小繪製的。

🔢 FAQ & 推薦內容

剛儲存的那一行如果少了引號或分號,PHP 就無法把 wp-config.php 讀完,網站也打不開。先還原成修改前保存的原始檔,再只檢查改過的那幾行。

wp-config.php 安全文章建議設為只有擁有者可讀寫的 [600]。在 PHP 以不同於檔案擁有者的帳號執行的伺服器上,設成 600 時 PHP 會讀不到檔案,所以改完後要馬上確認網站能否開啟。

WP Rocket 啟用時會在檔案最上方加入 [define( ‘WP_CACHE’, true ); // Added by WP Rocket] 這一行,實測伺服器的 wp-config.php 第 2 行也有這一行。有這一行,WordPress 才會載入快取檔 [advanced-cache.php]。

如果同一個常數已經在檔案上方定義過,PHP 會直接沿用先定義的值,下方那行只會留下 [Constant WP_MEMORY_LIMIT already defined] 警告。用常數名稱搜尋整個檔案,看看有沒有主機商或外掛加入的行。

ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Prove your humanity: 7   +   10   =