質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

3回答

439閲覧

CGIによるperlプログラムの実行

退会済みユーザー

退会済みユーザー

総合スコア0

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

1クリップ

投稿2018/04/20 13:22

編集2018/04/21 09:45

サーバ、というより、パソコン関連はほぼ初学者なので、的外れ、理解不足の部分もあるかとは思いますが、ご助力お願い申し上げます。

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)に関しては今調べています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

apacheの日本語ドキュメントを読んで、
test.plをデフォルトのcgi-binのScriptAliasディレクティブに配置しました。
ScriptAliasディレクティブはconf-available/serve-cgi-bin.confに記述されていました。
そうしたら、CGIが動作したので、とりあえずここで妥協しました(ドキュメントがcentOS向けだったので)

投稿2018/04/29 04:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

つsudo a2enmod cgi

投稿2018/04/20 20:54

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

apache再起動してないとか。

投稿2018/04/20 16:50

py4s-tnk

総合スコア201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問