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

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

ただいまの
回答率

90.34%

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

受付中

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,820
退会済みユーザー

退会済みユーザー

サーバー構築をしていて、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つ検証を行っていこうと思います。
何か分かり次第再度追記いたします。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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


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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

的外れだったらごめんなさい。
http://OOO.jp/cgi-bin/にアクセスをすると、 
とありますが、
http://OOO.jp/cgi-bin/test.pl
にアクセスすべきではないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/19 16:40

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

    キャンセル

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 12:23

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

    キャンセル

  • 2015/10/22 12:36

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

    キャンセル

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」で指定しているファイルがないからじゃないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る