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

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.

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.php3️⃣ 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.
- 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.
- 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.
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.


/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.


/** 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);🔢 FAQ & nội dung đề xuất
Hiệu suất
Tắt WP-Cron và dùng cron hệ thống
Cách tắt wp-cron.php vốn chạy mỗi khi mở trang và chuyển sang cron của server.
Cài đặt
2 cách bỏ yêu cầu thông tin đăng nhập FTP
Hai cách loại bỏ hộp nhập FTP xuất hiện mỗi khi cập nhật plugin.
Lỗi
critical error: nguyên nhân và cách khắc phục
Quá trình tìm nguyên nhân và khắc phục khi xuất hiện thông báo [There has been a critical error].
ℹ️ 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á.