CGI プログラム

cgi-enabled を CGI 実行可能にする

ここまで、Apache2 の Web ディレクトリの CGI ファイルをブラウザで表示する準備をしてきました。
まだ不足しています。
/var/www/html/cgi-enabled/ のなかのファイルはまだ CGI として実行することはできません。
これを実行可能に変更します。
Apache2:Pythonスクリプトを利用する に行くと、 Python を CGI プログラムの例として解説されています。
前半部分はもう設定済みですので後半部分を参考にしてください。
新たに
/etc/apache2/conf-available/cgi-enabled.conf
ファイルを作成します。
このなかに、cgi-enabled ディレクトリの中のファイルは CGI として動作させるよ、と宣言するのです。
yamada@ubuntu-18:~$ sudo nano /etc/apache2/conf-available/cgi-enabled.conf


  # 新規作成
  # 拡張子 cgi および py を CGI として扱う
  <Directory "/var/www/html/cgi-enabled">
    Options +ExecCGI
    AddHandler cgi-script .cgi .py
  </Directory>

単なる CGI だけでなく Python ファイルも実行可能としました。
作成が完了したら設定を実行し、Apache2 を再起動します。
yamada@ubuntu-18:~$ sudo a2enconf cgi-enabled
Enabling conf cgi-enabled.
To activate the new configuration, you need to run:
systemctl reload apache2
yamada@ubuntu-18:~$ sudo systemctl restart apache2

そして、/var/www/html/cgi-enabled のなかにある、tesy.cgi の パミッションを実行可能 705 にします。
$ sudo chmod 705 /var/www/html/cgi-enabled/test.cgi
と WEB 等には書いてあるのですがこのパミッション変更はどうも必要がないようです。

Apache2 Web ディレクトリの CGI ファイル表示

やっと Apache2 の CGI Web ディレクトリに置いた test.cgi
/var/www/html/cgi-enabled/test.cgi
をブラウザ表示できるようになりました。
長かったですね。
ブラウザの URL 欄に、
http://localhost:8080/cgi-enabled/test.cgi
と入力し
Hello WORLD!!こんにちは
と表示されたら OK です。

ユ-ザ-ディレクトリで CGI ファイルを実行

引き続き、ユ-ザ-ディレクトリ
/home/yamada/public_html
に置いた CGI ファイルを実行する方法を説明していきます。
cgi-enabled ディレクトリを CGI 実行可能にしたときと同様
/etc/apache2/conf-available/cgi-enabled.conf
ファイルのなかに以下を追加します。
yamada@ubuntu-18:~$ sudo nano /etc/apache2/conf-available/cgi-enabled.conf


  # 追加
  # 拡張子 cgi および py を CGI として扱う
  <Directory "/home/yamada/public_html">
    Options +ExecCGI
    AddHandler cgi-script .cgi .py
  </Directory>

を追加します。
保存したら設定を実行し、Apache2 を再起動します。
yamada@ubuntu-18:~$ sudo a2enconf cgi-enabled
Enabling conf cgi-enabled.
To activate the new configuration, you need to run:
systemctl reload apache2
yamada@ubuntu-18:~$ sudo systemctl restart apache2

ホスト Windows OS c:\vb_public_html に CGI ファイル作成

ホスト Windows OS 側で以下の内容の CGI ファイルを作成します。

#!/usr/bin/perl
# -*- coding: utf-8 -*-
print "Content-type: text/html; charset=UTF-8\n\n";
print "Hello WORLD!!";
print "こんにちは";

作成できたら c:\vb_public_html に保存します。
なお、最初の行は perl がインスト-ルされているディレクトリ-を指しています。
ファイル名は適当に test.cgi とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
なぜ、c:\vb_public_html に保存したか説明します。
ユ-ザ-ごとの公開ディレクトリを用意する で説明したように、ユ-ザ-ディレクトリ
/home/yamada/public_html
はホスト Windows OS
C:\vb_public_html
と共有化されているのでしたね。
よって test.cgi は自動的にユ-ザ-ディレクトリ
/home/yamada/public_html
に入ってしまいました。

ユ-ザ-ディレクトリの CGI ファイルをブラウザ表示

それでは、ユ-ザ-ディレクトリに置いた test.cgi をブラウザで表示します。
ブラウザの URL 欄に、
http://localhost:8080/~yamada/test.cgi
と入力し
Hello WORLD!!こんにちは
と表示されたら OK です。
でもちょっと待ってください。
/usr/lib/cgi-bin/
ディレクトリの場合は配下のファイルを全て CGI と扱うため、 CGI 以外のファイルはブラウザ表示できませんでした。
でも今回は、そんなことはないようです。
Options +ExecCGI の+が味噌のようです。
CGI もおまけで動作させます。
と言っているようです。
だから、
/home/yamada/public_html
に置いた *.html ファイル等も動作します。

仮想ホストの CGI ファイルをブラウザ表示

仮想ホスト v-host.jp の DocumentRoot は
/home/yamada/public_html
に設定しています。
仮想ホスト設定 みてください。
すなわち、ユ-ザ-ディレクトリ
/home/yamada/public_html
のなかに CGI ファイルが置かれます。
よって、ユ-ザ-ディレクトリに置いた test.cgi をブラウザで表示するのと基本的には同じになります。
ブラウザの URL 欄に、
http://v-host.jp/test.cgi
と入力し表示すれば
Hello WORLD!!こんにちは
と表示されるはずです。
うまくいきましたか。

ここまでで、CGI ファイルが実行できるようになりました。
引き続き、Python ファイルが実行できるようにしていきます。


  • Python3 ファイル実行 に進む
  • Apache2 の Web ディレクトリの CGI ファイル表示準備 に戻る
  • CGI プログラムを実行可能にする に戻る
  • phpMyAdmin へのアクセス に戻る
  • phpMyAdmin のインスト-ル に戻る
  • MySQL 接続テスト に戻る
  • MySQL インスト-ル に戻る
  • PHP インスト-ル に戻る
  • ゲストOS(Ubuntu)IPアドレス確認 に戻る
  • 仮想ホストの構成 に戻る
  • /etc/fstab の編集 に戻る
  • ユ-ザ-ごとの公開ディレクトリを用意する に戻る
  • ホスト OS のフォルダと Apache のフォルダの共有 に戻る
  • ホスト OS から localhost でアクセス に戻る
  • 個別パッケ-ジのインスト-ル に戻る
  • VirtualBox Ubuntu 起動時エラ- に戻る
  • カ-テン問題が発生しないようにする に戻る
  • ubuntu インストール中のトラブル対応 に戻る
  • 共有フォルダの設定 に戻る
  • ubuntu 仮想マシン用ツール正解インストール に戻る
  • ubuntu 基本インストール完了 に戻る
  • ubuntu インスト-ル進行 に戻る
  • ubuntu インスト-ルの後半 に戻る
  • VirtualBox 上に仮想マシンを作成 に戻る
  • VirtualBox インスト-ル に戻る
  • 70VPS に戻る