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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

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

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

5回答

11546閲覧

サーバー構築 CGI perlがブラウザで動かない?

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

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

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2015/10/19 06:58

編集2015/11/08 12:44

サーバー構築をしていて、perlをブラウザで動かしたいのですがうまくいきません。
状況としては、
/var/www/cgi-bin/test.plを作成。
コマンドラインで/var/www/cgi-bin/test.plを実行すると、
test.plの内容は表示。
しかし、ブラウザでhttp://OOO.jp/cgi-bin/test.plにアクセスすると、
『Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.』

http://OOO.jp/cgi-bin/にアクセスをすると、
『Forbidden
You don't have permission to access /cgi-bin/ on this server.』

と表示されます。

【前提として】
・最初に友人がapatheの設定をしてくれたようで、途中からバトンタッチ。

【環境】
・centOS7
・apache2.4.6
・perl関連はyumにてインストール済み

【httpd.confの内容】
・ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory />※コメントアウトしてない部分のみです!
AllowOverride none
Require all denied
・ #<Directory "/var/www/html">
#AllowOverride None
#Require all granted
#Options ExecCGI
・<Directory "/var/www/html">※なぜか二つ目が存在。
Options Includes ExecCGI FollowSymLinks
AllowOverride All
AddHandler cgi-script .cgi .pl
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm index.cgi
・<Files ".ht*">
Require all denied
・<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
<IfModule mime_module>
AddHandler cgi-script .cgi .pl

・cgi-binはdrwxr-xr-x
・test.plは-rwxr-xr-x

かなりはまってしまいました。
もしご教授頂ける方がいらしましたらお願いいたします。

=========================================
追記 2015.11.8

皆様多数のご回答ありがとうございます!
遅れてしまい申し訳ございません!!
こんなにも早く回答をいただけると思っておりませんでした(前回質問した際はかなり時間がかかったので、そういったゆったりしたところだと思っていました・・)

さて、質問についてなのですが、
取り急ぎ皆様にお詫びを入れようと思いました。

これから1つ1つ検証を行っていこうと思います。
何か分かり次第再度追記いたします。

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

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

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

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

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

guest

回答5

0

error_logには何と出力されていますか?おそらくそこに原因の手がかりがあります。

投稿2015/10/19 12:56

otn

総合スコア84505

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

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

0

しかし、ブラウザでhttp://OOO.jp/cgi-bin/test.plにアクセスすると、
『Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your requ>est.』

内部エラーとのことで、perlが正常に動作していないことも考えられます。
perlはインストールされているか?perlのコードは間違っていないか?でしょうか?
実際のtest.plの内容を提示してもらえば何かわかるかもしれません。

念の為、デフォルトではmod_cgiは有効になっていますが、コメントアウトしていませんか?
(「※コメントアウトしてない部分のみです!」の表記が気になっています)
LoadModule cgi_module modules/mod_cgi.so

http://OOO.jp/cgi-bin/にアクセスをすると、
『Forbidden
You don't have permission to access /cgi-bin/ on this server.』

DirectoryIndex index.html index.php index.htm index.cgi

cgi-bin 以下に「DirectoryIndex」で指定しているファイルがないからじゃないでしょうか?

投稿2015/10/22 03:09

over

総合スコア4309

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

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

0

記載されているhttpd.confを見ると
・<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
となっており、/var/www/cgi-bin内でのcgi実行を禁止されているようです
・<Directory "/var/www/cgi-bin">
Options FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
としてください。
あと、実行するperlファイルはapacheの実行ユーザでユーザ、オーナー権限を与えてください
apacheユーザで動かすなら
chown apache.apache test.pl
です。
今の設定なら、/var/www/html配下でperlを動かす設定となっています

あと設定ファイルを変更したら
systemctl restart httpd
でapacheを再起動してください

投稿2015/10/22 03:02

編集2015/10/22 03:06
hide0527

総合スコア144

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

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

TaichiYanagiya

2015/10/22 03:23

ScriptAlias で許可されていると思います。
hide0527

2015/10/22 03:36

ごめんなさい、確かにScriptAlias設定されていますね 該当箇所しか見ていませんでした
guest

0

的外れだったらごめんなさい。

http://OOO.jp/cgi-bin/にアクセスをすると、

とありますが、
http://OOO.jp/cgi-bin/**test.pl**
にアクセスすべきではないですか?

投稿2015/10/19 07:39

notable

総合スコア415

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

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

notable

2015/10/19 07:40

すみません… その前の文章を飛ばしてしまってました… 無視してください…orz
guest

0

Perlスクリプトの1行目は正しく記載されていますか?
#!/usr/local/bin/perlとなっている場合、コマンドラインで/usr/local/bin/perl -vが実行できればOKです。

上記で問題ない場合は、下記参考リンクもご参照ください。

参考リンク:
「500 Internal Server Error」の原因と解決方法 - CMS「すぐ使えるCGI」

投稿2015/10/19 07:18

argius

総合スコア9388

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問