- PR -

RedHat9にperlをインストールしたい

1
投稿者投稿内容
MS-06R-2
常連さん
会議室デビュー日: 2004/01/17
投稿数: 45
投稿日時: 2004-01-21 13:07
RedHat9にperlをインストールしたいです。
RedHat社の[ダウンロード]には、perl関連のRPMが多数あって
どれを選択したらいいのか分かりません。
他にもhttpd.confやperl.confなどを修正する必要があるので
したら教えてください。

ちなみに現在のドキュメントルートは、/var/www/htmlです。
cgi-binの場所は、/var/www/cgi-binです。

Linux初心者です。
一度理解してしまえば笑える話ですが、手元に資料がないので
よろしくお願い致します。
MAVERICK
会議室デビュー日: 2003/10/01
投稿数: 17
お住まい・勤務地: 東京都
投稿日時: 2004-01-21 13:42
MAVERICK と申します。

perl って、スクリプト言語(?)の perl ですよね。
たいていの場合 OS と一緒にインストールされてるかと思いますが・・・

シェル上で
コード:
% whereis perl


を実行してみて
コード:
perl: /usr/bin/perl


というように、パスが表示されたらインストールされていると思います。


引用:

他にもhttpd.confやperl.confなどを修正する必要があるので
したら教えてください。

ちなみに現在のドキュメントルートは、/var/www/htmlです。
cgi-binの場所は、/var/www/cgi-binです。


ということは、”Apache を立てて、CGIで何かする”ということですね。
であれば、
http://www.atmarkit.co.jp/flinux/rensai/apache05/apache05a.html
http://www2h.biglobe.ne.jp/~hnakamur/technolab/linux/other/www.htm
あたりが参考になるかと思います。
基本的には httpd.conf を修正しなくても動きますが、
httpd.conf の中の
コード:
#ServerName localhost


行についている「#」を消してください。
あと、これは CGI スクリプトに付ける拡張子にもよりますが、
コード:
AddHandler cgi-script .cgi


の部分を
コード:
AddHandler cgi-script .cgi .pl


のように、必要に応じて変更してください。


それから、perl で書かれる CGI スクリプトの先頭に
コード:
#! /usr/bin/perl


と書かれた部分があると思うので、そこの部分を
コード:
% whereis perl


で表示されたパスに書き換えてください。
あと、できあがったスクリプト(例:test.pl)に実行権限を与えないといけないので、
コード:
% chmod 755 test.pl


というようにして実行権限を与えてあげてください。
実行権限の確認方法は
コード:
% ls -l


で、
コード:

-rwxr-xr-x 1 user user 2185 5月 15日 2002年 test.pl


というように、アクセス権のところに「x」が表示されていればOKです。


では。

[ メッセージ編集済み 編集者: MAVERICK 編集日時 2004-01-21 14:48 ]
MS-06R-2
常連さん
会議室デビュー日: 2004/01/17
投稿数: 45
投稿日時: 2004-01-21 16:44
MAVERICKさん 回答して頂きありがとうございます。
早速ためしてみました。

コマンドプロンプトより
% whereis perl と入力しました。すると...
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz と表示
されました。ですので、perlは既にインストール済である事は分かり
ましたが、気になるのは /usr/share/man/man1/perl.1.gz です。
この件について知っておられますか?

未だ解決できていない問題があるのですが、ドキュメントルートに
設置しているindex.htmlは Windows PC の IE で表示できるので
すが、cgi ファイルは呼び出す事ができませんでした。
httpd.conf の修正箇所として、AddHandler cgi-script .cgi .pl
は、# を外してあります。
<Directory "var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
上記の構文も#の設定はしていません。

ドキュメントルート: /var/www/html → ここにindex.html設置
cgi-binの場所: /var/www/cgi-bin → 〃 test.cgi設置

Windows PC から呼び出しの例
index.htmlの場合、http://192.168.0.1/index.html → ○
test.cgiの場合、 http://192.168.0.1/cgi-bin/test.cgi → ×

以上のような状況です。
どなたか手助けお願い致します。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-01-21 17:19
>この件について知っておられますか?

それ、 man perl と叩いて出るオンライン・マニュアルの内容を gz で固めた
ものでしょう。Perl 自身を実行するのに無くてはならないというものでもありませんな。
MAVERICK
会議室デビュー日: 2003/10/01
投稿数: 17
お住まい・勤務地: 東京都
投稿日時: 2004-01-21 18:05
MAVERICK です。

引用:

MS-06R-2さんの書き込み (2004-01-21 16:44) より:
未だ解決できていない問題があるのですが、ドキュメントルートに
設置しているindex.htmlは Windows PC の IE で表示できるので
すが、cgi ファイルは呼び出す事ができませんでした。


cgi にアクセスしたときに表示されたメッセージと、
apache のエラーログの該当する部分のメッセージを
掲示して頂けると、的確な回答ができるかも。
ログファイルは、手元に RedHat な環境がないので
うろ覚えなのですが、/var/log/httpd/error.log
だったかと思います。

あと、たまに、IE のキャッシュに騙されることがあるので、
そのあたりの確認をした方がいいと思います。(経験談

では。

[ メッセージ編集済み 編集者: MAVERICK 編集日時 2004-01-21 18:19 ]
MS-06R-2
常連さん
会議室デビュー日: 2004/01/17
投稿数: 45
投稿日時: 2004-01-21 19:44
CGI ファイルを EUC で作成していなかった為、HTTPエラーコード
Error 400 が出ていました。

EUC モードでエディタを開きテスト用の CGI を作成すると正常に
動作しました。

皆様( MAVERICKさん )の助言ありがとうござしました。

ただ、通常の CRLF で作成した CGI が Error 400 を吐くのは
なぜなんでしょうか?
疑問が残ります。
MAVERICK
会議室デビュー日: 2003/10/01
投稿数: 17
お住まい・勤務地: 東京都
投稿日時: 2004-01-21 20:29
MAVERICK です。

引用:

MS-06R-2さんの書き込み (2004-01-21 19:44) より:
CGI ファイルを EUC で作成していなかった為、HTTPエラーコード
Error 400 が出ていました。

EUC モードでエディタを開きテスト用の CGI を作成すると正常に
動作しました。

皆様( MAVERICKさん )の助言ありがとうござしました。

ただ、通常の CRLF で作成した CGI が Error 400 を吐くのは
なぜなんでしょうか?
疑問が残ります。


これは、文字コードというより改行コードが悪さしてますね。
UNIX では、基本的に改行コードは「LF」のみですので、
余計なコードが入っているとエラーになっちゃいます。

だけど、「Error 400」っていうのは、おかしいなぁ。
ふつう、この手のエラーは「Error 500」になるはずだけど・・・

では。

[ メッセージ編集済み 編集者: MAVERICK 編集日時 2004-01-21 20:30 ]
MS-06R-2
常連さん
会議室デビュー日: 2004/01/17
投稿数: 45
投稿日時: 2004-01-22 09:05
MS-06R-2です。

HTTPエラーは、400 ではなく 500 (タイプミス)でした。

EUCの件について回答して頂きありがとうございました。
よく理解できました。

では
1

スキルアップ/キャリアアップ(JOB@IT)