久々にヒヤッとした出来事でした。
今日のお昼、当サイトにアクセスすると500内部エラー。真っ青になったのはいうまでもありません。
ちなみに500エラーというのはサーバーの内部でのエラーで、ページにアクセスできなくなってしまう現象です。
色々な原因が考えられるため、一つずつ検証する必要があります。
アクセスできるページがある
落ち着いて他ページにもアクセスしてみると、Wordpressページや管理画面はアクセスできました。
共有サーバーなので同じ使用者かとも思ったけどこのページにアクセスできるということはその原因ではなありません。もちろんアクセス過多でもなし。
トップページやその他htmlファイルのみアクセスできないようです。
phpファイル、imageファイルはOK。同じサーバー内で管理している別サイトも問題なし。
ますます不思議でググってもこれといった情報は出てきません。週末の金曜日で立て込んでいるといういうのに…
WPアップデート、プラグイン最新へ
FTPでアクセスすると本日深夜2:50頃にサイトマップの書き換えがありました。
プラグインのXML Sitemap Generator for WordPressを使用しているため、プラグインのアップデート&WP最新の3.9へバージョンアップ(怖いので一度ローカルで同じ環境作って検証済み)してサイトマップを最新にしてみました。状況変わらず。
サーバーのアクセスログを見てエラー文を見てみると、何やらcgiのエラーっぽい旨が書かれていました。
「remature end of script headers: php.cgi」
php.cgi。当サイトはhtmlとWordpressが混在しているので、さくらが提供するphp.cgiを使用しています。
さくらサーバーはhtmlファイルでphpを実行するには別途設定が必要なのです。
FTPで日付を見ても以前にアップデートしたっきりで特に更新された様子はないので特に気にしていませんでした。
が、実はこれが原因でした!
さくらのアップデートが実施されたの時刻と非常に近かった
そういえば何日か前にさくらサーバーからメールが来ていました。
サーバーをアップデートし、ディスク容量が増えたりするとの内容。
ふとそのことを思い出し、php.cgiが保存されている場所を確認しにいくと、なんとphpのバージョンで保存されているはずのディレクトリ名が変わっている!
そこでMacのターミナルからSSH接続し、php.cgiを上書き。
見事解決しました。
500エラーはなくなり、ページは無事表示。
その後タイミングを図るようにさくらインターネットからのメール。
「午前02時59分 作業が完了いたしました」
ってことはsitemap.xmlが書き換えられていたのとほぼ同じタイミング…怪しい。。。きっとこの「各種バージョンアップ」に含まれていたのでしょう。
ここからは予測ですが、アップデートによりさくらインターネット内でサーバーアップデートを行った際にphp.cgiを格納しているディレクトリ名を変更。
それによりphp処理が変わり、従来のphp.cgiでは対応できなくなった…と考えていますがいかがでしょうか?
しかし金曜日の週末に作業するのはやめて欲しいですね。。。
身近でさくらサーバー色々と問題起きているので、ちょっと引っ越しも検討しますか…
SSHで解決する方法
・WordpressとHTMLファイルを分けて混在させている
・htmlファイルの中でphpを動かしている
・SSHで接続できる
全く同じ状況でお困りの場合、以下で解決できると思います。
1.ターミナルを起動
2.$ ssh アカウント名@アカウント名.sakura.ne.jp
3.エンターキー押す
4.(yes/no)と聞かれたら「yes」とうってエンターキー
5.パスワードを聞かれるので
FTPパスワードを入力
6.エンターキー押す
7.Welcome to FreeBSD!と表示されれば接続OK
8.以下を打つ
cp /usr/local/php/5.2/bin/php-cgi-mysql5.5 /home/アカウント名/www(/運用したいディレクトリ)/php.cgi
※phpのバージョンは各自の環境に合わせます
9.エンターキー押す
(ターミナルには特になにも表示されない)
コメントを残す