トップページunix
1001コメント348KB

Apache関連 Part5

■ このスレッドは過去ログ倉庫に格納されています
0001攻撃ヘリAPACHENGNG
HTTP ServerのApacheに関する話題を扱うスレッドです。

前スレ Apache関連 Part4
http://pc.2ch.net/test/read.cgi/unix/1040312647/

Apache関連サイトへのリンクは >>2-5 あたり
0291名無しさん@お腹いっぱい。NGNG
>>290
$ENV{'DOCUMENT_ROOT'} に入ってる値でいい?
0292名無しさん@お腹いっぱい。NGNG
>>291

apache では

$ENV{'DOCUMENT_ROOT'}

にいつもドキュメントルートが設定されているものなんでしょうか?
もしそうならばそれで解決なんですが
0293名無しさん@お腹いっぱい。NGNG
そうじゃなかったら環境変数の意味ないだろ?
0294名無しさん@お腹いっぱい。NGNG
>>292
ttp://httpd.apache.org/docs/mod/mod_cgi.html
0295名無しさん@お腹いっぱい。NGNG
apache 1.3.29 はバグなしですか。
1.3.28のCGI関係の問題には懲りた・・。
0296名無しさん@お腹いっぱい。NGNG
>>295 バグはあるだろ、どっかしら。ちゃんと検証してからバジョーンうpしる。
0297名無しさん@お腹いっぱい。NGNG
>>295
Announcementぐらい嫁!
0298名無しさん@お腹いっぱい。NGNG
apache掲示板として機能しない2ch。
・・・・。
0299名無しさん@お腹いっぱい。NGNG
ときどき適切な返答もあるし、実際、詳しい人がいっぱい見てるけどさ、
それでも、ここにそんなこと期待してちゃだめだよ。。。。2chなんだからさ。
0300名無しさん@お腹いっぱい。NGNG
Apache2で時々ページの中の画像が表示されないことがありますが、
画像とか表示されないときはどんな事が考えられます?

それとApache2に関するおすすめ本あったら教えて欲しいです
とくにチューニングとかそのあたりについて書いてある系
0301名無しさん@お腹いっぱい。NGNG
>>300
Apache側の問題なの? Apache 1.3.xでは発生しないってこと?
0302名無しさん@お腹いっぱい。NGNG
>>300
ログくらい見れ
0303名無しさん@お腹いっぱい。NGNG
Apache側の問題なのか、2系だからどうなのか
わかればいいんですけど・・・わからんです。
LOGみてもエラーログには画像に関するエラーはなし
アクセスログには普通に200とか304とかのしかでてないです

回線とかCPU負荷で画像が表示されたりされなかったりってありますか?
0304名無しさん@お腹いっぱい。NGNG
>>303
200 とかの後ろのサイズはマトモな値?あとプロキシが腐ってるとか?
0305名無しさん@お腹いっぱい。NGNG
鯖の負荷や回線で画像が表示されないってのは普通にあるだろ
タイムアウトしてるだけで

問題が回線ならともかく、
負荷等に起因するなら、その原因を探さないと
0306名無しさん@お腹いっぱい。NGNG
質問です。
apache 1.3.29 でリバースプロキシを組もうとしているのですが、なぜか画像はリバースプロキシのキャッシュから読み込めて、
HTML のほうがキャッシュから読めず、常に Web サーバのほうからデータを取ってきてしまいます。

- 画像の場合
HEAD /image/sample.gif HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 14 Nov 2003 14:22:07 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Mon, 27 Oct 2003 05:20:11 GMT
Accept-Ranges: bytes
Content-Type: image/gif
ETag: "2f2eb6-2a7f-3f9c98c3"
Content-Length: 10221
Age: 509
X-Cache: HIT from www0.hoge.ne.jp # <-- キャッシュから読んでいる
Connection: close

- HTML の場合
HEAD /index.html HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 14 Nov 2003 14:24:13 GMT
Server: Apache/1.3.29 (Unix)
Content-Type: text/html
X-Cache: MISS from www0.hoge.ne.jp # <-- キャッシュから読みこめていない。
Connection: close

