• Webmaster Tools
  • Diễn Đàn Hỏi Đáp
  • Profile
  • Ủng hộ
  • DNS Check
  • CheckIP
  • Liên Hệ
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • KHUYẾN MÃI
  • WEB MẪUHOT

Cấu hình wp-config.php để bảo mật và tăng tốc WordPress

by ĐỖ TRUNG QUÂN 07/05/2025
Tác giả: ĐỖ TRUNG QUÂN 07/05/2025 0 comments 61 lượt xem
Dịch vụ xử lý mã độc WordPress
WEB MẪU WORDPRESS
Share FacebookTwitterPinterestTelegramEmail
61

NỘI DUNG

    • 1. Đổi vị trí tệp wp-config.php
    • 2. Giới hạn số lượng bản sửa đổi bài viết
    • 3. Điều chỉnh thời gian tự động lưu
    • 4. Quản lý bản sao khi chỉnh sửa ảnh
    • 5. Bắt buộc sử dụng SSL cho khu vực quản trị
    • 6. Vô hiệu hóa chỉnh sửa tệp và cài đặt plugin/theme
  • 7. Tăng giới hạn bộ nhớ PHP
    • 8. Cấu hình tên miền cookie
    • 9. Tắt hoặc giới hạn WordPress Cron
    • 10. Thiết lập quyền truy cập tệp
    • 11. Chặn yêu cầu HTTP bên ngoài
    • 12. Di chuyển thư mục wp-content
    • 13. Di chuyển thư mục plugin
    • 14. Di chuyển thư mục theme
    • 15. Di chuyển thư mục uploads
  • Lưu ý quan trọng
  • Kết luận

Tệp wp-config.php như là “trái tim” của trang web WordPress, chứa các thông tin quan trọng như thông tin kết nối cơ sở dữ liệu (database). Việc tinh chỉnh tệp này không chỉ giúp tăng cường bảo mật mà còn cải thiện hiệu suất hoạt động của trang web. Dưới đây là các phương pháp cấu hình wp-config.php để đạt được hai mục tiêu này.

Lưu ý: Các đoạn mã tùy chỉnh (custom code) trong tệp wp-config.php nên được thêm đúng vị trí trong tệp để không bị lỗi.

/* Add any custom values between this line and the "stop editing" line. */

Code thêm trong phạm vi nà

/* That's all, stop editing! Happy publishing. */
CleanShot 2025 05 07 at 22.32.01

1. Đổi vị trí tệp wp-config.php

Theo mặc định, tệp wp-config.php nằm trong thư mục gốc của WordPress, dễ bị truy cập nếu bảo mật không tốt. Bạn có thể di chuyển tệp này ra ngoài thư mục gốc để chỉ có thể truy cập thông qua SSH hoặc FTP, tăng cường bảo mật. Thêm đoạn mã sau vào tệp index.php hoặc tệp cấu hình khác:

define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . '../duong-dan-den/wp-config.php');

2. Giới hạn số lượng bản sửa đổi bài viết

WordPress tự động lưu các phiên bản sửa đổi (post revisions) mỗi khi bạn chỉnh sửa bài viết, gây phình to cơ sở dữ liệu và làm chậm trang web. Để kiểm soát, bạn có thể giới hạn số bản sửa đổi hoặc tắt hoàn toàn tính năng này:

define('WP_POST_REVISIONS', 3); // Giới hạn 3 bản sửa đổi
define('WP_POST_REVISIONS', false); // Tắt hoàn toàn

3. Điều chỉnh thời gian tự động lưu

WordPress tự động lưu bài viết khi bạn chỉnh sửa, mặc định là mỗi 60 giây. Bạn có thể tăng hoặc giảm khoảng thời gian này để phù hợp với nhu cầu, giúp giảm tải máy chủ hoặc đảm bảo không mất dữ liệu:

define('AUTOSAVE_INTERVAL', 120); // Tự động lưu sau 120 giây

4. Quản lý bản sao khi chỉnh sửa ảnh

Khi sử dụng trình chỉnh sửa ảnh trong WordPress, các phiên bản ảnh chỉnh sửa sẽ được lưu lại, cộng với các kích thước ảnh mặc định (thumbnail, medium, large) và các kích thước tùy chỉnh từ theme. Điều này làm tăng số lượng tệp trên máy chủ. Để chỉ giữ phiên bản chỉnh sửa mới nhất, thêm mã sau:

define('IMAGE_EDIT_OVERWRITE', true);

5. Bắt buộc sử dụng SSL cho khu vực quản trị

Để bảo vệ thông tin đăng nhập và khu vực quản trị (admin), bạn có thể yêu cầu kết nối SSL (HTTPS). Điều này đặc biệt hữu ích khi người dùng đăng nhập qua mạng Wi-Fi công cộng:

define('FORCE_SSL_ADMIN', true);

6. Vô hiệu hóa chỉnh sửa tệp và cài đặt plugin/theme

