CGIの実行環境
静的サイトの作成で設置した「peconet.localsite」をドキュメントルートとした設定を行っています。
はじめに
Ubuntuにおいてはデフォルトでインストールされていますが、Perlを確認できなければインストールします。
$ perl -v
インストールされていれば以下のような表示がされます。
This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux-gnu-thread-multi (with 44 registered patches, see perl -V for more detail) Copyright 1987-2023, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at https://www.perl.org/, the Perl Home Page.
Perlのバージョンが確認できなければインストールします。
$ sudo apt install perl
Perlのパスの確認
peconet@Ubuntu-V:~$ which perl /usr/bin/perl
Apacheへ設定する
「http://peconet.localsite/」でCGIを実行できるように設定します。
$ sudo a2enmod cgid
CGIモジュールを有効化すると「/usr/lib/cgi-bin/」配下でCGIが実行できるようになります。(その設定は/etc/apache2/conf-available/serve-cgi-bin.confに記述されています)これを「/var/www/peconet.localsite/」配下でも実行できるように設定する。
ここでは設定ファイル「/etc/apache2/conf-available/peconet-cgi.conf」を新規作成する。
$ sudo vim /etc/apache2/conf-available/peconet-cgi.conf
新規作成したファイルに以下のように記述して保存して閉じる。
※ その他のスクリプトを使う場合「AddHandler」に「.py」や「.rb」なども追加。
<Directory /var/www/peconet.localsite> Options +ExecCGI AddHandler cgi-script .cgi .pl </Directory>
新規作成した設定ファイルを有効化する。
$ sudo a2enconf peconet-cgi.conf
さらに
/etc/apache2/sites-available/peconet.localsite.confに
<Directory /var/www/peconet.localsite> Options +ExecCGI </Directory>
を記述する。
Apacheを再起動する。
$ sudo systemctl restart apache2
CGIの動作確認
Perlのサンプルファイルを作成
簡単なPerlプログラムを記述してブラウザでアクセスして動作確認します。
サンプルファイル「perl-test.pl」をドキュメントルートに新規作成します。
$ sudo vim /var/www/peconet.localsite/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</code>
ブラウザで動作確認
ブラウザで「http://peconet.localsite/perl-test.pl」にアクセスして動作を確認します。
Internal Server Error(500)が出た場合
#!/usr/bin/perl -- print "Content-type: text/html \n\n\n"; print "<h1>Peconet.Localsite</h1>"; print "<h2>Hello..Perl is Working!!</h2>";
これはダウンロードしたPerlプログラムなどもそうですが、1行目を
#!/usr/bin/perl --
こうすると動作することが多い