いちおう、Web サーバも apache 1.3.29 で構成されています。HTML のほうも、リバースプロキシのキャッシュから読み込める
ようにしたいのですが、何か対応策があれば教えてください。
0307名無しさん@お腹いっぱい。NGNG
Last-Modified: とか ETag: とかついてないところを見ると、
静的な HTML じゃないんでしょ。SSI をはずしなされ。
0308名無しさん@お腹いっぱい。NGNG
>>307
SSI を使っているHTMLもありますけれど、いちおう使っていないもので試しています。
それとも、SSI 使用の HTML は拡張子 .shtml、それ以外は .html と明示的に
分けないとだめですかね?

0309名無しさん@お腹いっぱい。NGNG
>>308
>>307のヘッダの意味分かるか?
0310名無しさん@お腹いっぱい。NGNG
>>308
XbitHackつかえ。
0311名無しさん@お腹いっぱい。NGNG
HTML の中に SSI のコマンドをひとつも使ってなくても、
mod_include を通っていれば内部的には毎回出力が変わる動的ドキュメントの
扱いになり、proxy にキャッシュさせるためのヘッダは吐かれなくなる。
0312名無しさん@お腹いっぱい。NGNG
apache1.3からapache2.0に移行したのですがエラーに悩んでおります。
/etc/rc.d/init.d/httpd2 restart とすると
httpd2を起動中: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
というエラーが発生してしまいます。
apache1.3は完全に止まっておりapache2を完全に停止させた状態だとport80は空いているのですが
apache2が起動している状態で
/etc/rc.d/init.d/httpd2 stop
nmap localhost
とすると80portがまだ開いたままでもう一度/etc/rc.d/init.d/httpd2 stopすると完全に停止し80portも空きます。
/etc/rc.d/init.d/httpd2 restart =
/etc/rc.d/init.d/httpd2 stop #この時点ではport80が開いたまま
/etc/rc.d/init.d/httpd2 start #port80が開いたままなので上記のエラーが発生

試しにstopを2回すると正常に起動します。
/etc/rc.d/init.d/httpd2 stop #この時点ではport80が開いたまま
/etc/rc.d/init.d/httpd2 stop #ここでport80が閉じられる
/etc/rc.d/init.d/httpd2 start #正常起動


