Apache

2024 年 7 月 8 日 改訂

Apache は、web サーバーです。ここでは python の CGI スクリプトを動かすために必要な情報を書いています。

Ubuntu では、設定ファイルの本体は /etc/apache2/apache2.conf です。

 

インストール

Ubuntu 20.04 に Apache Web サーバーをインストールする方法

 

CGI 設定

デフォルト:/usr/lib/cgi-bin/ に cgi スクリプトを設定する

CGI モジュールを有効にする。

$ sudo a2enmod cgid

apache2 をリスタートします。

$ sudo systemctl restart apache2

/usr/lib/cgi-bin に index.cgi を保存します。内容は以下です。

#!/usr/bin/python3

print("Content-type: text/html\n")
print("<html>\n<body>")
print("<div>")
print("/usr/lib/cgi-bin CGI Script Test Page")
print("</div>")
print("</body>\n</html>")

ファイルのパーミッションを変更します。

$ sudo chmod 705 index.cgi

動作確認をします。

$ curl localhost/cgi-bin/index.cgi

ブラウザからも確認した方が良いです。以下のアドレスを入力します。xxx は IP アドレスです。

https://xxx.xxx.xxx.xxx/cgi-bin/index.cgi

 

上記デフォルト以外のディレクトリに cgi スクリプトを設定する

ここでは、デフォルトファイル serve-cgi-bin.conf を変更する方法を紹介します。本来はデフォルトファイルを変更すべきではないので、本来は cgi-enabled.confファイルなどを作成して対応すべきですが、うまく動作しなかったです。1. デフォルトを変更する方法

1. デフォルトファイルを変更する方法

/etc/apache2/conf-available/serve-cgi-bin.conf を以下のように変更します。

<IfModule mod_alias.c>
<IfModule mod_cgi.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>

<IfModule mod_cgid.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>

<IfDefine ENABLE_USR_LIB_CGI_BIN>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#<Directory "/usr/lib/cgi-bin">
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
</IfDefine>
</IfModule>
osadm@tk2-211-15231:/etc/apache2/conf-available$

/var/www/cgi-bin に index.cgi を保存します。内容は以下です。

#!/usr/bin/python3

print("Content-type: text/html\n")
print("<html>\n<body>")
print("<div>")
print("/var/www/cgi-bin CGI Script Test Page")
print("</div>")
print("</body>\n</html>")

ファイルのパーミッションを変更します。

$ sudo chmod 705 index.cgi

動作確認をします。

$ curl localhost/cgi-bin/index.cgi

ブラウザからも確認した方が良いです。以下のアドレスを入力します。xxx は IP アドレスです。

https://xxx.xxx.xxx.xxx/cgi-bin/index.cgi

2. デフォルトファイル以外を作成する方法

Apache2: CGI スクリプトを利用する」をご参照ください。

 

リンク

設定ファイル

Ubuntu の Apache設定ファイル

・XX-available 内部にあるファイルへのシンボリックリンクの作成コマンド一覧 (作成コマンドと削除コマンドが逆になってようです)。
・実際の設定ファイルは、xx-available にある。/etc/apache2/conf-enabled というディレクトリ内部にあるファイルが読み込まれるが、これらは conf-available 内部にあるファイルへのシンボリックリンクになっている。
・CentOS と違い、Ubuntu の設定ファイルは /etc/apache2/apache2.conf になっている。

CGI

Apache2: CGI スクリプトを利用する
(2020/5)

Apache2 で cgi を機能させるまで
(2020/7)

cgi ファイルを設置するデフォルト設定は、

/etc/apache2/conf-available/serve-cgi-bin.conf

に記述されている (2024 年 3 月)。

[JQuery] Ajax が使える状態かどうかチェックする方法

python CGI でクエリが取得できない

cgi.FieldStorage() が動くかチェックする。

 

公式ページ

Apache HTTP サーバー バージョン 2.4 ドキュメント