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 での設定テスト→ファイルオーナー確認の順に試してください。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