どうやらapache2がport80で2回起動している感じで
Listen 81
にすると正常に/etc/rc.d/init.d/httpd2 restart出来ます。
問題切り分けのためsslとvirtualhostの設定はしていません。
どなたかアドバイスよろしく御願いします。
0313名無しさん@お腹いっぱい。NGNG
>>312
/etc/rc.d/init.d/httpd2 の中を見てみませんか?
0314312NGNG
>>313さんありがとうございます。
/etc/rc.d/init.d/functionsのkiiprocが実行されているようで
1度目はpidファイルのPIDをKILLしてPIDファイルを削除、2度目は
PIDファイルがないためapache2のプロセスをKILLしてたようです。
1度目のstopで終了しなかったのはこのためですね。
やはり起動時に問題があるようです。
もうちょっとハマってみます。
0315名無しさん@お腹いっぱい。NGNG
どーでもいいけど、ポートが開いてるかどうか確認するのに
>nmap localhost
これはないだろう(w

% netstat -an | fgrep LISTEN
0316名無しさん@お腹いっぱい。NGNG
Apache2でPHPって事実上無理なの?
1人でテストしてるときは問題なかったけど、数人である程度負荷かけながら
テストしたら物凄い勢いでメモリ消費したんです。
workerだからかなと思い、preforkも試したけど多少ましなくらい。
メモリ4GByteで足りないとは…。
0317名無しさん@お腹いっぱい。NGNG
>316
「事実上」の面白い用例ですね。
0318名無しさん@お腹いっぱい。NGNG
httpd.confをいじりまくって、
Apacheを再起動したら、
Syntax OK
とはでるのですが、
実際にウェブにブラウザでアクセスすると、
どうもウェブサーバが起動していないもようです。

いったいどこがおかしいのでしょうか?
たぶん、どっかを消してしまったのではないかと思うのですが・・・

http://31.com/test/httpd.conf.txt
にそれを置いておきます。
(いちお、ipアドレスはxxx.xx.xx.xみたくして、ドメイン名はexample.com にしてます)
(なお、↑31.com は、今いじってるのとは全く別のサーバです)

なお、現在いじくってるサーバは、
ラピッドサイトのVPSプランとかいうやつで、
共有サーバなのですが、
それぞれのお客さんが、(仮想な?)root権限をもてるので、
httpd.confをいじれたりします。
その辺も関係あるんでしょうか・・・

サポセンに電話したいんだけど、こんな時間なもんで。。。

もしおわかりの方、お助けいただければ幸いです。
0319名無しさん@お腹いっぱい。NGNG
apachectl configtest で再起動したつもりになってる予感?
0320名無しさん@お腹いっぱい。NGNG
>>318
> Apacheを再起動したら、

どうやって?
0321318NGNG
>>320
ラピッドサイトが用意している特別なコマンドがあるので、それを使いました。
xxxx ~# restart_apache
Syntax OK
/usr/local/apache/bin/apachectl stop: httpsd (no pid file) not running
/usr/local/apache/bin/apachectl start: httpsd started

これが問題ですか?
0322名無しさん@お腹いっぱい。NGNG
>321
そのスクリプトの中身は良くわかりませんが、
元々起動されてないのにrestartする意味ってあるの?
ターミナル接続出来るんならpsコマンドでhttpdが走っているか確認。

というか、普通に起動コマンドは無いんですかね?
0323名無しさん@お腹いっぱい。NGNG
それは単に
apachectl -t
apachectl restart
となっているだけではないか?
0324名無しさん@お腹いっぱい。NGNG
>>321
普通にapache2インストールしたら/usr/local/apache2にインストールされないかな
0325名無しさん@お腹いっぱい。NGNG
>>324
おれもよくしらんのだけど、最近のアメ公共用サーバはshell以外chrootしてるのがおおいから
実際の居場所が $HOME/usr/local/だったりするよ。
0326名無しさん@お腹いっぱい。NGNG
コマンドラインからシェルスクリプトファイルを
apache に渡して, CGI として実行するのはどうしたらいいの?
0327名無しさん@お腹いっぱい。NGNG
>>326
どういう意味?
0328326NGNG
>>327

シェルスクリプトの中で,
apache の DocumentRoot を取得したい.

apache は,CGI として実行されたスクリプトの中で,
$DOCUMENT_ROOT という環境変数に,
DocumentRoot を保持するのだそうだ.

ただのシェルスクリプトの中で $DOCUMENT_ROOT を
参照しても何も入っていないので,
apache が実行する CGI としてシェルスクリプトを実行して,
DocumentRoot を得たい
0329名無しさん@お腹いっぱい。NGNG
 カシワモーチ

     ______
    `=、;;;;;,,,,,,,:::,,,,,;;;;;,,,,`""''';;;;,, 、__
     ,.-'゙''''',='";;;;;;;;",-,,;;;;;;゙;;;;;;;;;l;;;;`,、
   /   `ー-...,;;;;;;;;;;;;,-‐/;;;;;;';;;;;;;;;;;;
  ./             `''''''""i;;;;;;;;ヽ
  l  ●  |,,,____/           |;;;;}
  |     |.:::::/  ●        ノ;;;;}
  ヽ、   |:::/          _,/;;;'゛
    `ヽ、_ |/        _,,.,;‐';;;;゛゛
      "'''=ー;‐---‐‐'';';"-''"゛

0330名無しさん@お腹いっぱい。NGNG
>>328
grep -i ^documentroot /path/to/httpd.conf | awk '{print $2}'
じゃご不満?
0331名無しさん@お腹いっぱい。NGNG
>>330

httpd.conf の置き場所はシステムによって違いえるでしょ?
httpd.conf を検索したところで,それを apache が
読んでるとは限らない.

だから,今うごいてる,httpd に直接
DocumentRoot を聞きたいんだけど
0332291NGNG
print $ENV{'DOCUMENT_ROOT'};

なcgiをサーバーに置いといて、

$ligne = `/usr/bin/lynx -dump http://localhost:80/documentroot.cgi`;

