E-server » サーバ設定 » Webサーバ(Apache)
改行コードとは、何ですか
改行コードとは、テキストファイル中で改行を意味する文字コードのことを示し、
OS により下記のように文字コードが異なります。
===================================================== OS | 改行コード | プログラム改行時の文字 ---------------+-------------+----------------------- Windows | CR+LF | \r\n ---------------+-------------+----------------------- Unix | LF | \n ---------------+-------------+----------------------- Macintosh | CR | \r =====================================================
FTP などのソフトウェアでは、上記のように改行コードが異なっても、
自動的に改行コードを変換してファイルを送信しているため、
異なった改行コードでも問題が発生いたしません。
但し、CGI ファイルは、FTP でのアップロードの際に、ASCII モードを使用しまして、
アップロードする必要があり、Binary モードにてアップロードされた
ファイルは、上記の改行コードが変換されず、サーバにアップロード
されてしまうため、OS により使用不可能な改行コードにて設置されます。
改行コードが CR+LF となり、Windows のままアップロードされたファイルでは、
CGI の実行は不可能となります。
CGI ファイルは、1行目に起動スクリプトを指定する必要がありますが、
CR+LF での改行コードでは、起動スクリプトを指定する #!/usr/bin/perl の
部分のパスが /usr/bin/perl\r というファイルを探してしまうため、
エラーが発生いたします。
/usr/bin/perl\n では、問題の無い改行コードとなり、
実際には、/usr/bin/perl というプログラムを探します。
/usr/bin/perl\r\n では、/usr/bin/perl\r というファイルを探します。
パーミッションも問題ない CGI にてエラーが発生する際などには、
目に見えない改行コードにより発生している可能性もございますので、
ASCII モードを使用しまして、再度ファイルのアップロードをお試しください。
最終更新: 2008-04-15 16:46
作成者: IXENT テクニカルサポート
改定: 1.2
このエントリにコメントできません。