Ubuntuをインストールした直後のApacheでは、CGIプログラムを実行できる状態になっていません。CGIプログラムを実行可能にするには「cgid」を組み込みます。cgidは、Apacheとは別にCGIプログラムを動作させるためのモジュールです。
a2enmodコマンドを使って、次のようにcgidを有効にします。その後で設定を反映するために、systemctlコマンドでApacheを再起動します。
1 2 |
$ sudo a2enmod cgi $ sudo systemctl restart apache2 |
デフォルトでは、CGIプログラムが動作できるディレクトリーが「/etc/apache2/conf-enabled/serve-cgi-bin.conf」ファイルによって決められています。12行目の「/usr/lib/cgi-bin」がCGIプログラム用のディレクトリーです。その上の行で「ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/」と定義されているので、WebブラウザーからCGIプログラムには「http://Ubuntu ServerのIPアドレス/cgi-bin/CGIプログラムファイル名」でアクセスできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<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/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> </IfDefine> </IfModule> |