こんな感じのスクリプトを動かせばいいんちゃう。
0333332NGNG
また ligne だ... _| ̄|○

漏れの /usr/local/bin/apache-status.pl が間違ってるから・・・。。゜(ノД`)゜。。
0334名無しさん@お腹いっぱい。NGNG
>>326
そんなことできるの?
0335名無しさん@お腹いっぱい。NGNG
>>334
cgiってなにか知ってる?
0336名無しさん@お腹いっぱい。NGNG
>>332
それだと「CGI の置き場所が違いえる」とか言われそうだな。
0337名無しさん@お腹いっぱい。NGNG
>>334
パールのことでしょ?
0338名無しさん@お腹いっぱい。NGNG
>>331
今うごいてる,httpd にデバッガでアタッチして,(ry
0339332NGNG
>>336
そこまで面倒みれんわ。(w
0340名無しさん@お腹いっぱい。NGNG
モジュールを作っていて,リクエストのcontent_typeが取得できなくて困っています.
リクエストの形式が,text/xmlとapplication/dimeの場合分けがしたいのです.

リクエスト受け取り時のrequest_rec *rのr->content_typeがnullになっています.
何か取得の際にコツがあるのでしょうか?宜しくお願いします.
0341名無しさん@お腹いっぱい。NGNG
r->content_typeは「出力」に設定するContent-Typeだろ。
リクエストのContent-Typeはheaders_inから調べろ。

俺はapache2しか知らんから1.xはわからんがあまり変わらないだろ。
0342340NGNG
>>341
(;´д`)ノ ガーン,出来ました・・・
本当にどうも有難うございました.
0343名無しさん@お腹いっぱい。NGNG
偉い人に質問。apache1 はいつまでメンテが続く予定でつか?
0344名無しさん@お腹いっぱい。NGNG
>>343
あ、それは俺も気になってた。ていうかもう気にしたくないので、サーバ入替えを
機に apache2 にしてしまいますた。config の違いを恐れていたんだけど、よく見
てみたら殆ど一緒なのでワラタ。
0345名無しさん@お腹いっぱい。NGNG
>>343
自分で面倒見ればいつまでも使えますよ?
0346343NGNG
>>345
いや、apache1 系で色々改造しちゃったんで、apache2 に移行するのに時間が
掛かりそうなんでつ。で、今後の予定とかあるんだったら知りたいな、と。
セキュリチーホールの出た場所だけでも逐次教えてもらえると嬉しいですな。
そしたら自分でなんとか汁。
0347名無しさん@お腹いっぱい。NGNG
>>346
> セキュリチーホールの出た場所だけでも逐次教えてもらえると
実際には長い期間メンテされると思うが、自分で「いつまで」って決めて
早めに移行した方がいいと思う。Apache httpd に限らず。
基本的にオープンソースでは At your own risk が基本だから、いつスパッと
メンテが止まっても文句は言えんしな。

# そういう危機感を持ってない奴に限って、実際にメンテが止まると
# 逆ギレするんだから、端で見てる分には面白いが(w
0348名無しさん@お腹いっぱい。NGNG
>>346
Yahoo! USAの方でつか?
0349名無しさん@お腹いっぱい。NGNG
346やYahooほどじゃないが、漏れも多少改造してる。
まぁそれはapache2でもうまく改造できたんでいいんだが

例えば、Apache1系の古くからの実装として
SSIを実現するのに客に.htaccessに次のような設定を書かせていた時代があった。

AddType text/x-server-parsed-html .html

これはApache2では捨てられている仕様なので
このサーバで移行するにはApache2を改造するしかない。
まぁこの件はもうApache2を改造してうまくいったのでいいんだが
ほかにも同じようなものが地雷のように埋まってるかもしれない。
客の.htaccessファイルを全部おがませてもらうしかないかなぁ。
0350名無しさん@お腹いっぱい。NGNG
はぁ、俺も気長にモジュール書き直しか。。。
メンドクセー
0351名無しさん@お腹いっぱい。NGNG
モジュール非互換は既定路線だろうに。なにを今更って感じだな
0352名無しさん@お腹いっぱい。NGNG
すいません、質問させてください。
Apacheが何らかの条件によって、POSTのリクエストをGETに変更してリクエストを受ける
ことってありますか?

