Sửa lỗi 'The link you followed has expired' khi tải Plugin/Theme lên WordPress

beginner📝 WordPress2026-03-24| WordPress 5.x/6.x trên Apache/Nginx, PHP 7.4–8.3, shared hosting hoặc VPS (Linux/Windows)

Error Message

The link you followed has expired. Please try again.
#wordpress#plugin#theme#upload#post_max_size#php-ini

Lỗi Gặp Phải

Bạn vào Plugins → Add New → Upload Plugin (hoặc Appearance → Themes → Add New → Upload Theme), chọn file .zip, nhấn Install Now — và WordPress hiện ra thông báo này:

The link you followed has expired. Please try again.

Không có gì được cài. Nhấn Please try again chỉ đưa bạn quay lại form upload.

Nguyên Nhân

WordPress bảo vệ form upload bằng nonce. Tuy nhiên, vấn đề thực sự nằm ở PHP — không phải WordPress. Khi file vượt quá giới hạn kích thước của PHP, PHP âm thầm hủy toàn bộ request trước khi WordPress kịp nhận. Dữ liệu form không bao giờ đến nơi. Kiểm tra nonce thất bại. WordPress cho rằng link phiên đã hết hạn và hiển thị thông báo đó.

Nguyên nhân hầu như luôn là một trong ba giới hạn PHP này đang được đặt quá thấp:

  • upload_max_filesize — kích thước tối đa của một file upload đơn lẻ
  • post_max_size — kích thước tối đa của toàn bộ POST request (phải lớn hơn upload_max_filesize)
  • memory_limit — giới hạn bộ nhớ PHP (có thể gây ra triệu chứng tương tự với các theme lớn)

Nhiều hosting shared mặc định chỉ có 2M hoặc 8M. Các theme phổ biến như Avada hay Divi có file zip nặng 15–40 MB. Plugin premium kèm theo assets thường lên đến 50 MB. Như vậy là không đủ.

Bước 1 — Kiểm Tra Giới Hạn PHP Hiện Tại

Đừng đoán mò — hãy xác nhận các giá trị thực sự đang hoạt động trên server. Tạo một file tạm thời trong thư mục gốc WordPress:

<?php phpinfo(); ?>

Lưu với tên info.php, mở https://yoursite.com/info.php trên trình duyệt, rồi tìm kiếm:

  • upload_max_filesize
  • post_max_size
  • memory_limit

Xóa info.php ngay khi kiểm tra xong. File này để lộ toàn bộ cấu hình server cho bất kỳ ai có URL.

Bước 2 — Tăng Giới Hạn

Có ba phương pháp tùy theo cấu hình hosting của bạn. Bắt đầu với .htaccess — không cần truy cập server và có hiệu lực ngay lập tức. Nếu không được, chuyển sang phương pháp tiếp theo.

Phương pháp A: Chỉnh sửa .htaccess (Apache, hầu hết shared host)

Mở .htaccess trong thư mục gốc WordPress và thêm vào:

php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300

Lưu ý: nếu host của bạn chạy PHP dưới dạng FastCGI hoặc CGI, các chỉ thị này sẽ gây lỗi 500. Hãy xóa chúng và chuyển sang Phương pháp B.

Phương pháp B: Chỉnh sửa wp-config.php

Thêm các dòng này trước comment /* That's all, stop editing! */:

@ini_set('upload_max_filesize', '128M');
@ini_set('post_max_size', '128M');
@ini_set('memory_limit', '256M');

Lưu ý: ini_set() không thể ghi đè các giá trị đã bị khóa ở cấp server. Nếu không có gì thay đổi sau khi lưu, hãy chuyển sang Phương pháp C.

Phương pháp C: Chỉnh sửa php.ini (VPS / server riêng)

Kết quả phpinfo() liệt kê đường dẫn file cấu hình đang hoạt động tại mục Loaded Configuration File. Mở file đó và cập nhật các giá trị sau:

upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300

Lưu file, sau đó khởi động lại PHP để áp dụng thay đổi:

# PHP-FPM
sudo systemctl restart php8.2-fpm

# Apache with mod_php
sudo systemctl restart apache2

Phương pháp D: Liên Hệ Nhà Cung Cấp Hosting

Các nền tảng WordPress được quản lý — WP Engine, Kinsta, Flywheel — khóa cài đặt PHP theo thiết kế. Bạn không thể tự chỉnh sửa trực tiếp. Hãy mở ticket hỗ trợ và yêu cầu họ tăng upload_max_filesizepost_max_size lên ít nhất 128M. Hầu hết các nhà cung cấp xử lý trong vòng chưa đầy một giờ.

Bước 3 — Xác Nhận Đã Sửa Xong

  • Xóa cache trình duyệt và các plugin cache đang hoạt động (W3 Total Cache, WP Rocket, LiteSpeed Cache).
  • Quay lại Plugins → Add New → Upload Plugin.
  • Chọn lại file .zip và nhấn Install Now.
  • Lần này bạn sẽ thấy màn hình tiến trình cài đặt bình thường.

Muốn xác nhận giới hạn mới đã có hiệu lực mà không cần tạo lại info.php? Vào Tools → Site Health → Info → Server. WordPress liệt kê cả PHP post max sizePHP max upload size ngay tại đó.

Cách Thay Thế: Cài Qua FTP Hoặc WP-CLI

Không thể thay đổi cài đặt PHP? Bỏ qua form upload hoàn toàn. Hai cách sau đây đều giải quyết được vấn đề.

Upload qua FTP

  • Giải nén plugin hoặc theme trên máy tính của bạn.
  • Kết nối qua FTP/SFTP đến server.
  • Upload thư mục vào /wp-content/plugins/ (plugin) hoặc /wp-content/themes/ (theme).
  • Kích hoạt từ WordPress dashboard như bình thường.

WP-CLI (nếu có trên server của bạn)

# Install a plugin from WordPress.org
wp plugin install woocommerce --activate

# Install from a local zip
wp plugin install /path/to/plugin.zip --activate

# Install a theme
wp theme install /path/to/theme.zip --activate

Danh Sách Kiểm Tra Nhanh

  • post_max_size phải bằng hoặc lớn hơn upload_max_filesize — chỉ đặt một trong hai là lỗi phổ biến nhất
  • Sau khi chỉnh sửa php.ini, luôn khởi động lại PHP-FPM hoặc Apache
  • Xóa toàn bộ cache sau mọi thay đổi cấu hình PHP
  • Kiểm tra kích thước file zip thực tế trước khi upload — nếu nặng 150 MB, hãy đặt giới hạn ít nhất 200M
  • Xóa info.php ngay sau khi kiểm tra xong

Related Error Notes