ubuntu上のapacheでCGI(Perl)を動かす。

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(": …

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です