PHPのスクリプトにPOSTで飛ばしているのに、GETで処理されてしまいます。
そしてApacheのアクセスログには、POSTのアクセスとGETのアクセスのどちらも
が記録されています。

Apache/1.3.28 PHP/4.3.3
です。
よろしくお願いいたします。
0353名無しさん@お腹いっぱい。NGNG
>>352
そういうのは WebProg 板に行ってくれる?
0354名無しさん@お腹いっぱい。NGNG
>>353
PHPは実行されてないんだから、Apacheの領分だろう。
まぁ、ここに居るのは俺も含めてライトユーザーしか居ないから、
原因なんてわかんないけどな!haha!
0355名無しさん@お腹いっぱい。NGNG
>>354
PHP のスクリプトが間違っているのに 100 ゼニー。
0356名無しさん@お腹いっぱい。NGNG
ログさらせや。
必ず GET の次に POST がくるようなら 302 あたりでとばされてるんじゃねーの?
0357名無しさん@お腹いっぱい。NGNG
デフォルトのページ(ドメイン名だけ入力したとき出るページ)は
どこに入っているんでしょうか?
0358名無しさん@お腹いっぱい。NGNG
>>357
OS、導入方法によって様々。
デフォルトのhttpd.conf見てみれ。
0359名無しさん@お腹いっぱい。NGNG
>>357
ドメイン名だけって、そこから認識違うよ。
/
というルートディレクトリをブラウザ側で
補完してくれている。ディレクトリを指定
された場合にどの名前のファイルを返すか
ってのが
>>358
の通り。
0360名無しさん@お腹いっぱい。NGNG
>>359 おまえの方が間違っている。ブラウザ側で補完しているわけではない。
0361名無しさん@お腹いっぱい。NGNG
ルートディレクトリの場合はブラウザが補完しなきゃ一体誰が補完するんだ?
0362名無しさん@お腹いっぱい。NGNG
GET / HTTP/1.0
Host: www.example.org
User-Agent: unko
0363名無しさん@お腹いっぱい。NGNG
もしかしたら補完かけてくれるUAが存在するのかもしらんが、べつにそれは必須じゃない。

% telnet www.example.com 80
Trying 192.0.34.166...
Connected to www.example.com.
Escape character is '^]'.
HEAD http://www.example.com HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 26 Nov 2003 03:37:39 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
ETag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html

Connection closed by foreign host.
0364名無しさん@お腹いっぱい。NGNG
>>363
> もしかしたら補完かけてくれるUAが存在するのかもしらんが、べつにそれは必須じゃない。

(゚Д゚)ハァ?
0365名無しさん@お腹いっぱい。NGNG
はて。実際必須じゃないんだけど。

URL 一般において、

>Some or all of the parts "<user>:<password>@", ":<password>",
>":<port>", and "/<url-path>" may be excluded.

だし、HTTP URL scheme においては

>If neither <path> nor <searchpart> is present, the "/" may also be omitted.

