Thiết lập cơ bản wp-config.php: file & bộ nhớ·bản sửa đổi — hướng dẫn cài đặt qua SSH, SFTP, cPanel

Thông báo tiếp thị liên kết Ver 3.1
Thông báo tiếp thị liên kết Ver 3.2 (chỉ trên di động)
Môi trường thử nghiệm Họ RHELAlmaLinux 9.8PHP 8.3WordPress 7.1.3Kiểm tra ngày 2026-10-11

File wp-config.php là file cấu hình quan trọng nhất của website WordPress. File này chứa thông tin cốt lõi mà WordPress cần để kết nối cơ sở dữ liệu và hoạt động, nên đóng vai trò như trái tim của website.

Ⅰ. Vai trò của wp-config.php

File này chứa các thiết lập nhạy cảm sau.

  • Thông tin kết nối cơ sở dữ liệu
  • ↳ Chứa thông tin bắt buộc để kết nối tới cơ sở dữ liệu lưu nội dung WordPress, như tên cơ sở dữ liệu MySQL hoặc MariaDB, tên người dùng, mật khẩu và host.
  • Khóa bảo mật và salt
  • ↳ Chuỗi ngẫu nhiên, duy nhất dùng để mã hóa phiên đăng nhập và cookie của người dùng nhằm tăng cường bảo mật. Không có các khóa này, phiên không thể được giữ an toàn.
  • Các thiết lập cốt lõi khác
  • ↳ Ở đây định nghĩa các hằng số quan trọng điều khiển cách WordPress hoạt động, như tiền tố bảng, bật/tắt chế độ debug và tắt chỉnh sửa file.
Tệp wp-config.php của WordPress

Vì những đặc điểm này, file wp-config.php trở thành mục tiêu tấn công hàng đầu của kẻ tấn công bên ngoài. Nếu quyền truy cập file bị đặt sai hoặc nội dung bị lộ, toàn bộ cơ sở dữ liệu có thể bị rò rỉ hoặc quyền quản trị website có thể bị chiếm, dẫn đến lỗ hổng bảo mật nghiêm trọng. Vì vậy, bước đầu tiên để tăng cường bảo mật WordPress là bảo đảm an toàn cho file này.

1️⃣ Vị trí file wp-config.php

wp-config.php nằm trong thư mục cao nhất nơi cài WordPress, cùng cấp với các thư mục [wp-admin]·[wp-content]·[wp-includes]. Với hosting cPanel, thư mục đó là [public_html]; còn trên VPS, file được đặt ở web root (ví dụ: [/var/www/html/wp-config.php]).

Nếu không thấy file trong thư mục cao nhất, hãy kiểm tra thư mục cao hơn một cấp. WordPress tìm wp-config.php trong thư mục cài đặt trước, nếu không có thì tìm và tải từ thư mục ngay phía trên.

2️⃣ Cách mở wp-config.php

Trong [File Manager] của bảng điều khiển hosting, đi đến thư mục cao nhất, nhấp chuột phải vào wp-config.php rồi chọn [Edit]. Đây là cách sửa ngay trong trình duyệt mà không cần chương trình riêng.

Chương trình FTP (FileZilla) cho phép tải file về máy tính, sửa bằng trình soạn thảo rồi tải lên lại. Lưu riêng một bản gốc trước khi tải lên để có thể khôi phục ngay nếu xảy ra lỗi.

Với server như VPS, kết nối qua SSH, hãy chạy tên trình soạn thảo [vi] kèm đường dẫn file phía sau; [nano] cũng mở được theo cách tương tự.

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

3️⃣ wp-config-sample.php và cấu trúc cơ bản

Gói nén WordPress vừa tải về không có wp-config.php, chỉ có [wp-config-sample.php] ở cùng vị trí. Khi nhập thông tin cơ sở dữ liệu ở màn hình cài đặt, WordPress tạo wp-config.php dựa trên file này; tự sao chép rồi đổi tên cũng cho kết quả như vậy.

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 );

Bốn dòng [DB_NAME]·[DB_USER]·[DB_PASSWORD]·[DB_HOST] chứa thông tin cơ sở dữ liệu nhận từ nhà cung cấp hosting. Chỉ cần sai một giá trị, thay vì website sẽ hiện lỗi [Error establishing a database connection].

