Internal Server Error 500 の回復、こう設定すれば解決

500エラー 情報セキュリティ
500エラー

きょうは「500エラー」について学びます。

”アクセスしょうとしたページは表示できませんでした。”という文字が出るエラーです。

CGI や PHP など内部参照におけるエラーのため目的のページが表示できなかったことを意味します。

わからない、突然のことで呆然とするばかりです。いったん、ギターの弦のように張り詰めた神経は中々緩みそうにありません。なぜこんなことになったのか、不思議ですね。どうしてでしょうか。

きょうはあなたと、その解決方法について学習します。

1.phpMyAdminにログインしてテーブルの修復

WordPress一覧・設定
WordPress一覧・設定
taka
taka

さて困りました。

1.突然、ダッシュボードに入れなくなった

直前に Cocoon の「高速化」から以下の ☑ を入れたらこうなりました(ちなみに私のテーマは「Cocoon」です)。トラブルの直前に何かしていた場合や、レンタルサーバの設定値を変更した場合は元に戻せば復旧できます。

設定を一つひとつ行って、その都度Web サイトが正常に閲覧できるかを確認することで解決することもあるのでそれをやってみます。Xserver会社に電話やメールで問い合わせ窓口があるのでそれも考えてみましたが、自力で修復を試してみることにしました。

使っているブラウザや機器に原因がある場合もあります。問題が起きているブラウザとは別のものを使ったり、回線に問題がありそうな場合はWi-Fi を切ったスマホで確認したりもします。こうした事態を避けるために、作業前にバックアップをとっておくことも必要です。

バックアップもなく、原因となる操作の心当たりがない場合、試行錯誤してサイトを元に戻すか、WordPress などをインストールしなおすか決断を要します。いずれの場合も、たとえサイトが見えていなかったとしても作業前にバックアップしておかなかったことを後悔するしかありません。

WordPress にログインできない場合はプラグインなどを使ってバックアップできませんが、FTP でアクセスしてファイルをダウンロードしたり、phpMyAdmin へログインしてデータベースのバックアップ(エクスポート)を行ったりはできます。

  1. バックアップ取っときや: まずは何があっても大丈夫なように、データベースのバックアップを取っとくんが大事やで。これで万が一失敗しても、元に戻せるから安心や。
  2. 適切なテーブル選ぶこと: 修復したいテーブルを間違えんようにな。特に複数のテーブルがある場合、対象のテーブルをしっかり確認しときや。
  3. テーブルのロック: 修復中に他の人がそのテーブルにアクセスせんように、テーブルをロックすることを考えた方がええで。これでデータの一貫性が保たれるんや。
  4. phpMyAdminのバージョン確認: 使用してるphpMyAdminのバージョンが最新かどうか確認しときや。古いバージョンやと不具合が起こることもあるさかい、最新版を使うことをおすすめするで。
  5. エラーメッセージに注意: 修復中にエラーメッセージが出たら、無視せんとしっかり内容を確認するんが大事や。エラーの原因を理解して対処することで、問題をきちんと解決できるんや。
  6. ログの確認: 修復が終わった後は、ログを確認して修復がちゃんと成功したかどうか確認しときや。これで問題なく修復できたことを確認できるんや。

これらの点に気をつけて、テーブルの修復をスムーズに行うんやで。

2.そこで、XFREE をググって「原因と修復方法」を探しました

考えられる要因として挙げられていたのは、サーバーパネルの「エラーログ」より、エラーログの取得が可能です、とういうものですが、無料ブログの哀しさよ、そんなサーバーパネルはありません。

木で鼻をくくったような「要因」を言われても困るので、他をググってみました。Google 検索は高機能です。必ずそのサービスの正式な名称を使うことです。

phpMyAdmin内でも修復を実行することができるとあります。phpMyAdminにログインしてデータベースをクリックし、すべてのテーブルを選択、ドロップダウンメニューの「テーブルの修復」をクリックすれば修復できそうです。

これは基本的にREPAIR TABLEコマンドを実行するだけです。これなら簡単そうなのでやってみます。

「WordPress 一覧・設定」から、WordPressの「設定」をクリックします。

phpAdmin
phpAdmin

そこで、「phpAdmin へのログイン」 をクリックして

「pckatada_w1」をクリックすると・・・
「pckatada_w1」をクリックすると・・・

左側の「pckatada_w1」をクリックすると・・・、

すべてをチェックする
すべてをチェックする

「テーブル」が表示されるので、すべてをチェックする ☑、その右にある「チェックしたものを」をクリックすると、「テーブルを修復する」があるので、それを選びます。これで完了です。

