wp-config.php là gì?
wp-config.php là một tập tin quan trọng trong hệ thống của WordPress, đựng đựa những thông tin chủ chốt như tên người dùng và mật khẩu MySQL. Nó chịu trách nhiệm thiết lập cấu hình cầu nối giữa cơ sở dữ liệu và mã nguồn, giúp đảm bảo hoạt động chính xác và mạnh mẽ của trang web WordPress của bạn.
Bài viết này sẽ hướng dẫn bạn cách cấu hình wp-config để tăng tính bảo mật và tối ưu tốc độ WordPress.
wp-config.php nằm ở đâu?
File wp-config.php
nằm ở thư mục gốc của website, bạn có thể dễ dàng nhìn thấy file wp-config.php
như hình dưới đây.
Bạn mở file này lên sẽ thấy các thông số cấu hình để website của bạn hoạt động.
Tinh chỉnh và tối ưu wp-config.php WordPress
wp-config.php không chỉ giữ cấu hình mặc định từ file wp-config-sample.php mà WordPress tạo sẵn, mà còn cung cấp khả năng tùy chỉnh linh hoạt theo nhu cầu và kiến thức cá nhân của bạn. Dưới đây là một số hằng số quan trọng mà bạn có thể tinh chỉnh để cải thiện bảo mật và hiệu suất của trang web WordPress của mình.
Thay đổi địa chỉ website
Đoạn mã này rất hữu ích khi bạn thực hiện việc chuyển đổi tên miền từ A sang B hoặc khi gặp vấn đề với chuyển hướng. Đoạn mã này giúp WordPress hiểu rõ Địa chỉ WordPress (URL) và Địa chỉ trang web (URL), ngăn chặn sự thay đổi URL không mong muốn trong trang quản trị WordPress (WP Dashboard), đảm bảo an toàn cho website của bạn.
// Thay doi url website define(‘WP_HOME’,’https://vinascript.com/’); define(‘WP_SITEURL’,’https://vinascript.com/’);
Tắt tự động lưu nháp
Mặc định, WordPress tự động tạo nhiều bản nháp khi bạn đang soạn thảo nội dung. Tính năng này đem lại nhiều lợi ích, tuy nhiên, nếu số lượng bản nháp tăng quá, có thể làm cho cơ sở dữ liệu của bạn phình to nhanh chóng. Vì vậy, việc hạn chế số lượng bản nháp được tạo ra là một biện pháp tối ưu hóa.
Để điều này, bạn có thể thay đổi một số thiết lập trong tệp cấu hình của WordPress. Đầu tiên, thời gian tự động lưu mỗi bản nháp có thể được tăng lên, giúp giảm tần suất lưu trữ:
define( 'AUTOSAVE_INTERVAL', 120 ); // Tự động lưu mỗi 120 giây
Hạn chế số lượng bản nháp được lưu bằng cách giữ lại một số hạn chế với chỉ 8 bản:
define( 'WP_POST_REVISIONS', 8 ); // Giới hạn số lượng bản nháp lưu lại
Những điều chỉnh nhỏ này có thể giúp bạn duy trì cơ sở dữ liệu WordPress của mình một cách hiệu quả hơn và tránh tình trạng phình to không mong muốn.
Bắt buộc kết nối https vào khu vực quản trị
Tính năng này hữu ích khi bạn muốn bảo mật thông tin đăng nhập, mật khẩu và cookie sẽ được mã hóa giúp website bạn an toàn hơn. Tính năng này sẽ cực kỳ hữu ích cho các website có nhiều thành viên, tác giả hoạt động.# Bat buoc ket noi HTTPS define(‘FORCE_SSL_LOGIN’, true); define(‘FORCE_SSL_ADMIN’, true);
Tắt tính năng chỉnh sửa file / cập nhật theme, plugin
Đoạn code này khi bạn thêm vào sẽ tắt tính năng chỉnh sửa theme hoặc plugin trong khu vực quản trị website WordPress (WP Dashboard)# Tat tinh nang chinh sua theme/plugin define( ‘DISALLOW_FILE_EDIT’, true );
Ngoài ra bạn có thể thêm đoạn code phía dưới đây để vô hiệu hóa việc cập nhật theme hoặc plugin trong phần quản trị website, bạn sẽ không nhìn thấy nút cập nhật theme, hoặc plugin trong phần WP-ADMIN# Vo hieu hoa tinh nang update theme/plugin define( ‘DISALLOW_FILE_MODS’, true );
Tăng bộ nhớ PHP cho WordPress
Lựa chọn này cho phép bạn xác định giới hạn bộ nhớ tối đa mà PHP có thể sử dụng. Điều này là quan trọng vì nếu giới hạn bộ nhớ của WP_MEMORY_LIMIT trong tập tin wp-config.php quá thấp, bạn có thể gặp thông báo lỗi như “Allowed memory size of bytes exhausted”. Giá trị mặc định của WP_MEMORY_LIMIT trong WordPress là 64MB, nhưng bạn có thể điều chỉnh nó lên 128MB hoặc thậm chí 512MB bằng cách sử dụng đoạn mã sau:
# Tăng giới hạn bộ nhớ cho PHP
define( 'WP_MEMORY_LIMIT', '128M' );
Điều này nên được thêm vào tập tin wp-config.php để đảm bảo rằng trang web WordPress của bạn có đủ bộ nhớ để xử lý các tác vụ phức tạp và tránh gặp phải lỗi kiểm soát bộ nhớ.
Tự động sửa lỗi WordPress
Nếu bạn muốn tối ưu cơ sở dữ liệu hoặc sửa lỗi cơ sở dữ liệu có thể thêm đoạn code dưới vào wp-config.phpdefine( ‘WP_ALLOW_REPAIR’, true );
Sau khi thêm vào bạn truy cập web theo đường dẫn để thực hiện sửa lỗi và tối ưu cơ sở dữ liệu WordPress
tenmiencuaban.com/wp-admin/maint/repair.php
Tự động xóa bài viết trong thùng rác
Đoạn code này giúp xóa các bài viết trong thùng rác sau x ngày mà bạn muốn, bạn có thể cân nhắc bật tính năng này# Xoa bai trong thung rac sau 7 ngay define( ‘EMPTY_TRASH_DAYS’, 7 );
Chặn các yêu cầu – API CALL
Đây là 1 tính năng mình nghĩ khá hay, chặn các yêu cầu api bên ngoài sẽ giúp phần quản trị của bạn được nhanh hơn, bởi không phải chờ các yêu cầu từ host của bên thứ 3, tất nhiên nếu bạn sử dụng 1 số plugin bản quyền và họ lưu trữ plugin trên hosting của họ thì bạn nên bật domain lên để có thể cập nhật plugin, theme nếu chúng có bản mới.
Đoạn code này cơ bản như sau// Chặn toàn bộ API CALL define( ‘WP_HTTP_BLOCK_EXTERNAL’, true ); // Cho phép request từ wordpress.org hoặc 1 tên miền nào đó bạn muốn define( ‘WP_ACCESSIBLE_HOSTS’, ‘*.wordpress.org, vutruso.com’ );
Thay đổi Unique Keys và Salts
Nếu các khóa bảo mật WordPress chưa được định cấu hình trong file wp-config.php có dạng như sau:
Unique Keys và Salts có rất nhiều ý nghĩa, có lẽ mình sẽ trình bày trong 1 bài viết chi tiết, tóm lại bạn nên thay đổi Unique Keys và Salts để giúp tăng cường bảo mật cho website của bạn.
Để thay đổi Unique Keys và Salts bạn chỉ cần truy cập vào đường dẫn sau: https://api.wordpress.org/secret-key/1.1/salt/
sau đó copy Unique Keys và Salts do chính WordPress tự động tạo ra và dán thay thế vào đoạn code cũ trong file wp-config.php (mỗi lần reload đều có mã mới và không trùng lặp)define(‘AUTH_KEY’, ‘-R6A1|wIh5.2rotoc~{}(7+Gc.{)v{K/H(SgX&^^<O&m0q*(-eyeDAxwC>~728A&’); define(‘SECURE_AUTH_KEY’, ‘6<F-F+o^$#eZ|+1L|~GmVTr/qkBwzSXX[18Zr1o__$<Z@ynr-{jQw%XadBYQ>W|;’); define(‘LOGGED_IN_KEY’, ‘k,V&)k*Zrhb5,R.i0.`F#d&#*(z)(NpeQI8dE(Sc0POk}wkd@;OO2[+LLJazoW9{‘); define(‘NONCE_KEY’, ‘i)DSG^IFX-1u%YjM9d-y/-wVE%|Q6Yd?2&WrYn|OUBX/aTq8X@!^mu5E+,_Oc6Dn’); define(‘AUTH_SALT’, ‘M&~&qQpe9JCCpzpo{{p){amDzho9#yrg[n|K#Bj-$NZHgF%Jm$gxEu-vPZs6&T-!’); define(‘SECURE_AUTH_SALT’, ‘>t_k.2w7jm4D%?&t2ZY|>3%K9,oOAT(Ev(rC~&;pHNJWJ2z&o|MFvWob~bN??4-N’); define(‘LOGGED_IN_SALT’, ‘p>J4A#-~`dx)eX>ejztK@xqEX8c(&Q|oO]Oc}g|bgTr3r!iWS+PklI(2c)/37vp`’); define(‘NONCE_SALT’, ‘Hs0K<li#R[_@x|A–S#tpt)^atbv{;LIshCeI`l*TNcNH|~;2B<=[KmW8nG%-HWL’);
Sau khi thay đổi secret key bạn sẽ bị out ra phần quản trị, đừng lo lắng cái này bình thường vì WordPress sẽ xóa hết các cookie đăng nhập cũ và buộc bạn phải đăng nhập lại)
Bật debug
Mình đã viết một bài hướng dẫn chi tiết về cách kích hoạt chế độ debug trong WordPress. Bạn có thể đọc bài viết đó tại [đây](link bài viết) hoặc bạn cũng có thể thực hiện bằng cách thêm đoạn mã sau vào tệp wp-config.php của bạn:
// Kích hoạt chế độ debug
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
define('SAVEQUERIES', true);
Những đoạn mã này sẽ giúp hiển thị thông báo debug khi có lỗi xảy ra trong quá trình phát triển trang web của bạn. Đồng thời, nó sẽ ghi lại các thông báo debug vào tệp nhật ký để bạn có thể kiểm tra sau này.
Tự động cập nhật phiên bản WordPress
Để tự động cập nhật các phiên bản chính mới của WordPress, bạn có thể thêm đoạn mã sau vào file wp-config.php:
# Tự động cập nhật WordPress
define('WP_AUTO_UPDATE_CORE', true);
Tuy nhiên, bạn nên cân nhắc kỹ lưỡng trước khi sử dụng tính năng này, vì mỗi lần cập nhật đều mang lại nhiều thay đổi ở phần core của WordPress. Điều này có thể gây ra vấn đề hoặc lỗi không mong muốn. Nếu bạn muốn tắt tự động cập nhật, bạn có thể thay đổi giá trị từ true
thành false
như sau:
# Tắt tự động cập nhật WordPress
define('WP_AUTO_UPDATE_CORE', false);
Lưu ý rằng việc tắt tự động cập nhật sẽ đòi hỏi bạn phải thủ công thực hiện các quá trình cập nhật, vì vậy hãy đảm bảo rằng bạn có kế hoạch và kiểm soát cẩn thận khi quyết định sử dụng hoặc tắt tính năng này.
Chuyển file wp-config.php sang thư mục khác
Để bảo mật hơn cho website, bạn có thể di chuyển file cấu hình WordPress sang thư mục bí mật nào đó tùy bạn bằng cách thêm vào đoạn code sau:<?php if ( !defined(‘ABSPATH’) ) define(‘ABSPATH’, dirname(__FILE__) . ‘/’); require_once(ABSPATH . ‘../thu-muc-tuy-chinh/wp-config.php’);
Nhớ là bạn phải di chuyển file wp-config.php ra khỏi thư mục gốc và thay đổi lại đoạn code trên cho phù hợp.
Bật redis cache
Object cache như redis cache sẽ giúp website của bạn tăng tốc rất nhiều, nếu hosting của bạn hỗ trợ redis cache bạn hãy cài plugin Redis cache và thêm đoạn code sau vào file wp-config.php và sửa lại thông tin là chúng sẽ hoạt động như ý muốn./** Redis Cache**/ define(‘WP_REDIS_SCHEME’, ‘unix’); define(‘WP_REDIS_PATH’, ‘/home/vozbqrlr/redis/redis.sock’); define(‘WP_REDIS_CLIENT’, ‘pecl’); define(‘WP_CACHE_KEY_SALT’, ‘vutruso.vn’);
Tắt WP Cron
Mỗi khi một khách truy cập truy cập vào trang web của bạn, hệ thống Cron sẽ được kích hoạt để thực hiện các nhiệm vụ như đăng bài theo lịch, xóa bộ nhớ cache đã hết hạn, cập nhật số lượng bình luận, và nhiều lợi ích khác. Nếu bạn cho rằng tính năng này là không cần thiết và muốn tắt nó, bạn có thể sử dụng đoạn mã sau:
# Tắt WP-Cron
define( 'DISABLE_WP_CRON', true );
Tuy nhiên, lưu ý rằng việc tắt tính năng này có thể dẫn đến các vấn đề như đăng bài tự động, preload cache tự động, hoặc các hoạt động được lên lịch trước…
Để giải quyết vấn đề này, bạn có thể sử dụng lịch trình Cron job trên hệ điều hành Linux (VPS của bạn) hoặc cài đặt thông qua Cpanel. Trong Cpanel, bạn có thể thêm một công việc Cron mới trong phần “Thêm Công việc Cron Mới”. Bạn có thể chọn các thời gian được đề xuất, như mỗi giờ hoặc mỗi tuần. Lưu ý rằng nhà cung cấp dịch vụ lưu trữ của bạn có thể áp đặt giới hạn về tần suất chạy cron để tránh tác động đến máy chủ của họ.