目錄
wp-config.php 文件是 WordPress 安裝過程中的重要組成部分。在安裝過程中創建的這個文件包含了資料庫配置項目。簡而言之,它使 WordPress 能夠與資料庫建立連接。
因此,網站管理員應該知道如何妥善管理這個文件,以確保網站的安全性。沒有這個文件,您的 WordPress 網站將無法從資料庫中存儲和檢索數據。
本文章探討 wp-config.php 文件的功能,以及如何在您的 WordPress 網站目錄中找到它。小編還說明如何編輯 wp-config.php 文件,並在您的網站上實施自定義設置。
wp-config.php 文件是什麼
wp-config.php 文件是在 WordPress 安裝過程中創建的一個配置文件。它存儲了資料庫的資訊,例如資料庫名稱、用戶名、密碼和主機。
除了建立 WordPress 網站與其資料庫之間的連接,WordPress 還使用 wp-config.php 文件在網站上實施高級設置。
這個配置文件存儲在您網站的根文件夾中。可以通過使用 FTP 客戶端(如 FileZilla)或您的 WordPress主機的文件管理器來訪問 wp-config.php 文件。以下示例顯示了位於 httpdocs(Plesk) 或是 public_html(cPanel)目錄裡的 wp-config.php 文件:
如果您需要手動建立 wp-config.php 文件, WordPress 在 root 資料夾中提供了一個名為 wp-config-sample.php 檔案的範例檔案。
它包含所有必要的資訊,非常適合不熟悉該文件的 WordPress 初學者。請記住不要更改程式碼的順序,因為這可能會導致網站出現錯誤。
這是 wp-config.php 範例檔案的內容 :
WordPress 使用 PHP 常數,這些常數是執行 PHP 腳本時無法修改的值的識別碼。這些標識符定義 wp-config.php 檔案中的資料庫設定。每個設定都附帶說明,使程式碼模板的使用更加容易。
WordPress 中的 wp-config.php 檔案在哪裡
要在 WordPress 網站的根目錄中找到 PHP 文件,請使用 網站代管供應商提供的文件管理器或 FTP 用戶端。以下部分將向您展示如何在 TAKI Cloud 的 Plesk、 cPanel 中以及透過 FTP 尋找 wp-config.php 檔案。
在 Plesk 中找到 wp-config.php 文件
- 導航至 Plesk 的畫面部分找到「文件」 。
- 從側邊欄存取 httpdocs 點擊進去。
- 向下滾動直到找到 wp-config.php 檔案。
在 cPanel 中找到 wp-config.php 文件
cPanel 還附帶一個檔案管理器。請依照以下步驟在 cPanel 中找到 wp-config.php 檔案:
- 導航至cPanel 的「檔案」部分下的「檔案管理器」 。
- 從側邊欄存取public_html → wp 資料夾(www)。
- 向下滾動直到找到 wp-config.php 檔案。
透過 FTP 找到 wp-config.php 文件
您也可以使用 FTP 用戶端尋找 wp-config.php 檔案。如果您需要協助,我們提供了有關如何設定 FileZilla 的教學課程。
以下是透過 FTP 用戶端尋找 wp-config.php 檔案的方法:
- 從您的網站代管供應商獲得您的 FTP 資訊。如果您的網站在 TAKI Cloud 代管的 WordPress 或任何其他類型的代管服務上運行,則可以在 Plesk 或 cPanel 的 FTP 帳戶中找到此資訊。或向您的網站代管供應商發工單請求資訊。
- 開啟 FileZilla 並輸入您的 FTP 帳號與密碼。按一下“快速連線”。
- 導覽至網站的 root 目錄 httpdocs(Plesk) 或是 public_html(cPanel)。 wp-config.php 檔應該在那裡。
重新定位 wp-config.php 文件
由於您的 WordPress 網站設定檔儲存在根資料夾中,因此該檔案容易受到惡意軟體攻擊。
除了設定檔權限之外,我們建議將檔案從預設位置重新定位,以加強 WordPress 網站的安全性。
請依照下列步驟使用檔案總管重新定位 WordPress wp-config.php 檔案:
- 在 WordPress 網站 root 目錄中找到 wp-config.php 檔案。
- 將 wp-config.php 檔案複製並貼上到您選擇的另一個目錄。在此範例中,我們將其放入 /httpdocs/wp-admin/user 中。
- 更改新的 wp-config.php 文件的名稱。目標是將其偽裝成不重要的文件,這樣駭客就無法識別它。
- 返回原始 wp-config.php 檔案並將其全部內容替換為以下程式碼:
# Plesk使用,如果是 cPanel 請用以下程式碼
確保將目錄替換為檔案的新位置,將 wp-config-1.php 替換為新檔案名,並新增您自己的網域。
- 就是這樣。原始的 wp-config.php 檔案現在將用作將伺服器重定向到實際的 wp-config.php 檔案的捷徑。
wp-config.php 檔案部分
如前所述,可以修改 WordPress wp-config-sample.php 檔案來為您的 WordPress 網站建立自訂設定。因此,了解每個部分的目的以及如何更改它非常重要。
本章節將詳細介紹 wp-config.php 檔案中的各個部分以及要新增以進行進階 WordPress 網站自訂的程式碼片段。
wp-config.php 的 MySQL 設定
MySQL 設定部分包含 WordPress 資料庫設定 – MySQL 主機名稱、資料庫名稱、使用者名稱和密碼。如果您的主機供應商使用備用連接 port 或您要移轉到不同的 Web 伺服器,我們建議變更此部分。
以下是取自 wp-config-sample.php 檔案的 MySQL 設定部分的片段:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
本節所需的所有資訊都可以在您的主機控制面板中找到。例如,TAKI Cloud 在 Plesk 或 cPanel 的資料庫部分下的 MySQL 資料庫中顯示使用者的資料庫資訊。
WordPress 在安裝時將資料庫名稱放入DB_NAME變數中。
資料庫字元集
WordPress 在設定檔中設定資料庫字元集和資料庫排序規則值。其目的是使用適當的字元集設定定義資料庫表,例如:
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
預設情況下,WordPress 將 UTF8 指定為預設字元集,因為它支援所有網路友善語言,使其成為現代資料的理想選擇。
同時,資料庫排序規則的值主要取決於字元集,因為它決定了 WordPress 資料庫如何排序和比較資料。
MySQL 根據指派的字元集自動指派資料庫排序規則值,因此預設值為空白。如果您的 WordPress 資料庫使用 UTF8,則預設排序規則值為 utf8_general_ci。
但是,如果語言字元集與顯示的字元集不同(例如日文),則可以手動指派排序規則值。
我們建議不要修改此部分,除非您對 SQL、 MySQL和 MariaDB 有很好的理解。使用錯誤的字元集和排序規則值組合將導致 WordPress 中出現各種資料庫錯誤。
安全金鑰
您的 wp-config 檔案儲存了一組身份驗證密鑰和 WordPress salt,為您的網站提供額外的安全層,以防止暴力破解攻擊。這些隨機字串包含八個變數,所有這些變數都會加密登錄到 WordPress 網站時由 cookies 保存的登錄資訊。
鑑於它們的用途,定期更換您的身份驗證密鑰和加密 salt 是提高 WordPress 安全性的多種方法之一。我們建議使用密碼生成器,或者使用密碼檢查器測試您創建的密碼,以確保其對密碼猜測攻擊的耐久性。
另外,您也可以安裝像 Salt Shaker 這樣的 WordPress 安全外掛,自動為您生成加密 salt 密鑰。
一旦您有了新的密碼,將它們一個個粘貼在引號內,替換掉「put your unique phrase here」這個值。
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
*
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
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' );
/**#@-*/
實施新的安全金鑰和 WordPress salt 後,WordPress 將登出所有使用者並使目前 cookie 無效。用戶將需要再次嘗試登入才能造訪您的網站,從而清除那些具有惡意意圖的用戶。
資料庫表前綴
WordPress 在 wp-config.php 檔中設定預先定義的 wp_ 資料庫前綴。與您的安全金鑰類似,我們建議儘早更改您的資料庫前綴。這樣做將提高資料庫針對 SQL 注入攻擊的安全性。
以下程式碼片段是 wp-config.php 檔案中儲存資料庫前綴的部分:
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
如上所述,WordPress 接受由底線、字母和數字組成的自訂資料庫前綴。確保它足夠獨特,其他用戶無法輕易猜到。例如:
$table_prefix = '24x4g_';
透過 phpMyAdmin 檢查 WordPress 資料庫來驗證您是否已成功變更表格前綴。如果您存取資料庫結構,表的名稱應以您指定的前綴開頭。在這裡,我們用 24x4g_ 替換預設的表前綴。
偵錯模式
如果您是 WordPress 開發人員,您會發現此 wp-config.php 設定對於偵錯 WordPress 網站非常有用。偵錯模式負責在 WordPress 網站執行 PHP 程式碼時通知您,以便您檢查程式碼中是否有錯誤。
以下程式碼片段是 WordPress wp-config.php 檔案中儲存偵錯模式首選項的部分:
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', false );
WordPress 預設關閉偵錯模式。若要開啟此模式,請將 false 值替換為 true。
define( 'WP_DEBUG', true );
請記住,啟用偵錯模式將使您的 WordPress 網站顯示所有 PHP 錯誤和警告,而不是僅顯示致命錯誤的白屏死機。
絕對路徑
絕對路徑部分說明電腦內資料夾或檔案的位置。它確定資料夾和檔案之間的關係以及網站 URL 的基礎。
也就是說,您不應更改以下程式碼片段中的資訊:
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
WordPress 網址
如果您想將網站移至另一個伺服器或網域,則變更 WordPress URL 是必要的步驟。可透過 WordPress 儀表板上的「設定」 → 「一般設定」選單來完成。
有時,由於 ERR_TOO_MANY_REDIRECTS 錯誤,您可能無法編輯這些 WordPress 位址和網站位址值。在這種情況下,您可以透過將以下程式碼片段新增至 wp-config.php 檔案來變更 WordPress URL。
define( 'WP_HOME', 'http://example.com' );
define( 'WP_SITEURL', 'http://example.com' );
確保將 http://example.com 值替換為您的域名,並將程式碼放在 /* 行上方,就這樣,停止編輯!快樂出版。 */ .
如果您使用 www URL ,請包含網站的 www 版本。
記憶體大小限制
WordPress 需要 PHP 記憶體來執行腳本。您獲得的記憶量取決於您的網站代管。例如,TAKI Cloud 為基本 WordPress代管計劃分配 2GB 的最大記憶體限制。
如果沒有足夠的記憶體供 WordPress 使用,則會顯示記憶體耗盡的錯誤訊息。要解決此問題,請設定您自己的 PHP 記憶體限制值,方法是將以下程式碼片段新增到您的 wp-config 檔案中 /* That’s all, stop editing! Happy publishing. */
在此範例中,我們將每個 PHP 腳本的記憶體分配量增加到 256 MB。
define('WP_MEMORY_LIMIT', '256M');
我們建議根據您的需求設定 PHP 記憶體限制值,同時強制執行每個腳本的最大記憶體限制。只有當腳本所需的記憶體多於分配的記憶體時,WordPress 才會強制執行此記憶體限制。
define('WP_MAX_MEMORY_LIMIT', '512M');
專家提示
不要過度設定記憶體限制值,因為過多的 PHP 記憶體會增加惡意 PHP 腳本消耗伺服器 RAM 的可能性。
上傳目錄
WordPress 將所有上傳的媒體重新導向到 /wp-content/uploads/ 目錄。為了提高檔案的安全性,您可以在 WordPress 網站上重新定義上傳路徑。
在 wp-config.php 檔案的 WP_DEBUG 程式碼下方加入以下程式碼片段:
define( 'UPLOADS', 'wp-content/media' );
此程式碼將使 WordPress 將所有上傳的媒體儲存在 wp-content 資料夾內的新 media 目錄中。您可以根據需要隨意更改新目錄的名稱。
如果您希望 WordPress 將媒體檔案儲存在 wp-content 之外的目錄中,請使用下列程式碼片段來定義上傳路徑。
define( 'UPLOADS', ''.'media' );
請記住,這兩個程式碼片段僅適用於在根目錄或絕對路徑(ABSPATH) 內定義新的上傳資料夾。
專家提示
確保移動上傳資料夾內容並更改 WordPress 資料庫表中每個上傳檔案的 URL,以避免網站上出現損壞的連結。
wp-內容目錄
除了媒體檔案之外,WordPress 還將您的外掛程式和主題檔案儲存在 wp-content 資料夾中。由於此資料夾路徑是預設的 WordPress 設置,因此很容易受到惡意軟體注入攻擊。因此,最好更改 wp-content 資料夾的位置。
透過在以下行後添加自訂程式碼來編輯 wp-config.php 檔案:
/* Add any custom values between this line and the "stop editing" line. */
您需要定義 WP_CONTENT_DIR 並更改 wp-content 資料夾的位置。您可以這樣做:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/content/wp-content' );
要更改 wp-content URL 的位置,您需要定義另一個變數:
define( 'WP_CONTENT_URL', 'yourdomain.com/blog/content/wp-content' );
不要忘記將 yourdomain.com 替換為您自己的 URL。
外掛目錄
如果移動 WordPress 內容資料夾看起來很麻煩,請考慮重新定位外掛程式資料夾。為此,您需要透過在 wp-settings 部分下方新增以下程式碼片段來定義 WordPress 常數變數 wp_plugin_dir:
define( ‘WP_PLUGIN_DIR’, $_SERVER[‘DOCUMENT_ROOT’] . ‘/blog/content/wp-content/plugins’ );
確保透過添加以下程式碼來更改變數 wp_plugin_url 中的外掛資料夾的 URL:
define( ‘WP_PLUGIN_URL’, ‘yourdomain.com/blog/content/wp-content/plugins’);
一些外掛開發人員使用變數 plugindir 來運行他們的程式。不要忘記更改它以避免 WordPress 網站內的外掛衝突。以下是您需要添加到 wp-config.php 檔案中的程式碼:
define( 'PLUGINDIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/content/wp-content/plugins' );
主題目錄
我們不建議移動主題資料夾,因為這樣做可能會導致外掛衝突。如果您需要額外的主題目錄,請使用 register_theme_directory 函數建立一個:
function register_theme_directory( $directory ) {
global $wp_theme_directories;
if ( ! file_exists( $directory ) ) {
// Try prepending as the theme directory could be relative to the content directory.
$directory = WP_CONTENT_DIR . '/' . $directory;
// If this directory does not exist, return and do not register.
if ( ! file_exists( $directory ) ) {
return false;
}
}
if ( ! is_array( $wp_theme_directories ) ) {
$wp_theme_directories = array();
}
$untrailed = untrailingslashit( $directory );
if ( ! empty( $untrailed ) && ! in_array( $untrailed, $wp_theme_directories, true ) ) {
$wp_theme_directories[] = $untrailed;
}
return true;
}
請記住,新的主題目錄必須位於 root 目錄內。這是因為您的伺服器需要存取網站的主題檔案才能正常運作。
錯誤記錄
在 WordPress 中開啟偵錯模式只會標記網站後端和前端的錯誤。要記錄錯誤,您需要在 Define(‘WP_DEBUG’, true); 行下方新增其配套程式碼。
define( ‘WP_DEBUG_LOG’, true );
如果您想將錯誤保存在文件中,請改用以下程式碼:
define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
若要關閉錯誤輸出,即您的瀏覽器在偵錯過程中不會顯示任何訊息,請使用以下程式碼:
define( 'WP_DEBUG_DISPLAY', false );
WordPress 自動更新
WordPress 在安裝過程中提供啟用自動更新功能的選項,這樣您就不必手動更新,節省了時間。然而,如果您安裝了自訂主題,自動更新可能會有反效果,因為無法預測哪次更新會影響您網站的外觀。
要禁用自動更新功能,請在 /* That’s all, stop editing! Happy publishing. */ 這行上方添加以下代碼:
define( ‘AUTOMATIC_UPDATER_DISABLED’, true );
如果您未來想重新啟用自動更新,將 true 改為 false 或刪除此代碼即可。
WordPress 核心更新
從 WordPress 3.7 版本開始,系統會自動在後台更新小型核心版本和翻譯文件,以確保最佳性能。在某些情況下,更新可能包括主題和插件的開發文件。
由於此功能可讓您的網站保持最新和安全,我們建議保留預設設置。
如果您希望全面啟用開發版、小型版本和主要核心更新,請在 /* That’s all, stop editing! Happy publishing. */ 這行上方添加以下代碼:
define( 'WP_AUTO_UPDATE_CORE', true );
將常數值變更為false以停用開發、次要和主要核心更新:
define( 'WP_AUTO_UPDATE_CORE', false);
或者,僅透過將常數值變更為 minor 來啟用次要版本的自動更新:
define( 'WP_AUTO_UPDATE_CORE', ‘minor’);
自訂用戶表
預設情況下,WordPress 提供 wp_users 表來儲存用戶資料。如果您在安裝後需要自訂用戶表,請將以下代碼添加到您的 wp-config.php 文件中:
define( ‘CUSTOM_USER_TABLE’, $table_prefix.’my_users’ );
通常,開發人員使用此代碼在不同的 WordPress 安裝之間共享用戶表,這對於在多個網站之間維持相同的用戶基礎非常有用。
自訂用戶 Meta 資料表
如果您決定創建自訂用戶表,您需要創建另一個表來儲存用戶 Meta 資料。以下代碼可讓您創建自訂用戶 Meta 資料表:
define( ‘CUSTOM_USER_META_TABLE’, $table_prefix.’my_usermeta’ );
自訂用戶 Meta 資料表在多個 WordPress 安裝之間收集和共享用戶資訊非常有用。會員外掛也使用自訂用戶 Meta 資料表來儲存會員資訊。
語言和語言目錄
WordPress 安裝的預設語言是美式英語,當然如果您是從 WordPress Taiwan 正體中文網站 下載安裝的版本,那麼預設語言便是繁體中文。從 WordPress 4.0 版本開始,用戶可以在管理儀表板的 設定 → 一般設定 中更改語言。也可以在安裝過程中更改預設語言。
如果要切換到其他語言,請將以下程式碼新增至 wp-config 檔案:
define( ‘WPLANG’, ‘de_DE’ );
define( ‘WP_LANG_DIR’, dirname(__FILE__) . ‘wordpress/languages’ );
第一行代碼指定要安裝的 .mo 語言文件,而第二行則定義存儲該語言文件的語言目錄。
語言文件的命名規則是語言代碼加上國家代碼。例如,de_DE 代表德語。請在 GNU gettext utilities 頁面查找您所需的語言和國家代碼。
如果您輸入了錯誤的國家和語言代碼組合,WordPress 將默認使用美式英語。
文件權限
配置文件權限是保護您的網站的另一個重要步驟。該設置決定哪些用戶可以查看、修改和執行網站內的核心文件和文件夾。
大多數主機提供商允許您通過文件管理器更改文件和文件夾的權限。以下是 TAKI Cloud 的 Plesk 或 cPanel 設置範例:
每個使用者對應的權限級別由一個三位數代碼表示:
- 0 ‒ 沒有訪問權限
- 1 ‒ 執行權限
- 2 ‒ 寫入權限
- 4 ‒ 讀取權限
- 3(2 和 1 的組合)‒ 寫入和執行權限
- 5(4 和 1 的組合)‒ 讀取和執行權限
- 6(4 和 2 的組合)‒ 讀取和寫入權限
- 7(2、3 的組合)‒ 讀取、寫入和執行權限
如果您無法進入文件管理器來更改文件權限,可以使用上述代碼的組合修改 wp-config.php 文件。請在 /* That’s all, stop editing! Happy publishing. */ 這行上方添加以下代碼:
define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );
define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );
chmod 644 wp-config.php
chmod 644 .htaccess
對於 wp-config.php、.htaccess 和其他文件,使用 644 文件權限意味著所有使用者都可以看到它們,但只有擁有者可以修改它們。而對於 WordPress 目錄和子目錄,使用 755 文件權限表示所有人都可以讀取和執行它們,但只有擁有者可以進行更改。
編輯 wp-config.php 檔案
如果您要編輯 WordPress 配置文件,最好先備份它。保留額外的信息副本有助於修復可能會破壞您網站的任何配置錯誤。
接下來,決定您要使用的工具。開發人員通常使用文本編輯器或 HTML 編輯器程序。這種方法需要下載 WordPress 配置文件,修改後再上傳到相同的目錄中。
或者,使用您的網頁主機的文件管理器提供的程式碼編輯器。以下是如何通過 TAKI Cloud 的 Plesk 或是 cPanel文件管理器編輯 wp-config.php 文件的步驟:
- 從 TAKI Cloud 提供的 Plesk 或是 cPanel 導航至文件管理器。
- 在側邊欄中點擊 httpdocs(Plesk) 或是 public_html(cPanel)目錄裡。
- 雙擊 wp-config.php 文件並進行必要的更改。
- 完成後,點擊保存。
結論
Wp-config.php 是在 WordPress 網站安裝過程中建立的核心文件。它建立了您的 WordPress 網站與其資料庫之間的連接,並實現了各種高級設置。
您可以使用 FTP 客戶端或您的網頁主機提供的文件管理器,在網站的根目錄中找到它。
WordPress 配置文件包括幾個部分:
- MySQL 設置 ‒ WordPress 資料庫配置。
- 資料庫字符集 ‒ 用於定義具有適當字符集設置的表。
- 安全密鑰 ‒ 負責加密用戶資訊。
- WordPress 資料庫表前綴 ‒ 設置表前綴以提高安全性。
- 調試模式 ‒ 有助於跟踪 PHP 錯誤。
- 絕對路徑 ‒ 指定伺服器中文件夾或文件的位置。
雖然 WordPress 的 wp-config.php 可以使用文字編輯器進行編輯,但在進行任何更改之前,請務必備份該文件。即使是最小的配置錯誤也可能會中斷資料庫與 WordPress 網站之間的連接。