WordPressプラグイン/テーマアップロード時の「The link you followed has expired」エラーを修正する

beginner📝 WordPress2026-03-24| Apache/Nginx上のWordPress 5.x/6.x、PHP 7.4〜8.3、共有ホスティングまたはVPS(Linux/Windows)

Error Message

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

エラーの内容

プラグイン → 新規追加 → プラグインのアップロード(または 外観 → テーマ → 新規追加 → テーマのアップロード)から .zip ファイルを選んで 今すぐインストール をクリックすると、WordPressが次のメッセージを表示します:

The link you followed has expired. Please try again.

インストールは何も行われません。もう一度試す をクリックしても、アップロードフォームに戻るだけです。

原因

WordPressはアップロードフォームをnonceで保護しています。しかし、本当の問題はWordPressではなくPHPにあります。ファイルサイズがPHPのサイズ制限を超えると、PHPはWordPressにリクエストが届く前に、リクエスト全体を無音で破棄します。フォームデータは届かず、nonceチェックが失敗し、WordPressはセッションリンクが期限切れになったと判断してそのメッセージを表示します。

原因のほとんどは、以下の3つのPHP制限値のいずれかが低すぎることです:

  • upload_max_filesize — アップロードできる単一ファイルの最大サイズ
  • post_max_size — POSTリクエスト全体の最大サイズ(upload_max_filesize より大きく設定する必要があります)
  • memory_limit — PHPのメモリ上限(大きなテーマで同じ症状が発生することがあります)

多くの共有ホストのデフォルト値は 2M または 8M です。AvadaやDiviのような人気テーマは15〜40 MBのzipファイルとして配布されます。バンドルされたアセットを含むプレミアムプラグインは50 MBを超えることも珍しくありません。計算が合わないのです。

ステップ1 — 現在のPHP制限値を確認する

推測するのではなく、サーバーで実際に有効な値を確認しましょう。WordPressのルートに一時ファイルを作成します:

<?php phpinfo(); ?>

info.php として保存し、ブラウザで https://yoursite.com/info.php を開いて、以下を検索します:

  • upload_max_filesize
  • post_max_size
  • memory_limit

**確認が終わったらすぐに info.php を削除してください。**このファイルはURLを知っている誰にでもサーバーの全設定を公開してしまいます。

ステップ2 — 制限値を引き上げる

ホスティング環境に応じて、3つの方法が使えます。まず .htaccess から試してください — サーバーへのアクセスが不要で、すぐに反映されます。うまくいかない場合は次の方法に進んでください。

方法A:.htaccess を編集する(Apache、ほとんどの共有ホスト)

WordPressルートにある .htaccess を開いて、以下を追加します:

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

注意:ホストがPHPをFastCGIまたはCGIとして実行している場合、これらのディレクティブは500エラーを引き起こします。その場合は削除して、方法Bに進んでください。

方法B:wp-config.php を編集する

/* That's all, stop editing! */ コメントのに以下の行を追加します:

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

注意点として、ini_set() はサーバーレベルでロックされた値を上書きすることはできません。保存後に変化がなければ、方法Cに進んでください。

方法C:php.ini を編集する(VPS / 専用サーバー)

phpinfo() の出力の Loaded Configuration File に有効な設定ファイルのパスが表示されます。そのファイルを開いて、以下の値を更新します:

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

ファイルを保存したら、変更を反映するためにPHPを再起動します:

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

# Apache with mod_php
sudo systemctl restart apache2

方法D:ホストサポートに連絡する

WP Engine、Kinsta、FlywheelなどのマネージドWordPressプラットフォームは、PHP設定を仕様上ロックしています。直接変更することはできません。サポートチケットを開いて、upload_max_filesizepost_max_size を少なくとも 128M に引き上げるよう依頼してください。ほとんどのホストは1時間以内に対応してくれます。

ステップ3 — 修正を確認する

  • ブラウザのキャッシュと有効なキャッシュプラグイン(W3 Total Cache、WP Rocket、LiteSpeed Cache)をクリアします。
  • プラグイン → 新規追加 → プラグインのアップロードに戻ります。
  • 同じ .zip ファイルを選択して 今すぐインストール をクリックします。
  • 今度は通常のインストール進行画面が表示されるはずです。

別の info.php を作成せずに新しい制限値が反映されているか確認したい場合は、ツール → サイトヘルス → 情報 → サーバーに移動してください。WordPressが PHP post max sizePHP max upload size の両方をそこに表示しています。

代替手段:FTPまたはWP-CLIでインストールする

PHP設定をまったく変更できない場合は、アップロードフォームを完全にスキップしましょう。2つの回避策で対処できます。

FTPアップロード

  • ローカルマシンでプラグインまたはテーマを解凍します。
  • FTP/SFTPでサーバーに接続します。
  • フォルダを /wp-content/plugins/(プラグイン)または /wp-content/themes/(テーマ)にアップロードします。
  • 通常通りWordPressダッシュボードから有効化します。

WP-CLI(サーバーで利用可能な場合)

# WordPress.orgからプラグインをインストール
wp plugin install woocommerce --activate

# ローカルのzipからインストール
wp plugin install /path/to/plugin.zip --activate

# テーマをインストール
wp theme install /path/to/theme.zip --activate

クイックチェックリスト

  • post_max_sizeupload_max_filesize同じか、それより大きく設定する必要があります — 片方だけ設定するのが最もよくあるミスです
  • php.ini を編集した後は、必ずPHP-FPMまたはApacheを再起動してください
  • PHPの設定変更後はすべてのキャッシュをクリアしてください
  • アップロード前に実際のzipサイズを確認してください — 150 MBであれば、制限値を少なくとも 200M に設定してください
  • 確認後すぐに info.php を削除してください

Related Error Notes