• 締切済み

apache利用時に、フルパスを書かないとファイルopenができない?

httpd.confで設定したデフォルトルート直下に、test.plとtest.htmlが存在する状態で、ブラウザで http://localhost/test.pl と打つと、test.plのスクリプト内の open(FILE, "test.html") の部分によってtest.htmlを開く処理が行われるはずなのですが、 「test.htmlがありません。」というようなエラーが出てしまい、ブラウザに実行結果を表示できません。カレントディレクトリは/であると認識しているようです。 test.htmlを絶対パスで記述すれば、開くことができます。 絶対パスを記述しないでtest.htmlを開くにはどのような設定が必要でしょうか? ※動作環境は、CentOS3.8、Apache2.0、perl5.8.0、SeaMonkey1.0.3、mod_perl1.99です。 ※質問内容は、以前perlカテゴリで「フルパスを書かないとファイルopenができない?」 ​http://oshiete1.goo.ne.jp/qa2967916.html と同じですが、内容がapacheの設定に関係しそうなため、こちらのカテゴリに移動させていただきました。

みんなの回答

noname#246547
noname#246547
回答No.1

open(FILE, "./test.html") でだめですかね? 私の環境ではこれでcgiと同一ディレクトリのファイルを相対パスで開けています。

BIGMON
質問者

補足

回答ありがとうございます。 だめでした。。。 Redhat7.2で運用時は動いていたのですが。。。(汗)

