.CGI

CGI ファイル

Common Gateway Interface Script
質問する
クイック回答

CGI ファイルは Common Gateway Interface スクリプトです。これは、ウェブサーバーが動的にページを生成するために実行するプログラム(フォームハンドラー、カウンター、古いゲストブックなど)です。通常は Perl や Python などのプレーンテキストのソースコードであるため、任意のコードエディタで開いて閲覧や編集が可能です。ブラウザ上で直接動作するものではなく、実行するにはサーバーの /cgi-bin/ ディレクトリに配置して実行権限を与え、ブラウザがその URL をリクエストした際にサーバー側で実行されます。

開発元: NCSA / CGI community (RFC 3875 documents the interface) カテゴリ: 実行ファイル オープンスタンダード MIME: application/x-httpd-cgi
対応OS Windows macOS Linux
関連: .APK · .EXE · .VBS · .JAR

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Jul 10, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

CGI ファイル形式とは?

.cgi 拡張子は Common Gateway Interface の略で、ウェブアプリケーションやウェブページ上の動的コンテンツを生成するための標準的な手法です。ウェブサーバー上で .cgi 拡張子が適用されると、実行プログラムとウェブサイトのコンテンツを生成するウェブサーバーとの間のインターフェースを提供します。このようなプログラムはすべて CGI または CGI スクリプトと呼ばれます。

これらのファイルは一般的に PerlPython、または shell script などのスクリプト言語を使用して記述されますが、.cgi ファイルはコンパイルされたバイナリ(例:C言語プログラム)である場合もあります。拡張子自体は内部の言語を規定しません。スクリプトの最上部にある #!/usr/bin/perl#!/usr/bin/python3 といったシバン(shebang)行が、どのインタプリタを呼び出すかをウェブサーバーに伝えます。

CGI スクリプトは、HTTP リクエストが届くたびにサーバー上で一度実行されます。環境変数(QUERY_STRINGREQUEST_METHODCONTENT_TYPE)からリクエストデータを読み取り、stdin 経由で POST ボディデータを受け取ります。その後、HTTP レスポンス(ヘッダーとそれに続くボディコンテンツ)を stdout に直接書き込みます。機能させるには、ファイルを CGI が有効なディレクトリ(伝統的には /cgi-bin/)に配置し、サーバー上で実行権限を設定する必要があります。

.cgi はインターフェースの規格であり、プログラミング言語ではありません。他のいくつかのファイル形式も .cgi 拡張子を共有することがあります。.pl.py.sh スクリプトは、ウェブサーバーが CGI メカニズムを介してルーティングするように、しばしば .cgi にリネームされます。CGI はリクエストごとに新しいプロセスを生成するため、大規模な環境では低速であり、現在は FastCGI、mod_php、WSGI、および現代的なアプリケーションサーバーに大きく取って代わられています。ただし、現在でもほとんどのウェブサーバーでサポートされ続けています。

セキュリティと安全性

リスク: MEDIUM

テキストエディタで .cgi を読み取ることは安全です。開くだけで実行されることはありません。リスクはサーバー上での「実行」にあります。CGI スクリプトはサーバーの権限で動作し、歴史的に主要なウェブ脆弱性の温床となってきました(2014年の Shellshock バグは主に CGI シェルスクリプトを通じて悪用されました。不適切に記述された CGI はコマンドインジェクション、パス・トラバーサル、任意コード実行を可能にします)。内容を理解していないダウンロードした .cgi をデプロイしないでください。インタプリタとサーバーを最新の状態に保ち、/cgi-bin/ の権限を制限し、新規開発では FastCGI やアプリサーバーなどの代替手段を優先してください。未知の CGI ソースは、実行前にレビューすべき信頼できないコードとして扱ってください。

形式の詳細

