RedHat Linux9でWebサーバーをつくり公開しています。
今度、Perlを使ってCGIプログラムもアップしたいと思っています。しかし、RedHat Linux9でのPerlの設定が分かりません。私の持っている本ではPHPの設定なら載っていたのですが、Perlは載っていません。WEB上で設定方法を探して見たのですが見つかりませんでした。
どなたかPerlの設定方法を教えて下さい。
あと、RedHat Linux9ならPerlは標準で入っていますよね。。どこを見れば分かるのでしょうか。。
No.2
- 回答日時:
CGIが動かないというのであれば、、、
/etc/httpd/conf/httpd.conf に対して。。。
まず、Optionsに ExecCGI Includes 追加します。
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI Includes
<Limit GET POST OPTIONS>
Order allow,deny
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
で、、、下をアンコメントします。
AddHandler cgi-script .cgi
AddHandler send-as-is asis
AddHandler type-map var
AddOutputFilter INCLUDES .shtml
この回答への補足
ありがとうございます!!
上記の処理をしてみました。最後に、/etc/rc.d/init.d/httpd reload
も実行して、再読み込みもしました。
しかし、まだ動かないですーー。
ちなみに、
<Limit GET POST OPTIONS>
Order allow,deny
</Limit>
となっていましたが、
<Limit GET POST OPTIONS>
Order allow,deny
Allow form all
</Limit>
でいいんですよね。
No.3
- 回答日時:
「perlで書かれたCGIを利用したい」ということは理解できました.
CGIスクリプトを /var/www/cgi-bin/ 以下に置けば,何一つ設定をいじらずとも,
http://hogehoge/cgi-bin/harehore.cgi
で,CGIが動作するはずです.
違うことをおやりになりたいのならば,この質問では情報ゼロです.最低でも以下の情報を書いてください.
・CGIを置いたディレクトリ
・ブラウザに入力したURL
・エラーメッセージの正確な内容
この回答への補足
・CGIを置いたディレクトリ
/var/www/cgi-bin/
・ブラウザに入力したURL
http://www.homepage.co.jp/cgi-bin/toi_form/webfo …
・エラーメッセージの正確な内容
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: webform.cgi
If you think this is a server error, please contact the webmaster
Error 500
www.homepage.co.jp
Thu Aug 21 16:04:19 2003
Apache/2.0.40 (Red Hat Linux)
No.4
- 回答日時:
perlの設定につては理解されたのでしょうか?
mod_perl(apacheのモジュール)を使用する場合には、
LoadModule mod_perl /usr/libexec/apache/mod_perl.so
AddModule mod_perl.c
としていしますが、
CGIとして使うなら(つまりコマンドライン版perlを使う場合には)設定は不要です。
最近は、LoadModule指示子の代わりに /etc/httpd/conf.d/perl.confで指定するようです。
何を記述するのかはわかりません。
記述内容まで触れているのはみあたりませんでしたが、'perl.conf'で検索すれば
何件かヒットします。
No.5
- 回答日時:
もし、いろいろいじっていて、それが動作しない原因であればRHL9を再インストールされてはどうでしょうか?
うちの場合、インストールして、No.2 の 手順でhttpd.confを書き換え、lokkit で www(Port80)をあけて、終わりです。それでユーザディレクトリにて動いています。
もちろんフォルダやファイルのパーミッション設定はいりますけどね。
No.6
- 回答日時:
OSの再インストールは不要です.
httpd.confを元に戻せばいいだけだし,うっかりバックアップしてないということなら,最悪でもhttpdのみ再インストールすればいい.
/var/www/cgi-bin 以下なら,httpd.confはいじらなくていいというのはすでに書いたとおり.
これは十中八九,スクリプト側の問題ですね.
いきなり大きなCGIを動かそうとしてるみたいですが,普通は,問題の切り分けのために,簡単なテストスクリプトを動かしてみるものです.
httpd.confを編集前の状態に戻して,httpdを再起動したあと,
-------------------------
#/usr/bin/perl
print<<EOF
Content-type: text/html
<HTML><BODY>CGI works Good.</BODY></HTML>
EOF
-------------------------
という簡単なスクリプトを /ver/www/cgi-bin/ に置いて,chmod 755 して,一応 perl -c で文法チェックして,OKならブラウザでアクセスしてみてください.うまく動けば設定には問題ありません.
> Premature end of script headers
このエラーは改行コードがおかしいときに良くでます.
$ dos2unix webform.cgi
とやって,改行コードを変換してみてください.
それから,これがどこかで配布されているCGIなら,設置方法についてのドキュメントがあるはずです.
関連ファイルの配置やパーミション設定に問題が無いか,良く確かめてください.
この回答への補足
ありがとうございます。httpd.confを元に戻そうとしたのですが、バックアップを取らなかったので、httpdを再インストールしようと思います。
しかし、
rpm -ihv httpd-2.0.40-21.i386.rpm
rpm -ihv indexhtml-9-3.noach.rpm
とやったのですが、インストールされています、というような画面がでていて、
取り合えず処理できるのですが、ファイルが変更されていません。
上書きインストールってどうやるんでしょうか。。
ちなみに、今の状態で、CGI works Good.のcgiプログラムを動かしてみましたが、
先程と同じ状態でした。。
できました。test.cgiはあくまでテストですものね。
(^^;
何度もご回答を頂き、ありがとうございました。
皆さんもありがとうございました!!
No.7
- 回答日時:
すみません.#6のスクリプトに誤植ありです.
#!/usr/bin/perl
print<<EOF;
Content-type: text/html
<HTML><BODY>CGI works Good.</BODY></HTML>
EOF
No.8
- 回答日時:
この際ですから,man を使うことを覚えてください.
$ man rpm
> CGI works Good.のcgiプログラムを動かしてみましたが、
> 先程と同じ状態でした。。
改行コードは大丈夫ですか?
cat -v test.cgi とやって,行末に ^M がついてるようならアウト.dos2unixしましょう.
この回答への補足
別のPCで、同じLinuxをインストールしているものがあり、httpd.confをいじってなかったので、そこからフロッピーでコピーしてきてしまいました。。(^^;
同じことですよね。。
cat -v test.cgi とやったら、^M が一杯、でてきました。ですので、test.cgiがあるカレントディレクトリで、
dos2unix test.cgi とやってみました。(入力としては$はいらないんですよね。。)
すると、^Mがなくなりました。
しかし、WEB上で、
http://www.homepage.co.jp/cgi/web_form/test.cgi
とやりましたが、前回と同じエラー表示でした。
もう、万策尽きましたでしょうか。。
No.9ベストアンサー
- 回答日時:
ほぼゴールが近いので,これで最後にします.
> もう、万策尽きましたでしょうか。。
いいえ.何がおこったかは予想がつきます.
私がこれまでに挙げたチェック項目を再度すべて確認してください.
ヒント:
dos2unixで状態が変化しました.再度あることを行う必要があります
この回答への補足
ほぼゴールが近いのでしょうか?
dos2nuixについて調べてみました。
dos2unixは、MS-DOS形式のテキストファイルをUNIX形式にする。つまり、dos2unix.pl 文字コード(漢字コード)をEUCへ,改行コード(行末コード)を\nへ変換する。
とありました。
前回の時にdos2unix < DOS_FILE >UNIX_FILE
と実行したのでUNIX形式に変わった訳ですよね。
でも、WEBを表示すると、エラーになってしまいましたが。
>再度あることを行う必要があります
とありましたが、それは何でしょうか。。
ちょっと分からないのですが。。教えて頂けると有り難いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- UNIX・Linux Zabbix監視エージェントをインストールしてもデータを収集できずアクティブにならない 1 2023/02/26 20:25
- UNIX・Linux Linux Mint 日本語入力できなくなった 4 2022/05/13 16:15
- その他(SNS・コミュニケーションサービス) discordで通話する際に音声が途切れて聞こえます。 1 2023/02/08 20:25
- UNIX・Linux redhat enterprise Linuxなどの脆弱性の修正が出たときの「エラッタ」というものが 2 2022/04/15 13:44
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cgiファイルのパス指定について
-
EXCELファイルに誰がアクセスし...
-
リダイレクト機能
-
URLに~/cgi-bin/~を隠す方法
-
ラジオボタンのグループ化
-
直リンク用バナーの作り方
-
midi・・・要はhpでbgm鳴...
-
《エクセルVBA》「他の人が該当...
-
LAN内に接続されているPCをリ...
-
ASPから既存のexcelブックを開...
-
SFTPなどは使わないホームペー...
-
CGIが読み書きするデータファイ...
-
ASP(IIS?)のエラーについて
-
CGIでの500エラー
-
CGIの設置が分かりません・・・
-
VBAを使用して、外部サーバのフ...
-
つぼ八 上新庄店の場所。
-
perlからJavascriptを起動
-
メールフォームのCGIでデータが...
-
cgiファイルを直接は見れなくす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
古ーくからフリーのtree.cgi掲...
-
Can't locate R.pm in @INC
-
#!/usr/bin/perl --
-
CGIのEncodeエラーについて
-
#!/usr/local/bin/perlとしたい
-
プロバイダで定められたPerlへ...
-
-T(汚染モード)でメールが送れ...
-
HTTP500内部サーバーエラーと表...
-
SSI(<!--#exec cmd="./XXXpl")...
-
ニフティでメールフォームを使...
-
1日の売上表を作りたいのですけ...
-
sendmailの-fオプション記述
-
コアサーバー(coreserver)でのc...
-
Windows2000上でCGIをテストし...
-
Apache2でSetEnvが動作しない。
-
急にCGIが動作しなくなった。
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
VBAでサーバーにアクセスするに...
おすすめ情報