Q.Movable Type クラウド版で独自 CGI を実行すると 404 エラーが発生する
Apache プランでは独自 CGI を使用できるとのことで cgi-bin ディレクトリに CGI ファイルをアップロードし、ブラウザでアクセスして実行したところ 404 エラーが発生しました。アクセス先は間違っていないのですが、なぜ 404 エラーになるのでしょうか。
A.
Movable Type クラウド版では、独自 CGI の実行に失敗した際、404 エラーが発生する仕様になっております。
以下のサンプルコードを CGI スクリプトファイルとして保存し、cgi-bin ディレクトリにアップロード後、ブラウザから実行して「Hello World!」の文字が表示されるかご確認ください。
※404 エラーが発生する独自 CGI を作成した環境で、且つ、同じ手順で作成してください。
#!/usr/bin/perl
use strict;
use warnings;
print "Content-type: text/html\n\n";
print "Hello World!";
サンプルコードのスクリプトが正常に実行される場合には、独自 CGI の記述内容にエラーの原因があると考えられます。
お客様にてスクリプトファイルの記述内容を見直してください。
サンプルコードのスクリプトの実行で 404 エラーが発生する場合、ファイル内の改行コードが「LF」以外で保存されていることがエラーの原因になっている可能性があります。
改行コードの指定保存が可能なテキストエディタでスクリプトファイルを開き、改行コードを「LF」に指定して再保存してください。
その後、ファイルを FTPS でアップロードし直し、あらためてブラウザでアクセスした際の実行結果をご確認ください。
なお、アップロードに使用する一般的な FTP クライアントソフトには、アップロードするファイルの改行コードに関する変換設定があります。
アップロードするファイル内の改行コードが「LF」であっても、FTP クライアントソフトの設定によっては、アップロード時に「LF」以外の改行コード(「CR+LF」など)に変換されてしまうことがあります。
アップロード前のファイルだけでなく、FTP クライアントソフトの改行コードの変換設定についても確認されることをおすすめいたします。
独自 CGI の実行は Apache プランでのみ許可しておりますが、独自 CGI の動作は保証対象外となります。
エラーなどの問題が発生した場合であっても、テクニカルサポートは承りかねます。
スクリプト内にデバッグコードを埋め込むなどして、お客様にて原因特定のための調査をおこなってください。