概要
正式名称Common Gateway Interface Script別名 CGI script, CGI program
開発元NCSA / CGI community (RFC 3875 documents the interface)登場時期 1993 (NCSA HTTPd); formalized as CGI/1.1 in RFC 3875 (2004)
カテゴリ実行ファイル
MIME タイプapplication/x-httpd-cgi
タイプサーバーサイド実行スクリプト(通常はプレーンテキストソース、時にコンパイルされたバイナリ)
標準規格オープン・ロイヤリティフリー
この拡張子は以下でも使用されています…
  • EToys / .cgi を使用するニッチなアプリデータ - ごく一部の無関係なアプリケーションが独自のデータファイルに .cgi を再利用していますが、ウェブサーバー上では .cgi はほぼ常にゲートウェイスクリプトを指します。

CGI ファイルを開くプログラム

Windows3 apps
Notepad オープンソース 構文ハイライト(Perl/Python/shell)を使用してソースを閲覧・編集するために .cgi を開きます。スクリプトの検査や修正に適したツールです。
Visual Studio Code 無料 言語拡張、リンティング、Git を使用して本格的な編集を行うために .cgi を開きます。ウェブスクリプト向けの現代的なエディタです。
Apache HTTP Server (to run it) オープンソース CGI を実行する場合:CGI が有効なディレクトリ(mod_cgi、/cgi-bin/)に配置し、インタプリタがインストールされ、ファイルが実行可能であることを確認してから、その URL をリクエストします。
macOS2 apps
BBEdit フリーミアム macOS でソースを閲覧・編集するために .cgi を開きます。
Visual Studio Code 無料 言語拡張、リンティング、Git を使用して本格的な編集を行うために .cgi を開きます。ウェブスクリプト向けの現代的なエディタです。
Linux2 apps
Any text editor (gedit, Vim) オープンソース スクリプトのソースを閲覧・編集するために .cgi を開きます。
The interpreter / web server オープンソース テストのためにインタプリタで直接実行(perl script.cgi)するか、Apache mod_cgi や CGI 対応サーバー経由で提供します。chmod +x で実行権限を付与してください。

技術的詳細

