エラーの内容
プラグイン → 新規追加 → プラグインのアップロード(または 外観 → テーマ → 新規追加 → テーマのアップロード)から .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_filesizepost_max_sizememory_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_filesize と post_max_size を少なくとも 128M に引き上げるよう依頼してください。ほとんどのホストは1時間以内に対応してくれます。
ステップ3 — 修正を確認する
- ブラウザのキャッシュと有効なキャッシュプラグイン(W3 Total Cache、WP Rocket、LiteSpeed Cache)をクリアします。
- プラグイン → 新規追加 → プラグインのアップロードに戻ります。
- 同じ
.zipファイルを選択して 今すぐインストール をクリックします。 - 今度は通常のインストール進行画面が表示されるはずです。
別の info.php を作成せずに新しい制限値が反映されているか確認したい場合は、ツール → サイトヘルス → 情報 → サーバーに移動してください。WordPressが PHP post max size と PHP 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_sizeはupload_max_filesizeと同じか、それより大きく設定する必要があります — 片方だけ設定するのが最もよくあるミスですphp.iniを編集した後は、必ずPHP-FPMまたはApacheを再起動してください- PHPの設定変更後はすべてのキャッシュをクリアしてください
- アップロード前に実際のzipサイズを確認してください — 150 MBであれば、制限値を少なくとも
200Mに設定してください - 確認後すぐに
info.phpを削除してください

