Optionsは、指定のディレクトリに、特定の機能を付与するディレクティブ。
core - Apache HTTP サーバ バージョン 2.4
特定のディレクトリでCGIを実行する(Option, AddHandler) - CGIの利用 - Apache入門
基本的には、ScriptAliasで指定したディレクトリはCGIを実行できる。
ただし、「そうでない」ディレクトリでも「.cgiの拡張子など」であればCGIを実行したい場合もあるだろう。
OptionsでExecCGIを指定し、AddHandlerでcgi-scriptの実行拡張子として".cgi"などを追加すれば、CGIを実行できる。
(「」を付けたところをこれまで勘違いしてて、ScriptAliasと一緒に使うわけじゃない。あくまでそうでないディレクトリに対して。)
Alias /local "/usr/local/www" <Directory "/usr/local/www"> Require all granted </Directory>
Alias(ScriptAliasではない)で/localを指定する。
/usr/local/wwwの下にtest.cgiを作成し、
#!/usr/bin/perl # ヒアドキュメントでテスト用CGIを書く. $text = <<END; # ENDの前まで格納する. Content-Type: text/html <html> <head> <title> TestCGI2 </title> </head> <body> TestCGI2 </body> </html> END # $textの出力. print $text; # $textを出力.
こう書く。
当然、ScriptAliasではないのでテキストとして表示されてしまう。
Alias /local "/usr/local/www" <Directory "/usr/local/www"> Options ExecCGI AddHandler cgi-script .cgi Require all granted </Directory>
Options ExecCGIとAddHandler cgi-scriptで.cgiを指定。