Tám dòng từ [AUTH_KEY] đến [NONCE_SALT] là các giá trị mã hóa cookie đăng nhập; hãy lấy bộ mới từ [https://api.wordpress.org/secret-key/1.1/salt/] và thay toàn bộ. Khi đổi các giá trị này, mọi người dùng đang đăng nhập sẽ bị đăng xuất.

[$table_prefix] là tiền tố gắn trước tên bảng trong cơ sở dữ liệu, mặc định là [wp_], dùng để phân biệt khi cài nhiều WordPress trong cùng một cơ sở dữ liệu. Khi đổi [WP_DEBUG] thành [true], lỗi PHP sẽ hiện trên màn hình, nên với website đang chạy hãy để [false].

Ⅱ. Thiết lập cơ bản wp-config.php sau khi cài WordPress

Mọi dòng thiết lập đều đặt phía trên chú thích /* That’s all, stop editing! Happy publishing. */. Trong trình mô phỏng bên dưới, chọn cách kết nối SSH·cPanel·FTP rồi mở wp-config.php, màn hình sẽ nhảy ngay đến dòng của thiết lập bạn bấm ở bên trái.

⚙️ Thiết lập wp-config.phpTrình mô phỏng cài đặt
/* That’s all, stop editing! Happy publishing. */
Về mặt kỹ thuật, chú thích này (/* That’s all, stop editing! Happy publishing. */) không thực hiện chức năng đặc biệt nào với tư cách mã PHP. Nó chỉ đơn thuần là một chú thích.
user_a@server: ~
Last login: Mon Oct 5 14:10:02 2026 from 10.0.0.12
[user_a@server ~]$
Nhưng nó đóng vai trò như một ‘dấu hiệu‘ mà đội ngũ WordPress để lại cho người dùng, với ý nghĩa “bên dưới chú thích này là mã cốt lõi WordPress cần để hoạt động, đừng động vào”.
  1. Hằng số thiết lập (define) ở phía trên: Hầu hết các hằng số liên quan đến thiết lập WordPress (define) phải được định nghĩa phía trên dòng /* That’s all, stop editing! Happy publishing. */ — tức ngay phía trên chú thích đó — thì WordPress mới tải chúng đúng cách trong quá trình khởi tạo thiết lập.
  2. WordPress bắt đầu tải ở phía dưới: Bên dưới chú thích này là phần định nghĩa [ABSPATH] và đoạn mã [require_once( ABSPATH . ‘wp-settings.php’ );]. Ngay khi file [wp-settings.php] này được tải, các chức năng cốt lõi của WordPress bắt đầu thực sự chạy.
Vì vậy, nếu muốn thêm thiết lập bổ sung (ví dụ: tắt chỉnh sửa file bằng [define(‘DISALLOW_FILE_EDIT’, true);] hoặc đặt giới hạn bộ nhớ bằng [define(‘WP_MEMORY_LIMIT’, ‘256M’);]), bạn phải viết chúng trước khi file tải lõi của WordPress được gọi, tức là ngay phía trên chú thích thì mới áp dụng được mà không gặp lỗi.
Trong wp-config-sample.php, ngay phía trên chú thích [stop editing] còn một dòng chú thích nữa là [Add any custom values between this line and the “stop editing” line.]; các thiết lập bạn tự thêm sẽ đặt giữa hai chú thích này.
Thiết lập bộ nhớ WordPress
Phần lớn hướng dẫn WordPress và tài liệu chính thức chỉ nêu [define(‘WP_MEMORY_LIMIT’, ‘256M’);] đứng một mình — không kèm dòng thứ hai.
Thiết lập bộ nhớ quy định lượng bộ nhớ tối đa WordPress được dùng trong PHP, nhằm tránh lỗi thiếu bộ nhớ (Fatal error: Allowed memory size exhausted) khi theme hoặc plugin chạy. Nói cách khác, để website chạy ổn định và không vượt quá tài nguyên, đây là cơ chế an toàn cơ bản.
‘WP_MAX_MEMORY_LIMIT’ là cơ chế cho phép backend dùng nhiều bộ nhớ hơn frontend.
WP_MEMORY_LIMIT là “giới hạn bộ nhớ cho khách truy cập website”,
còn WP_MAX_MEMORY_LIMIT là “giới hạn mở rộng cho quản trị và xử lý nội bộ”.
Phải thiết lập cả hai cùng lúc mới có thể kiểm soát hoàn toàn bộ nhớ WordPress.
Nếu giá trị trong wp-config.php lớn hơn thiết lập php.ini hoặc pool PHP-FPM trên server, thiết lập của server sẽ được áp dụng.
Giới hạn bản sửa đổi
Không cần cài plugin riêng chỉ để đặt số lượng bản sửa đổi. Thêm một dòng hằng số bên dưới vào wp-config.php là có kết quả tương tự, và cũng không để lại thiết lập plugin nào trong cơ sở dữ liệu phải dọn sau này.
Bản sửa đổi WordPress liên tục tích lũy dữ liệu trước khi chỉnh sửa của bài viết, khiến website chậm đi. Đặc biệt với website WordPress chưa cài cache, và ngay cả khi đã cài cache nhưng bạn đang làm việc trong bảng tin quản trị, nhất là khi soạn nội dung cho bài viết hay trang, cả trang dành cho khách truy cập cũng có thể bị chậm.
Ví dụ, khi server dùng khoảng 50% tổng CPU, dù dùng plugin cache nào thì tốc độ trang của khách truy cập cũng có thể giảm.
Vì vậy, người ta tắt bản sửa đổi hoặc giới hạn số lượng.
Nếu đang dùng WP Rocket hoặc Perfmatters, bạn cũng có thể xử lý trong màn hình cài đặt của chúng. WP Rocket xóa các bản sửa đổi đã tích lũy bằng [Revisions] ở tab [Database], nhưng không có thiết lập giới hạn số lượng.
Màn hình dọn bản sửa đổi trong cơ sở dữ liệu của WP Rocket
Perfmatters đặt số bản sửa đổi giữ lại cho mỗi bài viết trong [Limit Post Revisions] và khoảng thời gian tự động lưu trong [Autosave Interval].
Thiết lập giới hạn bản sửa đổi của Perfmatters
Điều chỉnh khoảng thời gian tự động lưu
Khoảng thời gian tự động lưu bài viết của WordPress mặc định là 1 phút. Ví dụ, có thể tăng từ mặc định 60 giây → 5 phút (300 giây).
Thiết lập Heartbeat
Heartbeat không có hằng số nào để đặt trong wp-config.php, nên không thể điều chỉnh bằng file này. Nếu đưa đoạn mã bên dưới vào wp-config.php, nó sẽ chạy trước khi WordPress tải hàm [add_action], và website dừng lại với lỗi [Call to undefined function add_action()].
‘Heartbeat’ của WordPress là tín hiệu kiểm tra xem server và website có còn kết nối hay không. Heartbeat API dùng 
/wp-admin/admin-ajax.php để thực hiện các lệnh gọi AJAX từ trình duyệt. Trong bảng tin WordPress, file này khiến một yêu cầu POST được gửi đi mỗi 15 giây.
Có thể thiết lập để Heartbeat chỉ hoạt động trên màn hình viết bài của quản trị là [post.php]·[post-new.php].
WP Rocket: nếu đang dùng, hãy chọn một trong [Do not limit]·[Reduce activity]·[Disable] ở tab [Heartbeat] cho màn hình quản trị, trình soạn thảo bài viết và frontend.
Màn hình thiết lập Heartbeat của WP Rocket
Perfmatters đặt các màn hình cho phép Heartbeat trong [Disable Heartbeat] và khoảng cách giữa các yêu cầu trong [Heartbeat Frequency].
Thiết lập Heartbeat của Perfmatters
Nếu không dùng cả hai plugin này, đừng cài thêm plugin chỉ vì Heartbeat. Plugin vẫn để lại giá trị thiết lập trong cơ sở dữ liệu ngay cả sau khi bị xóa, vì vậy hãy đặt đoạn mã bên dưới vào [functions.php] của theme.
/** 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);
Thiết lập tổng hợp
Thiết lập tổng hợp là wp-config.php đã có đủ mọi thiết lập trong bài viết này.
Hai dòng bộ nhớ, giới hạn 3 bản sửa đổi và tự động lưu 300 giây đã nằm lần lượt phía trên chú thích [stop editing].
Heartbeat không có trong thiết lập tổng hợp vì đưa vào wp-config.php sẽ gây lỗi.
Bấm biểu tượng sao chép ở góc trên bên phải màn hình để chỉ sao chép các dòng cần thêm.
Chỉ chạy trong trình duyệt và không thay đổi file thật. Chọn cách kết nối ở trên rồi bấm lần lượt các chip để mở wp-config.php, màn hình sẽ chuyển đến dòng của thiết lập bạn bấm ở bên trái. Thay vì bấm chip, bạn cũng có thể nhấp vào terminal và tự gõ lệnh cùng các phím vi. Server ảo chỉ chứa các file cần cho bài viết này, còn màn hình cPanel·FileZilla là bản vẽ thu gọn của màn hình thật.

🔢 FAQ & nội dung đề xuất

Nếu dòng vừa lưu thiếu dấu nháy hoặc dấu chấm phẩy, PHP không đọc được wp-config.php đến cuối và website không mở được. Hãy khôi phục bản gốc đã lưu trước khi sửa, rồi kiểm tra lại chỉ những dòng đã thay đổi.

Bài viết bảo mật wp-config.php khuyến nghị [600], chỉ cho chủ sở hữu đọc và ghi. Trên server mà PHP chạy bằng tài khoản khác với chủ sở hữu file, PHP không đọc được file khi đặt 600, nên hãy kiểm tra ngay website có còn mở được sau khi đổi.

Khi được bật, WP Rocket chèn một dòng [define( ‘WP_CACHE’, true ); // Added by WP Rocket] lên đầu file, và wp-config.php trên server đã đo thực tế cũng có dòng này ở dòng 2. Phải có dòng này thì WordPress mới tải file cache [advanced-cache.php].

Nếu cùng một hằng số đã được định nghĩa ở phía trên file, PHP giữ nguyên giá trị định nghĩa trước và chỉ để lại cảnh báo [Constant WP_MEMORY_LIMIT already defined] cho dòng bên dưới. Hãy tìm tên hằng số trong toàn bộ file để xem có dòng nào do hosting hoặc plugin thêm vào không.

ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Prove your humanity: 2   +   1   =