2026年5月20日
2026年5月20日
NginxサーバーでWordPress500エラーが出る場合の対処法
はじめに
VPSや専用サーバーで Nginx を使っている場合、500エラーの原因と対処法が共有ホスティング(Apache)とは異なります。Nginx には .htaccess が存在せず、設定は nginx.conf や仮想ホストの設定ファイルで行います。
Nginx 環境でよくある500エラーの原因
| 原因 | 確認場所 |
|------|---------|
| PHP-FPMが停止している | systemctl status php-fpm |
| Nginx の設定ファイルに誤りがある | nginx -t でテスト |
| WordPress設定ファイル(site.conf)の誤り | /etc/nginx/sites-available/ |
| ファイルパーミッションが不正 | FTP/SSH で確認 |
| PHP-FPM とNginxのソケット不一致 | socket/portの設定確認 |
ステップ1:Nginxのエラーログを確認する
# Nginxのエラーログ
sudo tail -f /var/log/nginx/error.log
# サイト固有のエラーログ(設定次第)
sudo tail -f /var/log/nginx/example.com_error.log
エラーメッセージの内容で原因の方向性が分かります。
ステップ2:PHP-FPMの状態を確認・再起動する
# PHP-FPMの状態確認
sudo systemctl status php8.1-fpm # バージョンは環境に合わせて
# 再起動
sudo systemctl restart php8.1-fpm
# Nginxも再起動
sudo systemctl restart nginx
ステップ3:Nginxの設定ファイルをテストする
# 設定ファイルの構文チェック
sudo nginx -t
# 問題がなければリロード
sudo nginx -s reload
エラーが表示された場合は、指定されたファイルと行番号を修正します。
WordPress用のNginx設定例
server {
listen 80;
server_name example.com;
root /var/www/html/wordpress;
index index.php;
# WordPressのリライトルール(.htaccessの代わり)
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP-FPMへの接続
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
ステップ4:ファイルのオーナーとパーミッション確認
Nginxは一般的に www-data ユーザーで動作します:
# WordPressのファイルオーナーを確認
ls -la /var/www/html/wordpress/
# www-dataに変更する場合
sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo find /var/www/html/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress/ -type f -exec chmod 644 {} \;
ステップ5:PHP-FPMのソケットファイル確認
# ソケットファイルの存在確認
ls -la /var/run/php/php8.1-fpm.sock
# nginx.confのfastcgi_passの設定と一致しているか確認
grep -r "fastcgi_pass" /etc/nginx/
注意事項
- Nginxの設定ファイルを変更する前は必ずバックアップしてください。
nginx -tでテストせずに変更を反映させると、Nginxが起動しなくなる場合があります。
まとめ
Nginxでの500エラーは、まずエラーログ確認→PHP-FPM再起動→nginx -t での設定テスト→ファイルオーナー確認の順に試してください。
関連記事: