サイトが突然500エラーで真っ白になった時の緊急対応手順を解説。ログ確認から原因特定、復旧まで実践的な解決方法をご紹介します。
サイトが真っ白!こんな緊急事態に遭遇していませんか?
朝一番にメールを確認すると「サイトが見れません」という緊急連絡。慌ててサイトにアクセスすると、画面は真っ白で「Internal Server Error」のメッセージ。お客様からの問い合わせも止まり、ECサイトなら売上に直結する深刻な状況です。
「何から手をつければいいかわからない」「サーバーの知識がなくて不安」という方に向けて、20年以上のWeb制作経験をもつ当社が、緊急時の対応手順を体系的にご説明します。
500エラーが発生する主な原因
実際のトラブル対応で遭遇した500エラーの原因を頻度順にご紹介します:
1. PHPのメモリ不足・実行時間超過(40%)
- 大量のデータ処理や画像アップロード時に発生
- WordPressの重いプラグインが原因の場合も
2. ファイルのアクセス権限エラー(25%)
- FTPでファイルアップロード時の権限設定ミス
- セキュリティ強化後の権限変更の影響
3. プログラムのコードエラー(20%)
- 更新作業中の構文エラー
- データベース接続設定の誤り
4. .htaccessファイルの記述ミス(10%)
- リダイレクト設定の記述エラー
- セキュリティ設定の構文ミス
5. サーバーリソース不足(5%)
- ディスク容量満杯
- データベースの負荷過多
緊急時の復旧手順:まずは3分で現状把握
STEP1:エラーログの確認
最も重要なのはエラーログの確認です。憶測で対応するより、まず原因を特定しましょう。
# サーバーのエラーログ確認(一般的な場所)
tail -f /var/log/apache2/error.log
# または
tail -f /var/log/nginx/error.log
# PHPエラーログの確認
tail -f /var/log/php_errors.log
レンタルサーバーの場合は、コントロールパネルから「エラーログ」を確認できます。
STEP2:直前の変更内容を思い出す
あるクライアントでは、WordPressのテーマ更新直後に500エラーが発生。すぐに前のバージョンに戻すことで5分で復旧できました。
- ファイルのアップロード
- プラグインの有効化
- 設定変更
- データベースの操作
「何も変更していない」と思っても、実は自動更新が動いていることがあります。
STEP3:一時的な回避措置
原因特定に時間がかかりそうな場合は、まずサイトの表示を復旧させることを優先します。
// デバッグモードを有効にして詳細エラーを表示
// wp-config.php または .envファイルに追記
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
原因別の具体的な解決方法
PHPメモリ不足の解決
症状: ログに「Fatal error: Allowed memory size exceeded」
// .htaccessに追記
php_value memory_limit 256M
php_value max_execution_time 300
// またはwp-config.phpに追記
ini_set('memory_limit', '256M');
当社で対応したECサイトでは、商品画像の一括処理でメモリ不足が発生。メモリ上限を128Mから256Mに変更することで解決し、その後は安定して動作しています。
ファイル権限エラーの解決
症状: ログに「Permission denied」
# WordPressの推奨権限設定
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
よくある失敗: 777権限を設定してしまうケース。セキュリティ上危険なので避けましょう。
データベース接続エラーの解決
// 接続テスト用の簡単なスクリプト
<?php
$host = 'localhost';
$dbname = 'your_database';
$user = 'your_username';
$pass = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
echo "データベース接続成功";
} catch(PDOException $e) {
echo "接続エラー: " . $e->getMessage();
}
?>
予防策:500エラーを未然に防ぐ方法
1. 定期的なバックアップ体制
実際のトラブル事例では、バックアップがあったサイトは平均15分で復旧、なかったサイトは数時間から数日かかりました。
- ファイル・データベースの自動バックアップ設定
- 復旧テストの実施(年1回推奨)
- 複数世代でのバックアップ保存
2. 監視体制の構築
# 簡単な死活監視スクリプト例
#!/bin/bash
url="https://your-site.com"
status=$(curl -o /dev/null -s -w "%{http_code}" $url)
if [ $status -ne 200 ]; then
echo "サイトエラー検出: HTTP $status" | mail -s "緊急:サイト障害" [email protected]
fi
3. 段階的なデプロイ
失敗談: 本番環境で直接コード修正をして500エラーを引き起こしたケース。必ず以下の手順を踏みましょう:
- ローカル環境でのテスト
- ステージング環境での動作確認
- 本番環境への適用
- 動作確認とロールバック準備
まとめ:緊急時こそ冷静な対応を
500エラーは確かに深刻な問題ですが、適切な手順で対応すれば必ず解決できます。重要なのは:
- エラーログを確認して原因を特定する
- 憶測でなく事実に基づいて対応する
- バックアップから迅速に復旧する体制を整える
当社では、これまで数百件の緊急対応を行い、平均復旧時間を30分以内に短縮してきました。「自社で対応するのは不安」「専門知識がない」という場合は、迷わずプロにご相談ください。
今すぐできること:
- 現在のエラーログを確認する
- 最新のバックアップがあるか確認する
- 緊急連絡先を整理しておく
もし現在500エラーでお困りの場合は、お気軽にお問い合わせください。神奈川拠点の当社が、迅速かつ確実にサイト復旧をサポートいたします。