Photo x Programming

写真家プログラマーKのIT効率化術

HPのスクリプトが動かないときにチェックするポイント

さて今日は、「HPのスクリプトが動かないときにチェックするポイント」というテーマでお送りします。

ホームページで、cgi や PHP のスクリプトを動かそうと思ったときや、

設置済みのスクリプトを編集したとき、

ブラウザでホームページを見てみると “500 Internal Server Error” というエラーが出る場合があります。

サーバーでエラーが起きています、という意味です。

“500 Internal Server Error” の下に、エラーの原因になったスクリプトの行番号が表示される場合もあります。

しかし、経験が少ない場合は、エラーの行番号がわかっても、

何がおかしいのか、どう直せばよいのか、判断に困る場合が多いでしょう。

そこで今回は、”500 Internal Server Error” が起きたときにまずはチェックしておきたいポイントをご紹介します。

■改行コード

ファイルの改行コードは、

  • Windows: CR+LF
  • Mac: LF
  • UNIX系 (Linux など): CR

と、システムによって見事にばらばらになっています。

例えば、Windows でファイルを保存して、改行コード CR+LF になったファイルを、

レンタルサーバー (UNIX系がよく使われている) にアップロードすると、

UNIX系は改行を CR として解釈しようとしますが、+LF の部分が余計についているので、

うまく動かずエラーとなります。

改行コードのエラーを防ぐには、ファイルをアップロードする際に、

FTP の ASCII モードを使ってアップロードします。

FTP には、ASCII モード、バイナリモードがあります。

テキストファイルをアップロードする時は、ASCII モードを使うと、改行コードを変換してアップロードしてくれます。

画像ファイルなどのバイナリファイルをアップロードする時は、そういった変換をしてはいけないので、

データをそのままアップロードするバイナリモードを使います。

アップロードにASCII モードを使うか、バイナリモードを使うか、の選択は、FTP ソフトに設定があります。

■文字コード

文字コードは UTF-8 を使っておけば問題ありません。

しかし、Windows のデフォルトは シフトJIS で、

UTF-8 の扱いがあまりうまくありません。

標準のメモ帳ではなく、Sublime Text, Atom といったプログラミング用途に適した

エディタを使って、UTF-8 で保存するとよいでしょう。

こういった高機能エディタを使うと、

文字コードや改行コードを確認できますし、指定のコードで保存することができます。

■カッコの間違い

文法エラーのうちのひとつになりますが、

よくありがちなのが括弧の間違いです。

スクリプトで文字列を囲むのは、’ (半角シングルクォーテーション) か、” (半角ダブルクオーテーション) ですが、

’ (全角アポストロフィ)、“(全角左ダブル引用符)、”(全角右ダブル引用符)、`(バッククオート)、❛(機種依存文字シングルクオート) などに

なっていないか確認しましょう。

正しいものを入力したつもりでも、エディタが勝手に補正してしまう場合があるので注意が必要です。

これらの見た目が似たような括弧を目視で確認するのはつらいですね。

高機能エディタを使うと、シンタックスハイライトといって構文がわかりやすいように、

文字に色を付けたり、予約語を太字にしてくれる機能があります。

この機能を使うと、どこからどこまでが括弧で囲まれた文字か、わかりやすく見ることができるので、

括弧の間違いに気づきやすくなります。

○ ○ ○

今回紹介した基本的なミスは、高機能エディタを使うと防げます。

うまく道具を使って、問題解決にかける時間を短縮していきましょう。

オススメのエディタについては、また今度、解説しますね。

Facebookでコメントする