関連するQ&A

  • フルパスを書かないとファイルopenができない?

    以前「ファイルOPENできません」という質問をさせていただいた者です。 http://oshiete1.goo.ne.jp/qa2954712.html フルパスを書けば、ファイルOPENできるようになったのですが、フルパスを書かかなくともファイルをOPENできるようにしたいと思っております。いろいろ調べてみたのですが、どうしてもわからなくて困っております。関係ありそうな設定箇所をご存知でしたらお教え願いたく思っております。どうぞ宜しくお願いいたします。 動作環境は、CentOS3.8、Apache2.0、perl5.8.0、SeaMonkey1.0.3、mod_perl1.99です。 httpd.confで設定したデフォルトルート直下に、test.plとtest.htmlが存在します。test.plに以下の一文を追加することにより、test.htmlをOPENさせたいと思っております。 open(FILE, "test.html")

  • ファイルopenができません

    webブラウザから http://localhost/test.pl と打って、perl_CGIを表示させようとしているのですが、どうもtest.plの中で、test.htmlをopenさせるところでエラーとなってしまい、表示できません。Apacheのエラーログでは「システムエラー、test.htmlファイルを開くことができません」としか出力されないし、ブラウザのコンソールでもエラーがでないので、困っております。なぜファイルが開けないのでしょうか???どうぞ宜しくお願いいたします。 【環境】 CentOS3.8、Apache2.0、perl5.8.0、SeaMonkey1.0.3 httpd.confで設定したデフォルトルート直下に、test.plとtest.htmlが存在します。 【その他現状説明】 ・test.html自体をブラウザで表示させることは可能です。 ・test.pl, test.htmlと同じディレクトリにある別のperlプログラム("hello"と出力するような簡単なもの)をブラウザで表示させることは可能です。 ・以前は、test.htmlの中で、「width=100」となっていてエラーがでていたので、「width='100px'」と変えたところブラウザのコンソールからエラーが消えたという経緯があります。

    • ベストアンサー
    • Perl
  • ApacheにおけるPerlのパス

    AN HTTPDだとPerlのパスは無視して実行可能ですが、Apacheで同じような事はできないものでしょうか

  • perlでパスが通らない?

    環境はwindowsXPです。 パスがうまく通っていないようです。perl.exeが入っているファイルへのパスは正常に働いているのに、自分で作ったファイルを置いているC:\documents and settings\user\my document\perlというファイルへのパスがうまくはたらきません(Can't open perl script "test.pl": No such file or directoryと表示されます) コマンドプロンプトで「path」を使ってみても上記のフォルダはちゃんとPathに記述されています(;も入っています)。 何がいけないのでしょうか?

  • mod_perlでファイルが開けない

    拡張子.plをapacheのmod_perl2で動作するようにしました。 printでHTMLタグの出力などはできますが、openすると403になります。その403も、何かよく分からない英文と同時に表示されていました。 httpd.confで.plを普通のCGIで動作させたならopenできたので、mod_perl2を使うとopenできなくなるということまでは分かりました。 openできるようにするためにはどのようなことを試せばよいですか?

  • apache/mod_perlの実行エラーについて

    apacheについて質問です。分かる方、どうぞご教授下さい。 httpd.confにmod_perlの設定を記述しない場合、通常どおりapacheが起動するのですが、以下のようにmod_perlの設定を追記するとapacheがエラーで起動しません。 【mod_perlの設定】 PerlModule ModPerl::Registry PerlRequire /usr/lib/perl5/site_perl/5.8.8/startup.pl <Location /cgi-bin> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader On Options ExecCGI </Location> 【apacheのエラー内容】 /usr/local/apache2/bin/httpd: symbol lookup error: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Apache2/ServerUtil/ServerUtil.so: undefined symbol: ap_get_server_banner httpd.confのmod_perlの設定については、他のサーバーでは問題なく起動していますので、mod_perlのconfigure時の共有ライブラリの設定に不備があるのではと思っているのですがどう設定すればいいのか分かりません。mod_perlのconfigure時のオプションは以下のようになっています。 【mod_perlのconfigure】 perl Makefile.PL \ > MP_USE_STATIC=1 \ > MP_AP_PREFIX=../httpd-2.0.63 \ > MP_AP_CONFIGURE="--prefix=/usr/local/apache2 --with-mpm=prefork" 以下、grep の実行結果です。 [root@colinux mod_perl-2.0.3]# grep -r ap_get_server_banner /usr/lib/* バイナリー・ファイル/usr/lib/httpd/modules/mod_rewrite.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_connect.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_ftp.soは一致しました どんな些細なことでも結構ですので、どうかご教授のほど宜しくお願い致します。 【環境】 fedora6 apache2.0.63 mod_perl2.0.4

  • Apacheのテストページ

    初歩的な質問で恐縮ですが、 Apache2.2をインストールしてドキュメントルートにファイルを何も置いていない状態でブラウザでアクセスするとテストページが表示されると思います。 これはリダイレクトされているものと思うのですが、httpd.confの中で設定されているのでしょうか? また、テストページの内容のファイルはどこにあるのでしょうか? ご存知の方、よろしくお願いします。

  • apacheがうまく動きません

    お世話になります。自宅のPCにRedHat8.0をインストールしたのですが、 httpdを起動してブラウザからhttp://localhostとしても 何度やってもForbiddenとなります。これはアクセス権がないという 意味なのでしょうか?(rootで作業しています) うまくいかないので一度、rmp -ev apache apacheconf などモジュールごとアンインストールしました。(rmp -e apacheではパッケージがインストールされていないとでるため) その後、apache1.3.27最新版をダウンロード。make installでインストール成功 とでた後、再びブラウザからhttp://localhostとすると一度だけ apacheのテスト画面がでました。がその後はForbiddenとなります。 これはhttpd.confの設定がわるいのでしょか?http.confはひとつだけです。 ドメインを取得したのでその設定をほどこしたからでしょうか? 基本的な記述以外はいじっておりません。 よろしくお願いいたします。

  • apacheの起動について教えてください。

    こんばんわ。よろしくお願いします。 「Perl CGI入門学習」というタイトルの本を買ったのですが、はじめにアパッチをインストールすると書いてあったので説明どおりに (1)付属ソフトで「Active perl」のインストールをしました。次に (2)「Apache」のインストール」を終了しました。 (3)そして「Httpd.conf」をメモ帳で書いてある通りに修正して上書きをしました。何回も確かめたので間違いありません。 すべて終わったのでちゃんとできているかテストしました。そのテストの内容はこう書かれています。 「次に、起動したApacheにアクセスしてみます。それにはWebブラウザを起動して、アドレスにhttp://127.0.0.1/を指定してください。次のように指示されたら、Apacheのセットアップはとりあえず成功しています。」 と書いてあったのでそのままのようにしました。 でも、なぜか何回もしても「ページを表示できません」とかしか出ません。 本当はApache専用のページが出るはずなのです。 もう一度やり直しでインストールをしたのですがやっぱりできません。メモ帳簿の修正も絶対に間違っていません。  なんでできないのでしょうか?パソコンの環境などありますか?   申し訳ありませんが詳しい方教えてください! よろしくお願いします。

    • ベストアンサー
    • Perl
  • ActivePerlをインストールしたいんですが、Apacheを使っています。

    サーバはApache1.3.24です。ActivePerl5.6.1をインストールしたいのですが、全然分かりません。pathとかの設定は必要なんですか?また、どのように、実行するとか、どこに、perlのプログラムを保存するとか、分かりません。 1通り、分からないのですが。。。教えて下さい。良いホームページでもいいです。自分では、良いホームページを見つけることができませんでした。 基本的なことは分かっていますが、perlは全然知らないので。。お願いします。httpd.confとかも設定するのですか?

    • ベストアンサー
    • Perl