ubuntu、apache、Perlのバージョンは以下です。
ubuntu 18.04 LTS + Apache 2.4.29 + perl 5, version 26
■手順
1.rootにスイッチ
$ su –
2./etc/apache2/conf-available 配下に移動。
# cd /etc/apache2/conf-available
3.cgi-enabled.conf を conf-available の下に新規作成する(cgi-enabled.confとしているが名前はなんでもよい)。
# touch cgi-enabled.conf
# vi cgi-enabled.conf (中身は以下)
==============================
#拡張子 がcgi、および、 pl であるものを CGI として扱います
<Directory "/var/www/html"> (ドキュメントルートにあわせること)
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
(cgi-enabled.confを保存する。)
==============================
4.cgi-enabled を有効にする。
# a2enconf cgi-enabled
5.CGIモジュールを有効にする。
# a2enmod cgi
6.apacheを再起動する。
/etc/init.d/apache2 restart
これで完了。
ちなみに、perl 5, version 26 だとapacheで以下のエラーとなってしまった。
Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at ./lib/jcode.pl line …
この場合は、jcode.plを以下のようになおす。
(2箇所あります。有名な話題らしくネットで検索すると同じ話題が見つかります。)
修正前:&init_z2h_euc unless defined %z2h_euc;
修正後:&init_z2h_euc unless defined $z2h_euc_inited;
修正前:&init_z2h_sjis unless defined %z2h_sjis;
修正後:&init_z2h_sjis unless defined $z2h_sjis_inited;
※jcode.plにもバージョンがあるので、新しいものを使用する。
※古いものを使うと上記の修正をしてもエラーなってしまいます(以下)。
syntax error at ./lib/jcode.pl line 299, near "do convf(": …