CGIについて1から書いております
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
CGIスクリプトを記述する際に注意しなければならないことを、UNIXサーバーの場合、Windowsサーバーの場合に分けて説明します。(多くのプロバイダではUNIXサーバーを利用しています。たまにWindows NTサーバーもあるようです。)
◆ サーバーがCGIをサポートしていない(共通)
セキュリティ確保のためCGIの使用を禁止していたり、CGIの設定を行っていなかったりするため、CGIを利用できない場合があります。
◆ .htaccessファイルが必要?(UNIX)
サーバが Apache などの場合、.htaccess というファイルの設定が必要な場合があります。プロバイダやサーバー管理者に問い合わせてください。また、.htaccess に記述しても有効にならない場合もありますので、サーバーの管理者の指示に従ってください。
◆ ローカルファイルを実行しようとしてる(共通)
CGIスクリプトの動作チェックは必ず、http:// で始まるアドレスでアクセスしなくてはなりません。
◆ perlのパス名があっていない(UNIX)
CGIスクリプトの1行目は、perlの絶対パス名(ディレクトリ上の位置)を正確に指定してください。絶対パス名がわからない場合は、プロバイダの説明を読んだり、サーバーの管理者に問い合わせてください。多くの場合、/usr/local/bin/perl や、/usr/bin/perl などに置かれています。
◆ CGIスクリプトの場所が適切でない(共通)
サーバーの設定によってはCGIスクリプトを置くディレクトリが制限されている場合があります。普段 HTMLファイルを置いているのとは別のサーバーに設置しなくてはならないプロバイダもあります。CGIスクリプトを置く場所がこのホームページで説明されている場所と合わない場合は、プロバイダの指示などに従って、適切にディレクトリを変更してください。
◆ CGIスクリプトの拡張子が適切でない(共通)
CGIスクリプトの拡張子が .cgi でなくてはならない場合があります。他にも .pl でなくてはならない場合もあります。これらも、サーバーの設定によって異なります。
◆ perlがインストールされていない(Windows)
Windows NTにはperlが標準では装備されていませんから、perl for Win32 や ActivePerl を入手してインストールする必要があります。また、MicrosoftのIISを用いる場合は、.cgi という拡張子に対して perl.exe が起動されるように、IISのヘルプを参照して設定を行う必要があります。(古いバージョンのIISではレジストリの追加が必要)
◆ ユーザーの権限設定が誤っている(Windows)
MicrosoftのIISでは、IUSER_MachineName というユーザーの権限でコマンドが実行されます。このユーザーがCGIスクリプトを実行する権限を持っているか確認してください。
◆ ファイルの所有者が変(共通)
他のサーバーからデータファイルを移行させたときなど、ファイルの所有者が nobody でなくてはならないのに、自分自身の所有になっていて、パーミッションが 644 でもCGIがファイルに書き込めないことがあります。
◆ サーバーがCGIをサポートしていない(共通)
セキュリティ確保のためCGIの使用を禁止していたり、CGIの設定を行っていなかったりするため、CGIを利用できない場合があります。
◆ .htaccessファイルが必要?(UNIX)
サーバが Apache などの場合、.htaccess というファイルの設定が必要な場合があります。プロバイダやサーバー管理者に問い合わせてください。また、.htaccess に記述しても有効にならない場合もありますので、サーバーの管理者の指示に従ってください。
◆ ローカルファイルを実行しようとしてる(共通)
CGIスクリプトの動作チェックは必ず、http:// で始まるアドレスでアクセスしなくてはなりません。
◆ perlのパス名があっていない(UNIX)
CGIスクリプトの1行目は、perlの絶対パス名(ディレクトリ上の位置)を正確に指定してください。絶対パス名がわからない場合は、プロバイダの説明を読んだり、サーバーの管理者に問い合わせてください。多くの場合、/usr/local/bin/perl や、/usr/bin/perl などに置かれています。
◆ CGIスクリプトの場所が適切でない(共通)
サーバーの設定によってはCGIスクリプトを置くディレクトリが制限されている場合があります。普段 HTMLファイルを置いているのとは別のサーバーに設置しなくてはならないプロバイダもあります。CGIスクリプトを置く場所がこのホームページで説明されている場所と合わない場合は、プロバイダの指示などに従って、適切にディレクトリを変更してください。
◆ CGIスクリプトの拡張子が適切でない(共通)
CGIスクリプトの拡張子が .cgi でなくてはならない場合があります。他にも .pl でなくてはならない場合もあります。これらも、サーバーの設定によって異なります。
◆ perlがインストールされていない(Windows)
Windows NTにはperlが標準では装備されていませんから、perl for Win32 や ActivePerl を入手してインストールする必要があります。また、MicrosoftのIISを用いる場合は、.cgi という拡張子に対して perl.exe が起動されるように、IISのヘルプを参照して設定を行う必要があります。(古いバージョンのIISではレジストリの追加が必要)
◆ ユーザーの権限設定が誤っている(Windows)
MicrosoftのIISでは、IUSER_MachineName というユーザーの権限でコマンドが実行されます。このユーザーがCGIスクリプトを実行する権限を持っているか確認してください。
◆ ファイルの所有者が変(共通)
他のサーバーからデータファイルを移行させたときなど、ファイルの所有者が nobody でなくてはならないのに、自分自身の所有になっていて、パーミッションが 644 でもCGIがファイルに書き込めないことがあります。
PR
この記事にコメントする