====== CGIの実行環境 ======
[[ubuntu:server:site|静的サイトの作成]]で設置した「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」なども追加。
Options +ExecCGI
AddHandler cgi-script .cgi .pl
\\
新規作成した設定ファイルを有効化する。
$ sudo a2enconf peconet-cgi.conf
==== さらに ====
/etc/apache2/sites-available/peconet.localsite.confに
Options +ExecCGI
を記述する。
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 "Peconet.Localsite
";
print "Hello..Perl is Working!!
";
\\
新規作成したファイルのパーミッションを変更します。
$ sudo chmod 775 /var/www/peconet.localsite/perl-test.pl\\
==== ブラウザで動作確認 ====
ブラウザで「http://peconet.localsite/perl-test.pl」にアクセスして動作を確認します。\\
{{:ubuntu:server:perl-test.png?400|}}\\
サンプルファイルの出力結果が表示され動作確認がとれました。
\\
**Internal Server Error(500)が出た場合**
#!/usr/bin/perl --
print "Content-type: text/html \n\n\n";
print "Peconet.Localsite
";
print "Hello..Perl is Working!!
";
これはダウンロードしたPerlプログラムなどもそうですが、1行目を
#!/usr/bin/perl --
こうすると動作することが多い