Apacheでドキュメントルート化でCGIを実行できるようにする設定
UbuntuのApacheでドキュメントルート化でCGIを実行できるようにする設定の解説です。
UbuntuのApacheの設定ではCGIを利用するためのmod_cgidを有効にすることを行っても「/usr/lib/cgi-bin/」以下でしかCGIを実行することができません。
これは、セキュアですが、すでに作成されているCGIアプリケーションの多くは、ドキュメントルート下で動くことが求められるでしょう。
新規にPerlでWebシステム開発を行う場合は、セキュリティ、開発効率、リアルタイムWeb、クラウドサーバーなどを総合的に考慮して、リバースプロキシ運用をお勧めします。
ドキュメントルート下でCGIを実行するためのApacheの設定ファイル
ドキュメントルート下でCGIを実行のためのApacheの設定ファイルです。デフォルトのバーチャルホストの中で運用することを想定しています。
デフォルトのバーチャルホストは、最初に読み込まれる必要があるために「000-default.conf」のように、前に「000」を付けるなどして、最初に読み込まれるファイル名にする必要があることに注意してください。
<VirtualHost *:80> ServerName www.mydomain.example DocumentRoot "/var/www/html" AddHandler cgi-script .cgi <Directory /var/www/html> Options +ExecCGI </Directory> </VirtualHost>
HTTPSで運用する
CGIプログラムをHTTPSで運用したい場合は以下の記事でSSL証明書の設定方法を解説しています。
ユーザーPerlでCGIプログラムを実行する
システムPerlではなく、ユーザーPerlでプログラムを実行したい場合は、以下の記事を参考にしてください。