mod_perlとディレクトリ

このQ&Aのポイント
  • Aliasをコメントアウトしてhttp://localhost/a/にアクセスするとmod_perl/2.0.2と表示されるが、Aliasを有効化するとmod_perlで動作しない
  • <Location /a>を<Location />に変更するとcgi以外が正しく動作しない
  • mod_perlで特定のディレクトリの下にあるように動作したい
回答を見る
  • ベストアンサー

mod_perlとディレクトリ

以下のhttpd.confでAliasをコメントアウトして、 http://localhost/a/にアクセスすると、 Perlの【$ENV{MOD_PERL}】の部分が【mod_perl/2.0.2】と表示されますが Alias / c:/usr/Apache2/VirtualHost/mylink-info/public_html/a/ を有効にして、 http://localhost/にアクセスすると、 Perlの【$ENV{MOD_PERL}】の部分が【】となり、どうもmod_perlで動作していないです。 そうかといって、 <Location /a>を<Location />として全体をmod_perlすると sample.htmlなど cgi以外が正しく動作しないので、困っています。 mod_perlで動作するのは特定のディレクトリ(例えば /cgi-bin)の下限定として、 アクセス時に http://localhost/のようにあたかもpublic_htmlの下にあるように動作したいです。 #Alias / c:/usr/Apache2/VirtualHost/mylink-info/public_html/a/ #=== conf/httpd.conf ( mod_perl 2.x ) <IfModule mod_perl.c> LoadFile "C:/usr/local/bin/perl58.dll" PerlRequire "C:/usr/Apache2/conf/startup.pl" <Location /a> PerlSendHeader On SetHandler perl-script PerlResponseHandler ModPerl::PerlRun #PerlHandler Apache::Registry Options +ExecCGI PerlOptions +ParseHeaders Allow from all </Location> </IfModule>

  • pone1
  • お礼率14% (9/62)
  • Perl
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

<Location ~> ではなく <Files ~> でやったらどうなりますかね? (自分は試してないので) <Files ~ "\.cgi$"> ~ </Files>

