0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPress「辿ったリンクは期限が切れています。もう一度お試しください。」エラー

Last updated at Posted at 2025-01-15

エラー内容・起こった状況

スクリーンショット 2025-01-15 13.34.30.png

辿ったリンクは期限が切れています。もう一度お試しください。

WordPress管理画面からCocoonテーマをアップロードしたところ発生。

構築環境

  • AWSにてWebサーバー用のEC2(AmazonLinux2023)を作成して構築している
  • WebサーバーにはApacheをインストールしている

結論

1. php.iniupload_max_filesizepost_max_sizeの上限を変更

php.ini
// 変更前
post_max_size = 8M
upload_max_filesize = 2M

// 変更後(サイズは自分のインストールしたいテーマに合わせる)
post_max_size = 20M
upload_max_filesize = 20M

2. 自分が使用しているプロセスマネージャーを再起動して反映させる

Apacheのモジュールであるmod_phpを使用している場合
sudo systemctl restart httpd.service
プロセスマネージャーであるPHP-FPMを使用している場合
sudo systemctl restart php-fpm

「1.」については記事が多く出てくるが、
「2.」についてApache周りの理解が浅くて気づくのに時間がかかったので記事にした

詳しい手順

1. php.iniupload_max_filesizepost_max_sizeの上限を変更

php.iniはetcディレクトリにある
cd /etc/
ls -la | grep "ini"
編集する前にバックアップを取っておくのがおすすめ
cp php.ini php.ini-YYYYMMDDbkup
vimやnano等、好きな方法で値を変更する
sudo vi php.ini

// 以下の2箇所を書き換える
post_max_size = 20M
...
upload_max_filesize = 20M
差分確認
diff php.ini php.ini-YYYYMMDDbkup

2. 自分が使用しているプロセスマネージャーを再起動して反映させる

Apacheのmod_phpモジュールあるいは、プロセスマネージャーのPHP-FPMどちらを使っているか確認して、使っている方に対して再起動をかける

🔴Apacheのmod_phpモジュールを使っているか確認するコマンド
// mod_phpなどが表示されるか確認(何も出なければ使われていない)
httpd -M | grep php
🔵プロセスマネージャーのPHP-FPMを使っているか確認するコマンド
// activeの場合、使われている
systemctl status php-fpm
🔴再起動(Apacheのmod_phpモジュールの場合)
sudo systemctl restart httpd.service
🔵再起動(PHP-FPMの場合)
sudo systemctl restart php-fpm

これで再度テーマをアップロードしたところ、成功した🎉

PHP-FPMとは

Apacheとの役割の違いは?

  • ApacheはWebサーバーで、ユーザーからのリクエストを受け取って、HTMLや画像などのファイルを返す役割
  • PHP-FPMはプロセスを管理する役割(PHPプログラムに特化)
    • 起動:プログラムを実行する際に、必要なリソースを割り当ててプロセスを開始
    • 監視:プロセスが正常に動作しているかを監視して、もし問題があれば、再起動したり、エラーメッセージを表示
    • 終了:プログラムが終了したり、必要がなくなった場合に、プロセスを適切に終了
    • リソース管理:CPUやメモリなどのリソースをどのプロセスにどれだけ割り当てるかを管理

Apacheとの関係性は?

  • Apacheは、PHP-FPMを「内包」しているのではなく、「連携」している
    • Apacheがリクエストを受け取ると、そのリクエストをPHP-FPMに渡して、PHPスクリプトを実行させ、その結果をApacheがクライアントに返している
  • mod_phpよりも PHP-FPMの方が特化した機能を持っており優れている
    • nginxの場合は、PHP-FPMしかない
    • Apacheの場合、モジュールか、PHP-FPMかを選べる

まとめ

  • 上限の設定を変更操作した後に、再起動する対象は何かを理解する必要があった
    • 具体的にはApacheのモジュールmod_phpではなく、PHP-FPMというプロセス管理(PHP専用)に特化したプロセスマネージャーを導入していたので、そちらに対して再起動をかけて上限値を反映させる必要があった

同じように詰まった人の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?