詳細仕様
MIME タイプapplication/x-httpd-cgi
代替 MIME タイプtext/plain, application/octet-stream
ファイルのエンコーディングスクリプトの場合はプレーンテキスト(ASCII/UTF-8)、コンパイルされた実行ファイルの場合はネイティブバイナリ
ファイルシグネチャ固定されたマジックバイトはありません。テキストスクリプトはシバン行(#!/usr/bin/perl、#!/usr/bin/python3、#!/bin/sh など)で始まります。コンパイルされた CGI バイナリは、プラットフォームの実行ファイルヘッダー(Linux では ELF、Windows では MZ)を持ちます
実行モデルウェブサーバーは HTTP リクエストごとに新しい OS プロセスをフォークしてスクリプトまたはバイナリを実行し、レスポンス送信後にプロセスは終了します
入力メカニズム環境変数(QUERY_STRING、REQUEST_METHOD、CONTENT_TYPE、HTTP_* ヘッダー)を介してリクエストデータが渡されます。POST ボディは stdin 経由で渡されます
出力メカニズムスクリプトは HTTP レスポンスヘッダー(名前: 値 の行)に続いて空行を書き込み、その後にレスポンスボディを stdout に直接書き込みます
必要なデプロイ設定ファイルは CGI が有効なディレクトリ(慣習的に /cgi-bin/)に存在し、実行ビットが設定されている必要があります。ウェブサーバーユーザーに読み取りおよび実行権限が必要です
代表的なスクリプト言語Perl, Python, Bash/shell, Ruby, C (ネイティブバイナリにコンパイル)
典型的なファイルサイズテキストスクリプトの場合は 1 KB - 100 KB。コンパイルされたバイナリの場合はそれ以上
圧縮ファイル自体に圧縮はありません。HTTP レスポンスボディは、スクリプトまたはサーバーによって別途 gzip 圧縮される場合があります
プラットフォームのサポートLinux, Unix, macOS, Windows - CGI 対応のウェブサーバーが動作する任意の OS
一般的なウェブサーバーApache HTTP Server, Nginx (FastCGI ラッパー経由), lighttpd, Microsoft IIS
パフォーマンス特性大規模環境では低速です。リクエストごとにプロセスの生成と破棄が行われるためです。高トラフィックのデプロイメントでは FastCGI、WSGI、ASGI に取って代わられています
セキュリティ上の考慮事項スクリプトのソースはディスク上で読み取り可能です。厳格なファイル権限で保護し、指定された /cgi-bin/ パス以外の直接 URL で CGI ディレクトリを公開しないようにしてください
リリース日1993 (NCSA HTTPd); formalized as CGI/1.1 in RFC 3875 (2004)
最新バージョンCGI/1.1 (RFC 3875, October 2004)
オープンスタンダードはい · ロイヤリティフリー
仕様書www.rfc-editor.org

CGI の変換

コミュニティ Q&A

ユーザーからの質問
質問する
CGI ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。CGI ファイルについて最初の質問をしてみましょう。

よくある質問

.cgi ファイルとは何ですか?
Common Gateway Interface スクリプトのことで、ウェブサーバーが動的にページ(フォーム、カウンター、古いゲストブックなど)を生成するために実行するプログラムです。通常はプレーンテキストのソース(多くは Perl や Python)であり、ブラウザではなくサーバー上で動作します。
.cgi ファイルを開くにはどうすればよいですか?
閲覧や編集を行うには、コードエディタ(Notepad++、VS Code、BBEdit など)で開いてください。通常はテキストソースです。実行(RUN)するには、サーバーの /cgi-bin/ に配置し、実行権限を与えてからその URL にアクセスします。CGI はダブルクリックしても実行されません。
なぜブラウザで実行されずに CGI のコードが表示されるのですか?
サーバーがその場所で CGI を実行するように設定されていません。CGI ハンドリング(mod_cgi)がオフであるか、ディレクトリで CGI が有効になっていないか、ファイルに実行権限がないか、あるいはシバン/インタプリタが間違っています。/cgi-bin/ に配置し、パーミッションを修正してください。
.cgi はどの言語で書かれていますか?
拡張子からは判断できません。1行目を確認してください。#!/usr/bin/perl、#!/usr/bin/python3、#!/bin/sh といったシバンがインタプリタを教えてくれます。一部の CGI は、読み取り可能なソースではなくコンパイルされた C バイナリである場合もあります。
CGI はまだ使われていますか?
現在も動作しサポートされていますが、レガシーな技術です。リクエストごとにプロセスを開始するのは遅いため、ほとんどのサイトは FastCGI、mod_php、WSGI/Rack アプリサーバー、および現代的なフレームワークに移行しました。古いスクリプトや一部のホスティングパネルでは、今でも .cgi を目にすることがあります。
.cgi ファイルは危険ですか?
エディタで開くだけなら安全です。信頼できない CGI をサーバーで実行するのは危険です。CGI はサーバーの権限で動作し、歴史的に重大な脆弱性(例:Shellshock)の対象となってきました。ダウンロードした CGI はデプロイ前に内容を確認し、サーバーを常に最新の状態に保ってください。

参考文献

1RFC 3875 - The Common Gateway Interface (CGI) Version 1.1www.rfc-editor.org
2Wikipedia - Common Gateway Interfaceen.wikipedia.org

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.MDMarkdown Document
3.CRDOWNLOADChrome Partial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.PARTPartial Download File
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.ICSiCalendar data file

関連する拡張子

.APKAndroid Package
.EXEWindows Executable (Portable Executable)
.VBSVBScript file (Visual Basic Script)
.JARJava Archive
.EX4MetaTrader 4 Compiled Program (Expert Advisor / Indicator / Script)
.APPXMicrosoft Windows App Package (AppX)

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