はじめに
CGI(Common Gateway Interface)は、CGIスクリプト/プログラムを実行するWebクライアントとWebサーバー間のインターフェイスです。 CGIは非常に古く、PHPなどのさまざまなプログラミング言語に大きく取って代わられました。ただし、Webブラウザを介したシステムの監視と管理のための迅速なツールとして、Linuxシステム管理者の手に委ねられています。この記事では、UbuntuLinuxでApacheWebサーバーを使用してさまざまなプログラミング言語とスクリプトで基本的なCGIスクリプトを実行する方法を段階的に説明します。
Apacheのインストール
まず、ApacheWebサーバーをインストールする必要があります。これは非常に単純なタスクであり、 apt-getを使用して実行できます。 コマンド:
$ sudo apt-get install apache2
上記のコマンドは、 / etc / apache2 / sites-available/defaultにあるデフォルトサイトでApache2Webサーバーをインストールします。 このデフォルトの構成サイトを開くと、 / usr / lib / cgi-binからCGIスクリプトを実行するように構成されていることがわかります。 URLエイリアス/cgi-bin /のあるディレクトリ :
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
オプションで、DNS設定を変更して、新しいWebサーバーのIPアドレスを指すようにするか、ローカルの/ etc/hostsファイルを編集することができます。例:
10.1.1.61 cgi-example.local
ここで、10.1.1.61はapacheを実行しているWebサーバーのIPであり、cgi-example.localは任意のドメイン名です。
CGIスクリプトを作成する
CGIは複数の言語で動作しますが、今のところ、bashシェルから始めます。他のいくつかの言語の例は後で示します。 CGIbashの例の単純なバージョンを次に示します。
#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash Example'
上記のコードをコピーして、example-bash.shという名前の/ usr / lib /cgi-bin/内の新しいファイルに貼り付けます。完了したら、 chmodを使用してファイルを実行可能にします コマンド:
$ sudo chmod 755 /usr/lib/cgi-bin/example-bash.sh
CGIスクリプトを表示
残っているのは、ブラウザを使用してWebサーバーのホスト名またはIPアドレスに移動することだけです。この場合、URLは次のようになります:http://cgi-example.local/cgi-bin/example-bash.sh
この例を編集して、サーバーのルートパーティション「/」のディスク使用量を表示できます。あなたはあなたの想像力によってのみ制限されます:
#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash example<br>'
echo `df -h / | grep -v Filesystem`
上記のコードは、ルートパーティションの空きディスク容量を確認し、次のページを生成します。
その他のCGIの例
約束どおり、ここにいくつかのプログラミング言語のCGIの例があります。
Perl
次の/usr/lib/cgi-bin/example-perl.plを作成して実行可能にし、コンテンツを追加します。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print <<htmlcode;
<html>
<head>
<title>CGI Perl Example</title>
</head>
<body>
<h1>CGI Perl Example</h1>
<p>CGI Perl Example</p>
</body>
htmlcode
Python
次の/usr/lib/cgi-bin/example-python.pyを作成して実行可能にし、コンテンツを追加します。
<html>
<head>
<title>CGI Python Example</title>
</head>
<body>
<h1>CGI Python Example</h1>
<p>CGI Python Example</p>
</body></html>
"""
C
CおよびC++を機能させるには、コンパイラをインストールする必要があります。まず、次のコマンドでコンパイラをインストールします:
$ sudo apt-get install build-essential
インストールしたら、次のコードを使用してexample-c.cファイルを作成します。
#include <stdio.h>
int main(void)
{
printf("Content-Type: text/plain \n\n");
printf("CGI C Example \n");
}
example-c.cファイルの内容を保存し、次のlinuxコマンドを使用してコンパイルします。
$ sudo gcc -o /usr/lib/cgi-bin/example-c example-c.c
これで、CでコンパイルされたCGIスクリプトに次のコマンドでアクセスできるようになります:http://cgi-example.local/cgi-bin/example-c
C ++
CおよびC++を機能させるには、コンパイラをインストールする必要があります。まず、次のコマンドでコンパイラをインストールします:
$ sudo apt-get install build-essential
インストールしたら、次のコードを使用してファイルexample-cpp.cを作成します。
#include <iostream>
using namespace std;
int main()
{
cout << "content-type: text/html" << endl << endl;
cout << "<h1>CGI C++ example</h1>" << endl;
return 0;
}
example-cpp.cファイルの内容を保存し、次のlinuxコマンドを使用してコンパイルします。
$ sudo g++ -o /usr/lib/cgi-bin/example-cpp example-cpp.c
これで、CでコンパイルされたCGIスクリプトに次のコマンドでアクセスできるようになります:http://cgi-example.local/cgi-bin/example-cpp
結論
前述のように、CGIは非常に古く、PHPなどのさまざまなプログラミング言語に大幅に取って代わられました。ただし、ご覧のとおり、リモートカスタムモニタリングなどのLinux管理タスクを自動化するために使用するツールはまだ比較的シンプルです。 Webブラウザを使用するLinuxサーバー。