3.Xserver CGI 500エラーか?

500エラーは、サーバー側で何かしら問題が起こった時に出るエラーやけど、具体的には以下の点をチェックしてみようと思います。

ブラウザでページを開いた時に「500 Internal Server Error」っちゅうメッセージが表示されるんやったら、これが500エラーにまちがいありません。サーバーのエラーログを確認するんが大事です。

Apacheやったら/var/log/apache2/error.logとか、ログファイルにエラーメッセージが書いてあることが多いんです。「Premature end of script headers」とか「Internal Server Error」っちゅうメッセージが出てたら、これが500エラーの原因ですね。

CGIスクリプトのパーミッションが正しいか確認します。普通は755(rwxr-xr-x)に設定するんがいいらしい。パーミッションが間違ってると、サーバーがスクリプトを実行できへんで500エラーが出ることがあるんです。

CGIスクリプトのシバン(#!)行が正しいか確認するんも大事です。例えば、Perlスクリプトやったら最初の行に#!/usr/bin/perlとか書いてあるはずやけど、このパスが間違ってると500エラーになることがあるんです。

サーバーの設定ファイル(例えばApacheのhttpd.confとかapache2.conf)でCGIの設定が正しいか確認します。間違った設定が入ってると、スクリプトが正しく動かんことがあるんです。

スクリプト自体にエラーがある場合も500エラーが出ることがあります。スクリプトを実行して、エラーメッセージが出てないかチェックしてみようと思います。

これらの点を確認してみて、問題を見つけて対処すれば500エラーが解消することが多いはずです。

Xserver レンタルサーバーでは、phpMyAdmin と呼ばれるデータベースの編集ソフトがブラウザから利用できるのです。これを使うと、データベースの特定の項目だけを編集したり、バックアップ用にインポート(読み込み)や、逆にエクスポート(書き込み)ができます。

WordPress サイトの引っ越しなどの際にも、有料プラグインを利用しなくても phpMyAdmin を使えば容易にバックアップからの書き戻しができます。

おそるおそる、自分のサイトを開けてみると・・・

「ダッシュボードが開けた!」ではありませんか。

めでたし、めでたし。

一般的に、レンタルサーバでは、利用者が不注意でデータを削除した場合の復活には、バックアップは利用できない規則になっていますが、Xserver では間違って消してしまってもバックアップ機能を提供しています。これは有難いしあんしんですよね。バックアップ機能は会社によって違うのでレンタルサーバ選びのポイントですね。

早速、元はと言えば「高速化」のこの ☑ をすべて外すことにしました。

cocoon設定
cocoon設定

ところが、外したと同時に、また

500 Internal Server Error
500 Internal Server Error

にっくき「500 Error」です。

しかたなく、「さっきの phpAdomin をやり直すか・・・」、となったのですが・・・、

4.phpAdomin をやり直すが今度はうまくいかない

はたと困りました。いろいろやってみましたがラチがあきません。さまざまな操作を試みたものの解決できそうもないときはあれこれやってみても時間の無駄ですから、しょうがないので今日はもうやめて寝ることにします。こんな場合には誰しも自分自身だけの考えにふけったり、ふところ手をしたりして、明日の朝は早く起きてやろうなどと考えがちなものです。

———–さて翌日になりました。

Internal Server Error 500は、Webサーバーがリクエストを処理できない場合に表示されるエラーコードです。このエラーの原因はさまざまで、正確な解決策はエラーの具体的な原因に依存します。

  1. ページをリロードする: 一時的な問題によるエラーの場合、ページをリロードすることで問題が解決する場合があります。
  2. キャッシュやクッキーをクリアする: ブラウザのキャッシュやクッキーが原因でエラーが発生することがあります。ブラウザの設定からキャッシュとクッキーをクリアし、再試行してみてください。
  3. プラグインやテーマを無効にする: ウェブサイトに使用しているプラグインやテーマが原因でエラーが発生している場合、一時的に無効にしてみてください。
  4. ログファイルをチェックする: サーバーのエラーログを確認して、具体的なエラーメッセージや詳細を把握することができます。ログファイルへのアクセス権限がある場合は、ログファイルをチェックしてください。
  5. プログラムのバグを修正する: サーバーサイドのプログラムにバグがある場合、それを修正する必要があります。プログラムのコードを見直し、問題を特定し、修正を加えてください。
  6. サーバーのリソースを確認する: サーバーが十分なリソース(メモリ、ディスク容量、プロセッサ能力など)を持っているかどうかを確認してください。リソースが不足している場合は、サーバーの設定を調整するか、ホスティングプロバイダーに相談してください。

これらの手順は一般的な対処法ですが、問題の原因や状況によっては異なる場合もあります。エラーが持続する場合や原因が特定できない場合は、システム管理者やウェブホスティングプロバイダーに連絡して専門家の支援を求めることが必要になるかもしれません。

taka
taka

もういちど復習してみます。

以下のような原因が考えられます、とありました。

5.常に発生する場合.htaccess の記述に誤りがある

  • CGI のパーミッション設定に誤りがある。
  • CGI のソースコードに問題がある。
  • .htaccess の記述に誤りがある。

「常に発生している」ので「3点」を検証します。「CGI のパーミッション設定に誤りがある」とはどのようなことでしょうか。

パーミッションとは、フォルダやファイルに対するユーザーのアクセス権限のことです。何人かが1台のパソコンを共有する場合、自分のファイルを他人に勝手に操作されないようにするためのアクセス権(パーミッション)を設定することです。

ふつうの HTML ファイルなら、パーミッションの設定は必要ないけど、

  • CGIを設置する
  • .htaccessを設置する
  • 他人にダウンロードされては困るファイルを設置する

とか、掲示板やアクセスカウンターなどの設置の際には必ず必要となります。どうも、パーミッションを設定した覚えがないので、これはパスします。

つぎに、「CGI のソースコードに問題がある」です。しかしこれも思い当たりません。

.htaccess の記述に誤りがある。これしかありません。

そこでググりました。

.htaccessファイルは、Apacheウェブサーバーで使用される設定ファイルの一つです。このファイルに記述することで、ウェブサイトの動作やセキュリティに関するさまざまな設定を行うことができます。

「.htaccessの記述に誤りがある」とは、.htaccessファイル内に構文エラーや誤ったコマンド、設定の間違いがあることを指します。これにより、期待した動作が実現できず、ウェブサイトが正常に機能しない可能性があります。

.htaccessファイルの記述に誤りがある場合、ウェブサーバーはそのファイルの内容を解釈できず、エラーメッセージを表示することがあります。また、設定の間違いによっては、サーバーエラーが発生したり、アクセスが制限されたりすることもあります。

.htaccessファイルを編集する際には、正確な構文を使用し、適切な設定を行うことが重要です。また、記述する前にバックアップを作成することもおすすめです。もし.htaccessファイルに誤りがある場合、バックアップから元の状態に戻すことができます。

2.Internal Server Error(ERROR番号:500)が表示

500 Internal Server Error
500 Internal Server Error

WordPress運用中に「Internal Server Error」(ERROR番号:500)が表示された場合、プラグイン等の影響により「.htaccess」が書き換えられ、当サービスに沿わない設定がされている可能性があります。

上記ような場合は、プラグインを一旦削除の上、「.htaccess」を下記のように設定することでエラーが解消されるケースがありますのでお試しください。

※必ず事前に各種ファイルやデータ、MySQLデータベースのバックアップを取り、自己の責任の上で操作を行ってください。

ちゃんとあるではありませんか。

どうも、「プラグイン」を削除して、「.htaccess」を設定すれば解決できると。

それでは、プラグインを削除してみます。FFFTP ですね。

ここでも問題が起きました。

3.FFFTP から「File Zilla」に変えてみた

FileZilla
FileZilla

接続はできたのですが、右側の「pragins」を選び、削除をクリックしても一向に削除できないのです。「ファイル一覧の取得を中止しました」のエラーがでるのです。ホームページを運用するには、ウェブサーバーにファイルをアップロードし、管理していかなければなりませんが、ファイルのアップロードやダウンロードに使うのが FTP ソフトです。

この FFFTP はフリーの FTP ソフトとしては定番でした。長年この FFFTP ソフトを使ってきたのですが、どうも寿命がきたみたいですね。何度やっても同じエラーがでるのは、FFFTP の不具合です。個人が趣味で開発したソフトなので、今回のように大容量のファイルには対応できないみたいです。ファイルサイズが小さければエラーは起きません。FFFTP は日本での知名度がありますが、更新がされていないソフトなのでどうしょうもないですね。

暗号化されていないかもしれないですね。Wi-Fi などを利用していると、他の人から転送して入りうファイルの内容がそのまま読み取られてしまうリスクもあります。FTPではなくFTPSと「S」のついたものを利用すべきですね。

File Zilla は大容量のファイルでも、エラーは発生せず、転送速度も速いです。開発はオープンソースのコミュニティなので、個人が趣味で作っているソフトとは格段の差がありますね。ダウンロードは下記のサイトから行います。

緑色の「ダウンロードファイル一覧」をクリックすると、Windows10はもちろんWindows7以上であればほとんどが 64bit の OS なので win64 と書かれているものを選択してください。Mac や Linux 用もあります。さすがです。

ダウンロード一覧
ダウンロード一覧

FileZilla を起動したら最初に接続するサーバの設定を行います。メニューバーの「ファイル」−「サイトマネージャ」を選択するか、ツールバーの一番左のボタンをクリックし、サイトマネージャを表示します。

表示されたら「Select Entry」の「自分のサイト」を選択し、「新しいサイト」ボタンをクリックし、任意の設定名を入力して登録します。

「ホスト」に接続先サーバのホスト名(アドレス)を入力し、「サーバの種類」から「SFTP
– SSH File Transfer Protocol」を選択します。

FTPの場合は「FTP – File Transfer Protocol」、FTPSの場合は「FTPS –暗黙のTLS/SSL上のFTP」を選択すればよいです。

ポート番号は入力しないとSFTPではは22、FTPやFTPSのでは21が自動的に使用されます。「ログオンの種類」から「通常」を選びサーバの認証用ユーザー名とパスワードを入力します。

サイトマネージャー
サイトマネージャー

準備が整いました。それでは接続してみます。うまく接続できました。

右側のリモートサイトに一覧が表示されました。
「pragins」をクリックして「削除」ボタンを押します。
見る見るうちに削除できました。成功です。

やっぱり FileZilla に変えて正解でした。

さて、pragins は削除できました。次は「.htaccess」の書き換えです。これをしないと私のホームページが表示されないのです。

で、編集を行います。

.htaccess の編集
.htaccess の編集

さあ、これで一通り終えました。これでサイトが表示されるか?

内心ビクビクですがクリックしてみます。

pckatada のホームページ
pckatada のホームページ
mika
mika

みごとに復元できました。めでたしめでたし。

ブラウザでエラーが表示される場合はサーバまでアクセスができていない、もしくはセキュリティの問題でアクセスできないのが原因かもしれません。一方、サーバからエラーが返ってきてWeb ページとしてエラーメッセージが表示される場合があります。503エラーもその一つです。

「404Not Found」はリクエストされたファイルが存在しないことを表しています。「403Access Forbidden」はIPアドレス認証を設定しているページアクセスしょうとした際や国外IPアドレスフィルタが設定されていてアクセスがブロックされているときに起こります。

500番台のエラーはサーバ側で何か問題が起きているときに表示されます。「500Internal Server Error」はPHP や.htaccess を編集した際に設定に問題があると起こります。

今回のエラーは、自分で操作した結果発生したエラーなのか、サーバ側の問題で発生したエラーなのかの区別がつきません。自分で何かをしてエラーが表示されたのであればトラブルシューティングは割と簡単ですが、何もしてないのにエラーが表示されると「自分が何か設定すれば直るのか」は難しい判断です。

500エラーは、.htaccess と呼ばれるアクセスを制御するプログラムで記述ミスがあると表示されます。原因はXserver 側ではなく利用者側でした。直前に行った変更を元に戻す、.htaccess を編集していた場合はファイルを変更して無効化するといった対応でエラーが解消できます。エラーは番号によって対応が違ってきます。

あとがき

失敗してもあきらめないことですね。頭が疲れたらもう寝ましょ。自分が実行しょうと考えていることがらに対して信念をもっていればあけない夜はないです。

ある青年がいました。彼は議員に立候補したが惨敗しました。次に実業界に入ったが、共同経営者の負債を抱え込んで17年もかかって借金を返済しました。この青年は美しい女性と恋に落ち、婚約まで結んだがその婚約者はまもなく亡くなってしまいました。

彼は、再び政界に舞い戻って、国会議員に立候補したがまた負けてしまいました。上議員選挙にも挑戦したが、またまた落選の憂き目を見ました。2年後の選挙にも敗れました。失敗に次ぐ失敗を重ねながらも失敗に屈することなく、営々として努力をつづけていって、彼は歴史上の有名人になりました。

彼の名は、人も知るエーブラハム・リンカーンです。

彼の苦労と努力に比べたら、私の失敗と成功はほんの微々たるものかもしれませんが、今日一日の失敗を気にしないという点では同じ立場です。失敗してもあきらめない態度、途中でくさってしまうものでもないのです。

コメント

何なりとお申し付けください。