と明記されてる。see RFC1738
0366名無しさん@お腹いっぱい。NGNG
>>365
> はて。実際必須じゃないんだけど。
>
> URL 一般において、
>
> >Some or all of the parts "<user>:<password>@", ":<password>",
> >":<port>", and "/<url-path>" may be excluded.
>
> だし、HTTP URL scheme においては
>
> >If neither <path> nor <searchpart> is present, the "/" may also be omitted.
>
> と明記されてる。see RFC1738
(゚Д゚)ハァ?
0367名無しさん@お腹いっぱい。NGNG
>>365 はRFCを読むならまずRFC2616を読め。ここで話してるのはURLのシンタクスの話じゃない。
0368名無しさん@お腹いっぱい。NGNG
> >>365 はRFCを読むならまずRFC2616を読め。ここで話してるのはURLのシンタクスの話じゃない。
(゚Д゚)ハァ?
0369名無しさん@お腹いっぱい。NGNG
>>368
> (゚Д゚)ハァ?
(゚Д゚)ハァハァ
0370名無しさん@お腹いっぱい。NGNG
(;´Д`)ハァハァ
0371名無しさん@お腹いっぱい。NGNG
>>367
ここで話してるのは、357の
>デフォルトのページ(ドメイン名だけ入力したとき出るページ)は
でしょ。ブラウザの URL 窓にドメイン名だけを入れたという話じゃないの?
ドメイン名から http://... のような URL に補完するのは
ブラウザのおせっかいであって、RFC2616 とは無関係だと思うけど。
0372名無しさん@お腹いっぱい。NGNG
DocumentRootって一言書けば済むのにどこまで行くんだよw
0373名無しさん@お腹いっぱい。NGNG
httpd.confの中身を説明しているサイト見れ、で済む質問じゃん。
ドメイン名だけっていうから、www.example.comじゃなく、example.comの場合なのかとも思った。
質問者の情報が足らないからみんな想像で質問内容を拡大してしまう。
0374名無しさん@お腹いっぱい。NGNG
>>358 で終了のはずだったのにな。
0375名無しさん@お腹いっぱい。NGNG
よくあるファイルが見つかりませんのダイアログのようなエラードキュメントは
どこかで入手できる物なのですか?

他にもApacheで使うことを前提にした面白いエラードキュメントがあるなら
入手できる場所を教えてください。
0376名無しさん@お腹いっぱい。NGNG
>>375
"404 Not Found" でググったらリンク集とか出てくるよ。

0377名無しさん@お腹いっぱい。NGNG
>>375
Web制作板の「404 Not Found」
http://pc2.2ch.net/test/read.cgi/hp/1017522048/
0378375NGNG
>>376-377
ありがとうございます。
この板らしい商用サイトでも恥ずかしくないようなガチガチな物も出て来ると思っていましたが、
ちょっと期待しすぎていたようです。
参考にさせていただいて自分で探す旅に出ようかと思います。
0379名無しさん@お腹いっぱい。NGNG
エラードキュメントが欲しいんなら、片っ端からエラー表示させりゃいいだけと
思ってるのは、漏れだけでは無いはずだ…
0380名無しさん@お腹いっぱい。NGNG
>>379
パクリたくなるようなエラードキュメントってどんなんや?
0381名無しさん@お腹いっぱい。NGNG
マムコに黒塗り画像
で、一言「表示出来ません」
0382名無しさん@お腹いっぱい。NGNG
それだ!!! いただきます。
0383名無しさん@お腹いっぱい。NGNG
404 Not found.

 o-o、
 ('A`)
 /ノZ乙
0384名無しさん@お腹いっぱい。NGNG
管理/サービスとアプリケーション/サービス/FAX Service
0385384NGNG
まつがいますた
0386名無しさん@お腹いっぱい。NGNG
931 :名無し~3.EXE :sage :03/11/30 15:02 ID:omtZek0W
管理/サービスとアプリケーション/サービス/FAX Service

マルチw
0387 NGNG
バーチャルホストごとに1日の転送量制限値を決めて、
その数値を超えると全部エラーで返すような便利な
モジュールや方法はないでしょうか?
0388名無しさん@お腹いっぱい。NGNG
>>387 方法はあるだろ。モジュールを作れば良いだけ。
0389375NGNG
>>379
エラーになるURLを適当に探すのも怪しまれるご時世だし、5xxなエラーは出しにくいし、
フォーマットを同じにするためにCGIなりPHPなり使っているかもしれないし、
Apache2みたいなエラーのセットを使ってるかもしれないし。
他のサイトと同じデザインにしたいなら同じセットの物を使わないと
エラーを見た人はどこかからパクったという印象しか感じないじゃないですか。
0390名無しさん@お腹いっぱい。NGNG
HTTPレスポンスごと(リクエストで判別or返すファイルごと)にHTTPレスポ
ンスヘッダーに設定(cache-controlなど)を追加する方法はapacheではどう
設定するの?
■ このスレッドは過去ログ倉庫に格納されています