Bạn có thể chặn người dùng chỉnh sửa trực tiếp mã nguồn hoặc cài đặt/cập nhật plugin, theme từ giao diện quản trị, giúp giảm nguy cơ bị tấn công:

define('DISALLOW_FILE_EDIT', true); // Chặn chỉnh sửa tệp
define('DISALLOW_FILE_MODS', true); // Chặn cài đặt/cập nhật plugin, theme

7. Tăng giới hạn bộ nhớ PHP

Một số tác vụ trong WordPress, đặc biệt là trong khu vực quản trị, yêu cầu nhiều bộ nhớ hơn. Nếu gặp lỗi “memory limit exhausted”, bạn có thể tăng giới hạn bộ nhớ PHP:

define('WP_MEMORY_LIMIT', '128M'); // Bộ nhớ cho hoạt động thông thường
define('WP_MAX_MEMORY_LIMIT', '256M'); // Bộ nhớ tối đa cho quản trị

8. Cấu hình tên miền cookie

Khi sử dụng CDN (như Cloudflare, MaxCDN) để phân phối nội dung tĩnh, bạn nên đặt tên miền cookie để tránh gửi cookie không cần thiết, giúp tăng tốc độ tải trang:

define('COOKIE_DOMAIN', 'ten-mien-chinh.com');

9. Tắt hoặc giới hạn WordPress Cron

WordPress Cron chạy mỗi khi có người truy cập trang, kiểm tra và thực hiện các tác vụ như đăng bài theo lịch, xóa bộ nhớ cache, hoặc cập nhật dữ liệu. Trên các trang có lưu lượng truy cập cao, điều này có thể làm tăng tải máy chủ. Bạn có thể tắt hoặc giới hạn tần suất chạy Cron:

define('DISABLE_WP_CRON', true); // Tắt Cron
define('WP_CRON_LOCK_TIMEOUT', 120); // Giới hạn thời gian khóa Cron (120 giây)

Nếu tắt Cron, bạn cần thiết lập Cron thủ công qua hệ thống (ví dụ: sử dụng crontab trên Linux).

10. Thiết lập quyền truy cập tệp

Trên một số máy chủ có cấu hình nghiêm ngặt, bạn có thể cần ghi đè quyền truy cập tệp và thư mục để WordPress hoạt động đúng:

define('FS_CHMOD_FILE', 0644); // Quyền cho tệp
define('FS_CHMOD_DIR', 0755); // Quyền cho thư mục

11. Chặn yêu cầu HTTP bên ngoài

Để ngăn WordPress gửi yêu cầu đến các dịch vụ bên ngoài (như cập nhật, nguồn cấp dữ liệu), bạn có thể chặn hoàn toàn hoặc chỉ cho phép một số miền nhất định:

define('WP_HTTP_BLOCK_EXTERNAL', true); // Chặn tất cả yêu cầu bên ngoài
define('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // Cho phép miền cụ thể

12. Di chuyển thư mục wp-content

Thư mục wp-content chứa các thành phần quan trọng của WordPress như theme, plugin và tệp tải lên (uploads). Bạn có thể di chuyển thư mục này ra ngoài thư mục cài đặt WordPress để tăng cường bảo mật hoặc tổ chức cấu trúc tệp tốt hơn. Để thực hiện, bạn cần xác định đường dẫn và URL mới cho thư mục này trong wp-config.php:

  • Xác định đường dẫn vật lý cho thư mục wp-content (không có dấu gạch chéo cuối):
define('WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content');

  • Xác định URL công khai cho thư mục wp-content (không có dấu gạch chéo cuối):
define('WP_CONTENT_URL', 'https://ten-mien.com/blog/wp-content');

Việc di chuyển này giúp tách biệt nội dung người dùng khỏi mã nguồn WordPress, giảm nguy cơ bị tấn công vào các tệp quan trọng.

13. Di chuyển thư mục plugin

Tương tự như wp-content, bạn có thể di chuyển thư mục plugins (nằm trong wp-content) đến một vị trí tùy chỉnh. Điều này hữu ích khi bạn muốn quản lý plugin riêng biệt hoặc tăng cường bảo mật. Cấu hình như sau:

  • Xác định đường dẫn vật lý cho thư mục plugin (không có dấu gạch chéo cuối):
define('WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins');

  • Xác định URL công khai cho thư mục plugin (không có dấu gạch chéo cuối):
define('WP_PLUGIN_URL', 'https://ten-mien.com/blog/wp-content/plugins');

  • Trường hợp cần tương thích với plugin cũ: Nếu một số plugin gặp vấn đề tương thích do thay đổi đường dẫn, bạn có thể sử dụng hằng số PLUGINDIR để chỉ định lại đường dẫn:
define('PLUGINDIR', dirname(__FILE__) . '/blog/wp-content/plugins');

14. Di chuyển thư mục theme

Không giống như wp-content hay plugins, thư mục themes không thể di chuyển trực tiếp vì đường dẫn của nó được WordPress mã hóa cứng tương đối với thư mục wp-content:

$theme_root = WP_CONTENT_DIR . '/themes';

Tuy nhiên, bạn có thể đăng ký thêm thư mục theme tùy chỉnh bằng hàm register_theme_directory() trong mã nguồn của theme hoặc plugin. Để hiểu rõ hơn cách WordPress xác định thư mục theme, bạn có thể tham khảo tệp wp-includes/theme.php.

Nếu bạn cần di chuyển toàn bộ wp-content (bao gồm themes), hãy tham khảo lại mục 12 về di chuyển thư mục wp-content.

15. Di chuyển thư mục uploads

Thư mục uploads (nơi lưu trữ các tệp media như hình ảnh, video) cũng có thể được đặt ở vị trí tùy chỉnh. Đường dẫn của thư mục này luôn được tính tương đối với hằng số ABSPATH, do đó không cần dấu gạch chéo đầu tiên. Cấu hình như sau:

define('UPLOADS', 'blog/wp-content/uploads');

Ví dụ, nếu bạn muốn thư mục uploads nằm tại /blog/wp-content/uploads so với thư mục gốc của WordPress, đoạn mã trên sẽ hoạt động. Lưu ý rằng đường dẫn này không được phép là đường dẫn tuyệt đối (absolute path).

Lưu ý quan trọng

  • Sao lưu trước khi thay đổi: Di chuyển các thư mục như wp-content, plugins, hay uploads có thể làm gián đoạn hoạt động của trang web nếu cấu hình sai. Hãy sao lưu toàn bộ trang web và cơ sở dữ liệu trước khi thực hiện.
  • Kiểm tra quyền truy cập: Sau khi di chuyển, đảm bảo các thư mục mới có quyền truy cập phù hợp (thường là 755 cho thư mục và 644 cho tệp) để WordPress có thể đọc/ghi dữ liệu.
  • Cập nhật liên kết: Khi thay đổi URL của wp-content, plugins, hay uploads, hãy kiểm tra các liên kết trong bài viết hoặc theme để đảm bảo không bị lỗi “404 Not Found”.
  • Tương thích với plugin/theme: Một số plugin hoặc theme có thể không hoạt động đúng nếu thư mục được di chuyển. Hãy kiểm tra kỹ hoặc liên hệ nhà phát triển để được hỗ trợ.
  • Sử dụng đúng đường dẫn: Đảm bảo các đường dẫn và URL trong wp-config.php khớp với cấu trúc thư mục thực tế trên máy chủ và tên miền của bạn

Kết luận

Việc tinh chỉnh tệp wp-config.php là một cách hiệu quả để tăng cường bảo mật và tối ưu tốc độ cho WordPress. Hãy kiểm tra kỹ trước khi áp dụng các thay đổi và sao lưu tệp để tránh rủi ro. Ngoài ra, bạn có thể tham khảo thêm các bài viết về tối ưu cơ sở dữ liệu hoặc sử dụng plugin tăng tốc để cải thiện hiệu suất tổng thể.

5/5 - (1 bình chọn)
wp-config.php

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
ĐỖ TRUNG QUÂN

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn. Hiện tại mình là admin của Blog DOTRUNGQUAN.INFO - CaiSSL.COM - QuantriVPS.COM. Mới đây mình có tạo ra nhóm Hỗ trợ Server - Hosting & WordPress | Hỗ Trợ Xử Lý Mã Độc WordPress với mục đích gây dựng một cộng đồng nhỏ để mọi người trao đổi kinh nghiệm, kiến thức quản trị VPS. Các thủ thuật, mẹo vặt khi sử dụng VPS. Rất mong nhận được sự ủng hộ của các bạn.

Author Box
Author Image

ĐỖ TRUNG QUÂN

Chuyên viên quản trị hệ thống.

Tư vấn & triển khai dịch vụ

VPS | Hosting | SSL | Mailserver | Website | Sửa lỗi WordPress

Bài viết của tác giả

Hosting/VPS khuyên dùng

Phổ Biến

  • Hướng dẫn tạo SSH Key trên MAC OS

  • Hướng dẫn sử dụng SSH Key

  • Hướng dẫn cài đặt v2board trên AAPANEL

  • Vấn đề IP Public liên tục bị thay đổi vì sao và cách khắc phục

  • Khắc phục lỗi không hiện hình ảnh và mô tả khi share link lên Facebook

  • Hướng dẫn kích hoạt Theme Flatsome mới nhất.

BẠN BÈ & ĐỐI TÁC

Thạch Phạm | CỔ Ý CONCEPT | Trương Quốc Cường | Đàm Trung Kiên | Web An Tâm | Phong Đinh | Học Mò | PHUNG.VN | Đăng Đạt

Bạn được quyền sao chép lại nội dung trên website Đỗ Trung Quân, miễn là có dẫn nguồn.

Hosting/VPS được tài trợ bởi AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay

AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay


Back To Top
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • KHUYẾN MÃI
  • WEB MẪUHOT