関連するQ&A

  • MOD_PERL2.0の起動の仕方について

    以下のキーワードをDOS窓で入力して ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd mod_perl.so(Mod_perlモジュール)をインストールしました。 そして、httpd.confに以下のコマンドを追加して、extra.plをhttpd.confと同じフォルダに置き ##Mod_perl## LoadFile "C:/usr/local/bin/perl58.dll" LoadModule perl_module modules/mod_perl.so PerlRequire "C:/Program Files/Apache2/conf/extra.pl" #Alias /perl/ "/Apache2/perl/" <Location /perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders </Location> ##Mod_perl## Apacheを起動してもDOS窓は、画面に何もコメントを表示しないまま閉じてしまいます。 Mod_perlモジュールをインストールしてから、Apacheを起動するには一体どの様にすれば 宜しいかどうか教えて下さい。 ちなみに私は以下URLを参照しました。 ホームサーバの構成 http://eazyfox.homelinux.org/etc/serverspec.htm Mod_perl2.0のWin32の説明 http://perl.apache.org/docs/2.0/os/win32/config.html extra.plの内容も上の両ページに書かれている内容を埋め込んでやってみましたがどちらも結果は同様です。 どうかご教授宜しくお願いします。

    • ベストアンサー
    • Perl
  • mod_perlで動作していることを画面上に表示させたい。

    Apache2(Win)でmod_perlをインストールをして、VirtualHostを使っております。 aサイトでは、mod_perlなし bサイトでは、mod_perlあり アクセスして早くなった感じはあまりしませんが、 mod_perlで正しく動作しているという確認をしたいのですが、わかる方法はありますか?

    • ベストアンサー
    • Perl
  • Cのソースをapacheがコンパイル

    httpd.confに<IfModule mod_alias.c>などと書いてありますが、これらはCのソースですよね? apacheがmod_alias.cを見つけることができたらapacheが起動時にデフォルトコンパイラを使ってコンパイルするという意味なんでしょうか? <IfModule mod_alias.exe>や<IfModule mod_alias.dll>であれば何の疑問もありません。

  • 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

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

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

  • WebDAVの設定について

    お世話になっております。 Windows7+Apache2.2で、 PC内に、dav.example.comというサイトを立ち上げて、 WebDAVの設定を勉強中です。 同じPCのWindowsエクスプローラのネットワーク接続で、 http://dav.example.com/dav だと接続できるのですが、 https://dav.example.com/dav だと接続できません。 Apacheのログからは、以下のとおり401ではじかれています。 192.168.95.131 - - [12/May/2017:21:28:20 +0900] "OPTIONS / HTTP/1.1" 200 - 192.168.95.131 - - [12/May/2017:21:28:20 +0900] "PROPFIND /dav HTTP/1.1" 401 401 以下、httpd.confのVertualHostの部分です。 80のWebDAV設定をそのまま443にコピーしているのですが、うまくいきません。 WebDAVに詳しい方、解決のヒントでもいただければ助かります。 Listen 80 NameVirtualHost *:80 <VirtualHost *:80> ServerName dav.example.com:80 DocumentRoot "C:/Apache2.2/htdocs_example" ErrorLog "C:\Apache2.2\logs\example\error.log" TransferLog "C:\Apache2.2\logs\example\access.log" <IfModule mod_dav_fs.c> DavLockDB logs/DavLock </IfModule> Alias /dav "C:\Apache2.2\htdocs_example\webDAV" <IfModule mod_dav.c> DAVMinTimeout 600 <Location /dav> DAV On AuthType Digest AuthName "DAV" AuthUserFile "C:\Apache2.2\conf\.htdigest" Require valid-user Order deny,allow Allow from all </Location> </IfModule> </VirtualHost> AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog exec:C:\Apache2.2\conf\extra\ssl_pass.bat SSLSessionCache "shmcb:C:/Apache2.2/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex default Listen 443 NameVirtualHost *:443 <VirtualHost *:443> ServerName dav.example.com:80 DocumentRoot "C:/Apache2.2/htdocs_example" ErrorLog "C:\Apache2.2\logs\example\error.log" TransferLog "C:\Apache2.2\logs\example\access.log" <IfModule mod_dav_fs.c> DavLockDB logs/DavLock </IfModule> Alias /dav "C:\Apache2.2\htdocs_example\webDAV" <IfModule mod_dav.c> DAVMinTimeout 600 <Location /dav> DAV On AuthType Digest AuthName "DAV" AuthUserFile "C:\Apache2.2\conf\.htdigest" Require valid-user Order deny,allow Allow from all </Location> </IfModule> Include conf/extra/ssl/ssl-dav.example.conf </VirtualHost> 以上です。 よろしくお願いします。

  • apache VirtualHostが実行されない

    Apache設定初心者です。 httpd.conf で <VirtualHost> 内の DocumentRoot が表示されなくて困っています。 https://111.112.113.114 を実行すると DocumentRoot が /home/httpd/hoge/err/httpdocs となってしまいます(VirtualHost内の DocumentRoot が実行されない) よろしくお願いします。 【記述内容】 NameVirtualHost 111.112.113.114:80 NameVirtualHost 111.112.113.114:443 DocumentRoot /home/httpd/hoge/err/httpdocs <IfModule mod_ssl.c> <VirtualHost 111.112.113.114:443> ServerName hoge.co.jp:443 ServerAlias www.hoge.co.jp UseCanonicalName Off SuexecUserGroup use01grp01 DocumentRoot /home/httpd/hoge/httpdocs ErrorLog /usr/hoge/logs/error ScriptAlias /hoge-bin/ /usr/hoge-bin/ Alias /hoge1 /usr/hoge1/ Alias /hoge2 /use/hoge2 SSLEngine on SSLVerifyClient none SSLCertificateFile /usr/hoge/ctr/hoge.ctr </VirtualHost> </IfModule>

  • mod_jkがうまく動かない

    mod_jk がうまく動かずに困っています。 Apache : 2.0.53 Tomcat : 4.1.31 mod_jk : jk1.2 Tomcat単体(8080接続)では問題なく動きます。 mod_jkの設定は以前4.1.12を構築したのを真似して作りました。 LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile /usr/local/tomcat/conf/workers.properties JkLogFile /usr/local/apache2/logs/mod_jk.log JkLogLevel debug JkMount /*.jsp ajp13 JkMount /examples/servlet/* ajp13 </IfModule> Alias /examples "/usr/local/tomcat/webapps/examples" <Location "/examples/"> Options Indexes FollowSymLinks MultiViews </Location> <Location "/examples/WEB-INF/"> AllowOverride None deny from all </Location> mod_jk.log に下記表示され、Internal Server Error になってしまいます。 [jk_uri_worker_map.c (445)]: Into jk_uri_worker_map_t::map_uri_to_worker [jk_uri_worker_map.c (459)]: Attempting to map URI '/examples/servlet/HelloWorldExample' [jk_uri_worker_map.c (483)]: jk_uri_worker_map_t::map_uri_to_worker, Found a context match ajp13 -> /examples/servlet/ [mod_jk.c (1683)]: Into handler r->proxyreq=0 r->handler=jakarta-servlet r->notes=1213808 worker=ajp13 [jk_worker.c (90)]: Into wc_get_worker_for_name ajp13 [jk_worker.c (94)]: wc_get_worker_for_name, done did not find a worker 「not find a worker」というのが何を指しているかわかりますか? 他、確認すべき場所等ありましたら連絡ください。

  • Tomcat5.5.23とApache2.2.4とmod_jk

    似た質問が過去にあったのですが上手く出来なかったので質問させて頂きます。 環境は OS:Solaris9 Apache:2.2.4 Tomcat:5.5.23 mod_jk:1.2.21 Apache単体では http://localhost It worksと表示され問題ないと思います。 Tomcat単体では http://localhost:8080 トップページ表示され問題ないと思います。 http://localhost:8080/jsp-examples/ ではJSP Sampleページが出力され、連携出来ていると他サイトで書かれておりましたので問題ないと思います。 問題の http://192.168.10.25:8080/servlets-examples/ でHTTP Status 404 が出力されて表示できません。 [Apacheのhttp.confに以下を付け足しました] LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile /usr/local/apache/conf/workers.properties JkLogFile /usr/local/apache/logs/mod_jk.log JkLogLevel warn JkMount /jsp-examples/* worker1 JkMount /servlets-examples/* worker1 </IfModule> [workers.propertiesファイルを作成しました] worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 worker.worker1.lbfactor=50 わかる方がおりましたらご指導下さい。 よろしくお願い致します。

  • apache2+mod_ssl-apache2+OpenSSL

    apache2+mod_ssl-apache2+OpenSSLで、 /etc/apache2/conf/httpd.confに <IfModule mod_ssl.c> /ect/apache2/conf.d/ssl.conf </IfModule> を追記、 /ect/apache2/conf.d/ssl.confは <VirtualHost 192.168.1.21:443>などを環境に合った設定にしました。 そしてapache2を再起動したのですが、以下のようになりました。 [root@localhost root]# /etc/init.d/apache2 restart httpdを停止中: [失敗] httpdを起動中: [Wed Sep 07 20:39:37 2005] [warn] module ssl_module is already loaded, skipping [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName [Wed Sep 07 20:39:37 2005] [warn] VirtualHost 192.168.1.21:443 overlaps with VirtualHost 192.168.1.21:443, the first has precedence, perhaps you need a NameVirtualHost directive [Wed Sep 07 20:39:37 2005] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.1.21 (check DNS) -- or specify an explicit ServerName (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting downUnable to open logs [失敗] /ect/apache2/conf.d/ssl.confを0バイトにすると、apache2は起動できました。 どの設定が悪いか分かる方いらっしゃいませんか?

専門家に質問してみよう