CGIの実行環境(Ubuntu)
マルチドメイン化(VirtualHost)2に続き、当サイト(peconet.org)のローカルテスト環境も作りました。当サイトはメールフォームにPerl CGIを利用していますのでローカルテスト環境においてもCGIを有効化します。
※「peconet.localsite」をドキュメントルートとした設定を行っています。
最初に…
Ubuntu 20.04 LTSにおいては、Perlはデフォルトでインストールされていますが、確認できなければインストールします。
$ perl -v
Perlのバージョンが確認できなければインストールします。
$ sudo apt install perl
Perlのインストール
$ which perl
Perlのパスの確認
Apacheへ設定する
ローカルテスト環境「http://peconet.localsite/」でCGIを実行できるように設定します。
$ sudo a2enmod cgid
CGIモジュールを有効化します。
- CGIモジュールを有効化すると「/usr/lib/cgi-bin」配下でCGIが実行できるようになります。
- その設定は「/etc/apache2/conf-available/serve-cgi-bin.conf」に記述されています。
$ sudo vim /etc/apache2/conf-available/peconet-cgi.conf
ここでは、
設定ファイル「/etc/apache2/conf-available/peconet-cgi.conf」を新規作成します。
<Directory /var/www/peconet.localsite>
Options ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
この内容を記述します。
※ その他のスクリプトを使う場合「AddHandler」に「.py」や「.rb」なども追加します。
$ sudo a2enconf peconet-cgi
設定ファイルの有効化
サイトの設定ファイルへの記述
<Directory /var/www/peconet.localsite>
Options ExecCGI
</Directory>
<Directory /var/www/peconet.localsite>
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
Require all granted
</Directory>
サイトの設定ファイル「/etc/apache2/sites-available/peconet.localsite.conf」にも記述。ふたつ表示されてますが、下は他のページで.htaccessの有効化を行っている場合からの追記(赤文字部分が追記部分)
$ sudo systemctl restart apache2
Apacheの再起動
Perlのサンプルファイルを作成
簡単なPerlプログラムを記述してブラウザでアクセスして動作確認します。
$ sudo vim /var/www/peconet.localsite/perl-test.pl
サンプルファイル「perl-test.pl」をドキュメントルートに新規作成します。
#!/usr/bin/perl
print "Content-type: text/html \n\n\n";
print "<h1>Peconet.Localsite</h1>";
print "<h2>Hello..Perl is Working!!</h2>";
記述内容
$ sudo chmod 775 /var/www/peconet.localsite/perl-test.pl
パーミッションの変更