サーバ、というより、パソコン関連はほぼ初学者なので、的外れ、理解不足の部分もあるかとは思いますが、ご助力お願い申し上げます。
cgiを使ってサーバからperlを動かしてみたいのですが、うまく行きません。
環境は
OS:lubuntu
Apache: Apache/2.4.18(Ubuntu)
/ect/apache2/sites-available/0000.conf
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AddHandler cgi-script .cgi .pl <Directory "/var/www/cgi-bin"> AllowOverride None Require all granted #Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Options +ExecCGI -MultiViews +FollowSymLinks Order allow,deny Allow from all </Directory>
/var/www/cgi-bin/test.pl
Perl
1#!/usr/bin/perl 2print "Content-type: text/html\n\n"; 3print "<html>\n"; 4print "<body>\n"; 5print "<h2>Hello World</h2>\n"; 6print "</body>\n"; 7print "</html>\n"; 8exit;
です。
最初、test.plにアクセス出来ることは出来たのですが、
Perlのソースがそのまま表示されてしまったので、
調べたところ、
「cgiのモジュールが読み込まれていないから」
という記述があり、確認したところ、
/etc/apache2/mods-enabled/に、
cgiモジュール(cgi.load?)が存在しなかったので、
/etc/apache2/mods-available/cgi.load
のシンボリックリンクを作成しました。
そうしたら、今度は404 Not Foundになってしまいました。
※追記
ありがとうございます。
参考にして、
sudo a2enmod cgi
を実行していなかったので、これを実行したところ、
進展がありましたが、また分からない部分が出てきてしまいました。
apache2ctlをすると、以下のようなメッセージが出力されてしまいます。
sudo apache2ctl -M|grep cgi
The ScriptAlias directive in /etc/apache2/sites-enabled/0000.conf at line 1 will probably never match because it overlaps an earlier ScriptAlias
cgi_module (shared)
cgid_module (shared)
メッセージ(it overlaps an earlier ScriptAlias)に関しては今調べています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。