Mục lục
wp-config.php là gì?
wp-config.php
là file quan trọng của WordPress, wp-config.php
chứa thông tin quan trọng như tên người dùng và mật khẩu MySQL, nó cho phép bạn thiết đặt cấu hình làm cầu nối giữa database và code giúp website WordPress của bạn hoạt động chính xác nhất.
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
File wp-config.php ngoài cấu hình mặc định như file wp-config-sample.php
do WordPress tạo sẵn thì bạn có thể cấu hình hoặc tinh chỉnh tùy theo như cầu và tầm hiểu biết của mình. Dưới đây là 1 số hằng số rất cần thiết để bạn nâng cao bảo mật và tối ưu WordPress
Thay đổi địa chỉ website
Đoạn code này cực kỳ hữu ích nếu như bạn chuyển tên miền A sang B, hoặc gặp các sự cố về chuyển hướng, đoạn code này giúp WordPress hiểu website Địa chỉ WordPress (URL) và Địa chỉ trang web (URL) chính xác và ngăn sự thay đổi url trong phần quản trị website (WP Dashboard) giúp website của bạn an toàn hơn.
// Thay doi url website define('WP_HOME','https://vutruso.vn/'); define('WP_SITEURL','https://vutruso.vn/');
Tắt tự động lưu nháp
Theo mặc định, WordPress sẽ tạo nhiều bảng lưu nháp tự động khi bạn soạn thảo. Tính năng này rất hữu ích nhưng nếu lưu quá nhiều bản nháp sẽ làm cho database của bạn phình to ra nhanh chóng vì vậy bạn nên giới hạn các bản nháp được tạo để tối ưu hơn.
# Tang thoi gian tu dong luu moi 120 giay define( 'AUTOSAVE_INTERVAL', 120 ); # Gioi han save revisions, chi de 8 bang define( 'WP_POST_REVISIONS', 8 );
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
Tùy chọn này cho phép bạn chỉ định bộ nhớ tối đa mà PHP có thể sử dụng. Cài đặt này rất quan trọng mà bạn nên thêm vào file wp-config.php, nếu WP_MEMORY_LIMIT quá thấp có thể bạn sẽ gặp phải thông báo như: “Allowed memory size of bytes exhausted”. WP_MEMORY_LIMIT mặc định của WordPress là 64MB bạn có thể tùy chỉnh tăng lên 128MB hoặc 512MB bằng đoạn code sau:
# Tang bo nho gioi han cho PHP define( 'WP_MEMORY_LIMIT', '128M' );
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.php
define( '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 có viết 1 bài khá chi tiết cách để bật debug trong WordPress, bạn có thể xem qua bài viết đó tại đây hoặc bạn có thể thêm đoạn code sau vào wp-config.php là có thể bật debug lên.
# Enable debug define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true); define( 'WP_DEBUG_DISPLAY', true); define( 'SAVEQUERIES', true);
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 WordPres, bạn có thể thêm đoạn này vào wp-config.php
# Tu dong cap nhat WordPress define('WP_AUTO_UPDATE_CORE', true);
Bạn nên lưu ý tính năng này, vì mỗi lần cập nhật có khá nhiều thay đổi ở wp core, cho nên hãy cân nhắc để kiểm soát được lỗi và các vấn đề phát sinh khi tự động nâng cấp WordPress.
Bạn có thể tắt tự động update bằng cách thay đổi true
thành false
là xong
# Tat tu dong update WordPress define( 'WP_AUTO_UPDATE_CORE', false );
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 khách truy cập vào trang web của bạn, Cron sẽ được chạy. Cron sẽ kích hoạt tác vụ như bài đăng đã lên lịch, xóa bộ nhớ cache đã hết hạn, cập nhật danh sách số lượng bình luận và nhiều lợi ích khác. Nếu bạn thấy tính năng này không cần thiết và muốn vô hiệu hóa thì có thể sử dụng đoạn code dưới đây:
# tắt WP-Cron define( 'DISABLE_WP_CRON', true );
Tuy nhiên nếu tắt tính năng này đi thì bạn sẽ gặp phải các vấn đề như lên lịch tự động đăng bài, tự động preload cache hoặc các hoạt động được lên lịch trước …
Vì vậy bạn có thể chạy lịch trình bằng tạo Cron job ở linux’s (VPS của bạn) hoặc cài đặt ở Cpanel (Đăng nhập vào cPanel. Trong phần Nâng cao, nhấp vào Cron Jobs)
Trong phần Thêm Công việc Cron Mới, bạn có thể chọn các thời gian được gợi ý đề xuất, chẳng hạn như hai lần một giờ hoặc một lần mỗi tuần. Và nhà cung cấp dịch vụ lưu trữ của bạn rất có thể có giới hạn về tần suất chạy cron này vì sẽ có ảnh hưởng đến máy chủ của nhà cung cấp.