1 :
名無しさん@お腹いっぱい。 :
2007/05/20(日) 11:21:54
2 :
1 :2007/05/20(日) 11:23:58
3 :
1 :2007/05/20(日) 11:27:50
>>1 訂正!
HTTP Serverの最新Versionは
Apache/2.2.4
Apache/2.0.59
Apache/1.3.37
よんさま阻止
__,,,,,.......,,,,,
,. -'´ ``ヽ、
/ .. ,. ,,.. -ー''''''''−- ..,,, \
/ .:.r' ::i'"Sex☆,,,.......,,,,,__ `i: ', /
,' :: : l: : :l,. :r〒~t i: :rl: l〜ーi:lrj、.l: l /
i .: : :.l : :|i :!,. ;t 十l: l.l: l |:L_ .i`i: : l /
l : : : :l::: :l: :i l:! __!, l:l l:! ll,._` l.|:!:. l /
l : : : :l : l::l ,.r‐t-!、 tl rt-!、 l:l::i.. l /
| .: : :;,,l : :l:! / iー' l l' l l.!i::l:: l ,.、
l : : :i,ヘl:: :l:l ` ヒ,__,ノ ヒノ. 'il:: l:: l /,,,,,,\
l :: :: ヽ,i:: :l゙ "" ___ ' "i : !:;,! ,.. -ー'' ll;;;;;;;;;;;;゙i゙i
! : : : : : l ::l !`' Y /:r'´ /::/ l ヽ;;;;;;;;;;;l l メルコのルータを使え☆
| : : : : ,: l:::lゝ.,, ヽ、 ' ,, イ:!i l;;;;l p | l;;;;;;;;;;;l l
l : : : : i: :ヽl : : :`T'' r:;‐''::´i: : l! .l;;;;l .leer. .l ,/;;;;;;;;;;;l l
l :: :l : :l: : : : :,.K´` t, λi:;!: : ::li゙‐.!;=!r ...,,,__ ll;;;;;;;;;;;//
l :l :l: : l:: : :i :!. `'' t ` ''´ lヽ;!: !' /つヘ~t \ '''''/
l :l :l,:: l: : :l,l ::', .i (…) .l ヾ、 iλニ l
800 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2006/06/21(水) 07:06:01
>>799 メルコのルータを使え。アタックブロックをONにすれば、1つ(2つぐらいは可能だったかも)以上の
接続が同時に来た場合、2つ目以降を弾いてくれる。
ひっぱりすぎ。 メルコ乙 6でもないな
7 セブン 7 セブン セブン セブン セブン ぷるるぅー セブン セブン セブン ぷるるぅー もー ろ ぼ し だ ん のぉー なぁー をぉー かぁー りぃー てぇー ぷるるぅー ぷるるぅー
8 エイト 8 8 8 8 エイト エイト エイト エイト チャチャラチャ 光る海 光る大空 ひぃーかる大地 チャチャラチャ 8 エイト 8 8 8 8 エイト エイト エイト エイト チャチャラチャ 8 エイト 8 8 8 8 エイト エイト エイト エイト チャチャラチャ 8 エイト 8 8 8 8 エイト エイト エイト エイト
アタックブロックをONにすると、ダウンロードされない画像がいくつも出てくるのですが仕様ですか?
__,,,,,.......,,,,, ,. -'´ ``ヽ、 / .. ,. ,,.. -ー''''''''−- ..,,, \ / .:.r' ::i'"Sex☆,,,.......,,,,,__ `i: ', / ,' :: : l: : :l,. :r〒~t i: :rl: l〜ーi:lrj、.l: l / i .: : :.l : :|i :!,. ;t 十l: l.l: l |:L_ .i`i: : l / l : : : :l::: :l: :i l:! __!, l:l l:! ll,._` l.|:!:. l / l : : : :l : l::l ,.r‐t-!、 tl rt-!、 l:l::i.. l / | .: : :;,,l : :l:! / iー' l l' l l.!i::l:: l ,.、 l : : :i,ヘl:: :l:l ` ヒ,__,ノ ヒノ. 'il:: l:: l /,,,,,,\ l :: :: ヽ,i:: :l゙ "" ___ ' "i : !:;,! ,.. -ー'' ll;;;;;;;;;;;;゙i゙i ! : : : : : l ::l !`' Y /:r'´ /::/ l ヽ;;;;;;;;;;;l l NTTのルータを使え☆ | : : : : ,: l:::lゝ.,, ヽ、 ' ,, イ:!i l;;;;l p | l;;;;;;;;;;;l l l : : : : i: :ヽl : : :`T'' r:;‐''::´i: : l! .l;;;;l .leer. .l ,/;;;;;;;;;;;l l l :: :l : :l: : : : :,.K´` t, λi:;!: : ::li゙‐.!;=!r ...,,,__ ll;;;;;;;;;;;// l :l :l: : l:: : :i :!. `'' t ` ''´ lヽ;!: !' /つヘ~t \ '''''/ l :l :l,:: l: : :l,l ::', .i (…) .l ヾ、 iλニ l
皆さんレスありがとうございます。 >>前スレ991 現象を整理してみたんですが、分割ダウンロード機能があるダウンローダーにて、 許可してるセッション数までは206でちゃんと分割ダウンロードしているようですが 同時に接続しきにてオーバーしたセッションに関しては、1つ目は503で返るものの 2つ目以降が416になってしまうようです。 例)maxが2の時 1:ダウン中>完了すれば206 2:ダウン中>完了すれば206 3:接続数オーバー>503 4以降:なぜか416 >>前スレ993 他のモジュールと相性悪かったりするんでしょうか?? bandwidth、throttle、limitipconnが同居してますが。。。
13 :
名無しさん@お腹いっぱい。 :2007/05/21(月) 09:48:46
だからRequested Range がおかしいんだろ
同一IPからの集中したアクセスを遮断する方法を教えて下さい
Requested Range が変なら全部416になるんじゃね? bandwidthなんて使ってんのか?
17 :
名無しさん@お腹いっぱい。 :2007/05/21(月) 18:56:45
>>16 前スレ988は自分で実験したわけじゃなくて、アクセスしてきた野郎のログを元に言ってるだけ。
988 名無しさん@お腹いっぱい。 [sage] 2007/05/20(日) 02:57:45
>>987 うーん、それは調べたのですよ。
でも、どうやら違うようで。
FlashGet等を使って分割ダウンロードしている香具師の複数接続をlimitipconnで弾いているのに
クライアントに503ではなく、416が返るのがサッパリ。。。
503のエラードキュメントに対してRangeを指定したリクエストをしてるって事になって416じゃないの?
19 :
名無しさん@お腹いっぱい。 :2007/05/21(月) 19:21:11
>>18 そんなことはありえない
200と206の違いを考えてみろ
実験しました。
>>12 で書いた例の挙動になりました。
bandwidthは使ってませんが、モジュールだけ組み込んであります。
21 :
名無しさん@お腹いっぱい。 :2007/05/21(月) 20:29:48
そういやHostNameLooksUpをOnにしてたり、ホスト名での規制かけてない? どういうことかというと、limitipconnは厳密に制限してくれるとは思わないほうがいい。 んで、その416は本当に Request Range は正しいの? 416が返ってくる事実は分かったから、なぜ416が返ってくるのか考えてみようぜ。 とりあえずアクセスログ(エラーログじゃないほう)にリクエストのRangeヘッダーを記録したほうがいい。 分割ダウンロード機能付きダウンローダーなんて、俺から言わせればHTTPを中途半端に理解した 自己中DQNプログラマが作ってるのがほとんど。 できればwgetとか使って試したほうがいい。
>>21 HostNameLookUpはoffですし、.htaccess等ではIPで規制しているのですが…ハテ?
RequestRangeですが、ダウンローダーのステータス画面にでる
リクエストとrfc2616の書式などはいちおう合っている
ように読めます。理解力不足かもしれませんが。。
ちなみにRequestRangeをログで吐き出させる場合は
LogFormatは"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined から
どのように変えれば良いでしょうか??
23 :
14 :2007/05/22(火) 00:47:07
名前ベースのバーチャルホストでも、 SSLが使用できるようになる可能性ってあるのでしょうか? いつか出来るようになると聞いたのですか・・・。 また、Apache以外で可能なものありますか?
もう出来てるみたいだよ
詳細キボンヌ
IISで出来たような・・・
全部入りのサーバ証明書つかう。
IISでもなにも、証明書次第なんだからサーバ関係なくね?
自己証明じゃ信頼性も何もないと思うのだが (複数サーバ入りの証明書なんて怪しさ倍増) まともな認証局で全部入り証明書って発行してもらえるのか?
31 :
名無しさん@お腹いっぱい。 :2007/05/24(木) 23:48:30
某企業から妨害工作される悪寒
>5年後くらいかな・・・ その前にM社が独自規格を出して他が仕方なく追従・・・
M社ってどこ?
そりゃMのマークのモトローラだろ
Mosaic Commu(ry
M&S
Micron
Microware
メ ル コ メルコのルータを使ってない香具師にはわからんだろうなw
>>22 漏れも似た症状で続き気になってんだけどマダー?
dev@httpd で、セキュリティー上の問題で議論になってる? んで、それに関連して新しいバージョンがリリースされるかもしれない
CPUが複数ならworkerMPMのほうがいいの? preforkもマルチプロセスだから、「シングルCPUかマルチCPUか」はMPM選択には関係ないですよね
つ apache2-mpm-event
EventMPMは使ったことあるけど、メモリ使用量肥大がなぜか肥大するんだよなあ
CPU一個だけどWorkerだな preforkの次の世代と思ってそっち選んだけど、あんま変わんないねえ
FreeBSD+Apache2.2.3で、mod_rewriteを使えるようにしたいのですが 再コンパイルしか方法は無いのでしょうか? やりたい事は、特定のIPからの接続を別ページへ飛ばす、という事なので mod_rewrite以外でこの操作を行う方法がありましたら、教えていただけませんでしょうか
みなさんmod_deflateの設定どうしてますか? もし良かったら晒してください。自分はこうしてます。 <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex won't work. You can use the following # workaround to get the desired effect: BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location>
AddOutputFilterByType DEFLATE text/html text/plain text/xml image/bmp この1行だけ
52 :
50 :2007/06/04(月) 01:18:42
行数は関係ないだろ
>>48 CGIやスクリプトで飛ばす。超富豪。
apxs2でソースからrewriteだけ作れば?
54 :
22 :2007/06/04(月) 17:03:36
>21 なんとかログ取るようにしまして、確認しましたところRequestRangeは正しいようです。 ますます謎が深まりました。。。
55 :
名無しさん@お腹いっぱい。 :2007/06/11(月) 14:42:51
http://gnug.nu/ mod_setenvauthpw ってモジュールを使った事ある人いますか?
っていうか、このモジュールってちゃんと動作するのか、知ってる人おりますか?
CentOS4+Apache/2.0.52で導入してみたのですが、期待した機能が
全く動作しません。
Basic認証時のPasswordを取得する方法は無いんでしょうか.....?
ある特定のディレクトリへのアクセスだけ、ログファイルを分けたいのですが confファイルにどのように記述すればいいでしょうか? (仮に「/test」というフォルダがあるとして、このディレクトリへのアクセスだけログを別ファイルに記載したい) Virtualhostディレクティブの中に <Directory /test> ErrorLog /var/log/apache/test_error.log TransferLog /var/log/apache/test.log </Directory> と書いたらエラーが出てしまいました。
58 :
名無しさん@お腹いっぱい。 :2007/06/23(土) 17:01:54
>>56 通常のログの設定のあたりに
SetEnvIf Request_URI "/test" testlog
CustomLog /var/log/httpd/test.log combined env=testlog
これで行けると思う
>>58 この方式でできました、ありがとうございました
mod_layoutについて質問なんですが LayoutIgnoreURIを使用して /test.php?allow= には適用し /test.php?deny= の場合のみスルーするというような記述は出来ませんか? スクリプトへの特定のリクエストにのみlayoutを切りたいのですが。 環境はApache/1.3.37 mod_layout/3.2です。 htaccessを使って LayoutIgnoreURI /test\.php とするとtest.phpへの全てのリクエストに効いてしまい LayoutIgnoreURI /test\.php\? ... とするとエラーにはならないのですが期待通りには動いてくれません。 よろしくお願いします。
61 :
名無しさん@お腹いっぱい。 :2007/07/03(火) 17:44:13
アウトプットフィルターを呼び出すモジュールを作ってみたのですが、制御方法がわかりません。 httpd.confに以下のように記述しました。 LoadModule xxx_module modules/mod_xxx.so するとサーバ上どこでもフィルターがかかってしまいます。 私が設定を間違えているのでしょうか? ご存知の方がいらっしゃいましたらよろしくお願いします。 OS:Linux #1 Thu Jun 2 22:55:56 EDT 2005 アパッチのバージョン: Apache/2.0.58
62 :
名無しさん@お腹いっぱい。 :2007/07/06(金) 10:18:34
>>61 何がしたいんだよw
バーチャルホストごとに使いたいの?
ディレクトリ(URL)ごとに使いたいの?
モジュールを初期化する時点でmergeしてるの?
server_rec *s;
request_rec *r;
xxx_server_conf *conf = ap_get_module_config(s->module_config, &xxx_module);
xxx_dir_config *conf = ap_get_module_config(r->per_dir_config, &xxx_module);
ソース晒した方が早いと思われ。
mod_rubyについてです。 *.rbxにアクセスしてもソースがそのまま表示されるのは どうしてですか?
>>64 AddTypeしてないんだけど。。。。
なんかいじってたら、Forbiddenになっちゃうようになった。
わけワカンネから777にして、実行権限も与えたんだけど
だめみたい。
AddTypeしろ、自分のやったことも説明できない馬鹿は氏ね
その設定、複数サイト相乗りとかならまあ目的としてあるけど、 いつもはメモリリークへの防御手段としてプロセスを殺す間隔の設定として使ってる。 サーバ負荷軽いなら、別にプロセスが多少多かろうと少なかろうとどうでもいいわけで。 メモリ使用量減らしても微小な電力消費抑制位にしかならん。相乗りの場合でもワースト ケース設計するのであれば、やっぱりあまり意味ないし。
漏れも
>>69 と同じだなぁ。
apacheを標準状態で使ってる分には、まずメモリリークしないと思うけど、
サードパーティーのモジュールやらライブラリやらを組み込んでいると、
ちょっと恐い気持ちもあるので、気休めだけど1000ぐらいを入れてます。
複数のバーチャルホストのアクセスログの容量を それぞれ指定容量分のみ維持させる良い方法ってないでしょうか? rotatelogs を使うと、アクセス多いほどかなり負荷アップしそうで いやなんですが。 ログの容量チェック+ファイル名変更、みたいなスクリプトを自作して cronでまわす方がいいんでしょうか。
CustomLog "| /usr/local/apache2/bin/rotatelogs /path/to/access_log 100M" common
あ、ごめん。rotatelogsは嫌なのか。
IPの範囲でアクセス規制したい場合、IPの表記はどのようにすればいいのでしょうか? 例えば、200.0.0.0から200.0.50.255までを規制したい場合などです。 200.0.0.*-200.0.50.* とかでは規制が働きませんでした。
>>74 200.0.0.0/255.255.205.0
とかやれば良いんじゃないか。
050の所が 205で良いのかは間違えてるかもしれんが。
>>76 間違えてる。
205 は2進数で 11001101 だよ。
::1 - - [21/Jul/2007:23:27:18 +0900] "GET / HTTP/1.0" 302 300 "-" "Apache/2.2 (internal dummy connection)" といったログが1分間に50行くらい出て、そのままサーバーごとダウンしてしまう事が 多いのですが、何か対策法ありませんか? DebianのパッケージのApache2.2.3を使っています。
graceful-stopとかを使わない。
81 :
名無しさん@お腹いっぱい。 :2007/08/03(金) 20:29:36
apacheのプロセス番号から、 そのプロセスが処理した内容を知る方法があれば教えて下さい
84 :
名無しさん@お腹いっぱい。 :2007/08/05(日) 01:16:02
8/14に2.2.5と1.3.38がリリース
85 :
名無しさん@お腹いっぱい。 :2007/08/08(水) 15:54:17
2.0.60も
86 :
名無しさん@お腹いっぱい。 :2007/08/11(土) 01:56:11
mod_rewriteの説明読んでいて疑問に感じたのですが RewriteCondの内容は、 一度RewriteRuleを実行したらクリアされるのですか?
2.0.60でトラブルがあったようで、まだでないですね
2.2.5、2.0.60はキャンセルになり 2.2.6、2.0.61が9/1あたりに出るらしい
89 :
名無しさん@お腹いっぱい。 :2007/08/28(火) 16:29:30
Apache2.2 で導入されたキャッシュ機能の使用感はどんなもんでしょうか? ディスクキャッシュもメモリキャッシュも無いよりはあった方が良いという感じのようですが、 私が調べた限りでは以下の特徴があるように感じられます。 ディスクキャッシュは基本的にキャッシュが溜まるので削除する機能(htcachecleanなど)を導入する必要がある。 しかし、htcacheclean は ext3 に入れると重い上、管理が煩雑である。 メモリキャッシュは早いが物理メモリが許す範囲という上限がある。 管理は楽だが、複数のコンテンツを捌くリバースプロキシ向きではない。 まだ私は実際に使用していないのですが、どちらかの導入を検討しています。 (場合によっては用途ごとの使い分けを考えている。) 皆様がそれぞれのキャッシュ機能を使用した感想をお願いします。
使ったことないけどさ、ドキュメントを読むかぎりでは 指定した URI を強制的にキャッシュから消すことってできないよね。 それじゃ使いものにならんね。性能をうんぬんする以前の問題。 キャッシュに残ってるコンテンツを今すぐ更新したい、という要望が 絶対にないと言いきれるのならいいかもしれんけど。
指定したURLをキャッシュしない、ならできる
>>90 キャッシュフォルダを掃除すれば、できなくもないとも言える。
ディスクキャッシュ有効にしたら、キャッシュファイルが凄く深い階層のフォルダ&大量のファイルが作られるわ キャッシュ周りで挙動がおかしくなるわ散々だった
キャッシュを保持するパス階層は変更できるよ フォルダ名2文字、深さ3段もあれば十分 ただ、htcachecleanがいけてない find -delete のがまし
95 :
名無しさん@お腹いっぱい。 :2007/09/08(土) 02:14:51
Apache 2.2.6, 2.0.61, 1.3.39 release age
modssl マダー?
Apache Portable Runtime 1.2.11 Released こっちは元々の予定通りだったのかな?
phpでsystem()関数などから使用されるシェルを 制限シェルに切り替えることってできないでしょうか?
>>98 rshell に切り替えるスイッチ見あたらないですね。
safe mode でしのぐのでは、姑息的ですか。
>>97 2.2.5/2.0.60をリリースしようとしたら、APRに問題が見つかって
新しいAPRのリリースを待っていた
101 :
名無しさん@お腹いっぱい。 :2007/09/11(火) 14:03:57
2.2.6インストールしようとしたら、make中に /usr/bin/ld: cannot find -lexpat ここで停止してしまいました。 現行バージョンは2.2.4で動いてるし、INSTALLにもREADMEにもexpatに関する特記事項はなさそうだけど どこで躓いたんだろう・・・
102 :
101 :2007/09/11(火) 14:22:18
OS書いてなかった。FreeBSD 6.0です
Linux厨が作ってる物はautotoolsだのbashだのexpatだのが 既にインストールされてる事が前提である事が多いからな。 入れてないなら入れるしかない。
とりあえずconfigureした後Makefileを開いてAPRUTIL_LIBSに -L/usr/local/libとでも書けばそこは通過できるらしい。
ldapは-LフラグがちゃんとAPRUTIL_LDFLAGSに追加されるけど、 expatとiconvは追加されないから、ldapに関して何も指定しなかったりすると APRUTIL_LDFLAGSが空っぽになってだめって事らしい。 --with-expat=builtinを付けてconfigureすると-lexpatも-liconvもなくなるから ファイルの修正なしでいける。
どんな OS を使うにしても何をコンパイルするにしても、野良ビルドするなら env CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure ... は常識として覚えておけ。 # Solaris なら -R も追加な。
>>106 その常識が通用しない構成になってるわけですが…。
常識を通用させるには、このような修正が必要なようですが。 \tはタブ。 --- Makefile.in.orig\tTue May 24 21:09:35 2005 +++ Makefile.in\tTue Sep 11 17:18:42 2007 @@ -68,7 +68,7 @@ \t$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG) $(TARGET_LIB): $(OBJECTS) -\t$(LINK) @lib_target@ $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS) +\t$(LINK) @lib_target@ $(ALL_LDFLAGS) $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS) exports.c: $(HEADERS) \t$(APR_MKEXPORT) $(HEADERS) > $@
てゆーか、LDFLAGがどうたらとかそんな訳の分からないインチキしないで configureのときに--with-expat で指定しちゃ駄目なのかい? $ srclib/apr-util/configure --help | grep expat --with-expat=DIR specify Expat location, or 'builtin'
>>110 それbuiltinしか効かない。
結局expatが見つかったときに-L/usr/local/libとかを足す部分が
1.2.8と1.2.10の間で削り落とされてるんで。
112 :
101 :2007/09/12(水) 00:43:00
遅くなりましたが皆さんありがとうございました。 105さんの方法をためしたところ通りました。 毎度ながら己の未熟を感じさせられてしまう・・・
Apache 2.2.6にしてから気が付いた現象なんだが、 ServerTokens Fullにしているとgraceful restartの後にServer:ヘッダが おかしなことにならない? こんな感じで↓ --- Server: Apache/2.2.6 (Unix) mod_ssl/2.2.6 0\011string\011\011Article \011message/news\0118bit --- 紛れ込んでるのはconf/magicの断片のようだけど。
115 :
114 :2007/09/12(水) 12:16:48
途中投稿してしまった
>>113 マジで?ちょっと再現してみたい
mod_mime_magic入れてる?
116 :
114 :2007/09/12(水) 13:25:59
これのせいで、早くも2.2.7を出すかという話すら出てる
118 :
名無しさん@お腹いっぱい。 :2007/09/15(土) 12:01:25
119 :
名無しさん@お腹いっぱい。 :2007/09/15(土) 12:04:00
あるバーチャルホストのログのローテーションするシェルスクリプトを 作成しているのですが、 mv access_log access_log.1 touch access_log としても新規に access_log へログが書き込まれません。 apacheをリロードすると再度書き込みが開始されるのですが、 リロード以外に解決方法はないでしょうか。
122 :
120 :2007/09/18(火) 18:17:26
>>121 コマンド処理側で工夫して対応する方法はないでしょうか。
このケースであれば、
一旦ファイルの削除がなければ、
リロード作業は不要になるかと思います。
mv の代わりに cp を使えば一応対応とはなりますが、
コピー処理中に書き込まれたログが access_log.1 に移らない
ため、使えなくなっています。
124 :
120 :2007/09/18(火) 18:39:05
>>123 はい、その人です。
対象のログファイルがかなり多いので、
事実上、ローテーションするたびに
シグナル送るのは困難です。
パイプも現在のconfファイルを大幅に変更しなければ
対応が難しいので避けたいです。
cp 使って差分は諦めるか、
大量の mv 処理が終わってから
kill -HUP でしょうか。
>>124 mv なんて一瞬じゃん、って向こうでも言われたでしょ。
つーか、logrotate かなんか入ってないの?
OS は何?
127 :
120 :2007/09/19(水) 07:10:10
>>125 すぐにテストできるのがredhatしかなかったんですが、
1GB程度のファイルを mv したら
20分くらい時間がかかりました。。。。
freebsd とかだと違うものなんでしょうか。
別のドライブにmvしてるの?
別パーティションにmvだとしても、 1GBなら、たとえ20MB/sの遅いドライブだとしても50秒でmvできるはず。 20分もかかるならどこかシステムが壊れてる。
>>127 まず同じパーティション内で mv してから
graceful でログファイルを切り替え、
その後に落ちついて別のパーティションに mv すれ。
redhat ってのが正確にどのディストリかわからんが
きっと logrotate があるはずだから man 読んどけ。
>>129 20MB/sで本当に転送できるならいいんだけどな・・・
133 :
132 :2007/09/20(木) 16:47:35
firefoxの場合だけみたい まぁいいや
hogeがディレクトリだったら/で終わらせないと別の解釈になる
最後のスラッシュを揃えない時の誤動作を利用してうまく消せたような。
apache benchで負荷テストをしているのですが、Document LengthとHTML transferredが食い違っているように見えます。
nの値×Document Length=HTML transferred
となると認識していますが、違うのでしょうか。
違っていた場合、HTML transferredは何の値でしょうか。
以下その際の値です
ab -n 100 -c 10
http://example.com/test.3gp Document Length: 9824113 bytes
HTML transferred: 1001152010 bytes
↓この辺は? 認識は合ってると思います。 Non-2xx responses Failed requests Write errors
>>137 もったいぶっててもアレなのでログをさらします。
ab -n 100 -c 10
http://example.com/test.3gp This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation,
http://www.apache.org/ Benchmarking kenmoprototype.develop.dorasu.jp (be patient).....done
Server Software: Apache/2.0.52
Server Hostname: example.com
Server Port: 80
Document Path: test.3gp
Document Length: 9824113 bytes
>>137 続きです
Concurrency Level: 10
Time taken for tests: 727.624669 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 1001183838 bytes
HTML transferred: 1001152010 bytes
Requests per second: 0.14 [#/sec] (mean)
Time per request: 72762.469 [ms] (mean)
Time per request: 7276.247 [ms] (mean, across all concurrent requests)
Transfer rate: 1343.71 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 24 114 425.1 44 3093
Processing: 60122 71441 8138.9 70695 97460
Waiting: 65 124 94.4 86 630
Total: 60157 71555 8114.6 70742 97504
Percentage of the requests served within a certain time (ms)
50% 70742
66% 72620
75% 73846
80% 74514
90% 86088
95% 90733
98% 95659
99% 97504
100% 97504 (longest request)
>>138 ,139
ab -c1 -n1 でやってみた時のDocumentLengthとHTMLTranferredは同じになる?
>>140 こうなりました。
ab -n 1 -c 1
http://example.com/test.3gp This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation,
http://www.apache.org/ Benchmarking example.com (be patient).....done
Server Software: Apache/2.0.52
Server Hostname: example.com
Server Port: 80
Document Path: /test.3gp
Document Length: 9824113 bytes
Concurrency Level: 1
Time taken for tests: 0.885998 seconds
Complete requests: 1
Failed requests: 0
Write errors: 0
Total transferred: 9824435 bytes
HTML transferred: 9824113 bytes
Requests per second: 1.13 [#/sec] (mean)
Time per request: 885.998 [ms] (mean)
Time per request: 885.998 [ms] (mean, across all concurrent requests)
Transfer rate: 10828.47 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 885 885 0.0 885 885
Waiting: 16 16 0.0 16 16
Total: 885 885 0.0 885 885
>>141 うう〜ん、ab自体が壊れてるわけではなさそう。
DocumentLengthは大体9MB位だから -n100 でも約1GB以下か。オーバーフローでもないな。
(以前、2G超のファイルをabってみたとき、数値が32bit signed longでオーバーフローしたことがあるから、
ソースから、long->long longに修正したことはある。ちなみにx86ね。x64だとlongでもフローしない)
ちなみにその test.5gp ってやつは、常に同じ長さを返すDocumentなの?
うちで以前cgi(毎回微妙にサイズの異なるDocument返す)のテストやってた時は、
たしかにいくつかは Faid requests で(Length **)になるときもあるけど、
そうならななくて Faild requests 0 になるときもあった。
確かにそのスクリプトは毎回違う長さを返すはずで、それこそ -n1000 とか -n2000 で、全てたまたま
同じ長さになったとは考えられない。(確率的には1/3で全く同じサイズになるようなスクリプトだった)
この時はDocumentLengthの値と、HTML transferredを注意して見てなかったけど、
多分だけど、合計計算したら違ってたはず。
なんでこうなるかはよくわからいけど、その時はフ〜ンてな感じで気にもしなかった。
(あんまりよく覚えてないけど、返すサイズが比較的少ない時(1KB以下とか)はFailed requestになって、
比較的大きめのサイズ(100-200KB?以上)のときは、Failed request 0になったような気がする。
ごめん、今すぐ確認できる環境にない)
ごめ、test.5gp は test.3gpのまつがい
>>142 常に同じ長さを返します。というか単一の動画バイナリファイルなのです。
どこかでロストしていることは考えられるのでしょうか?
>>144 う〜んそうか・・。
それなら142の内容は関係ないね。
ちなみにabった時の、ApacheのLogほうの返したサイズはどうなってるの?
上のテストした時は、ApcaheのLogのほうも、Requestごとに微妙に違うサイズを返してるハズなのに
ab の結果では Failed Request 0 だった。
よくわからんけど、ネットワーク越しにやってるんなら、途中経路とかでロストして、パケット再送とかしてるかも?
そんときはlocalhost上でやってみるとか。
あと、abは400台500台のレスポンスステータスは補足してくれるけど、ステータス200でもらったら、その中身までは
補足出来ない(まああたりまえか)から、ブラウザ等でやってみないと実際にちゃんと返ってるか確認はできない。
まあbenchだから単位時間あたりどれくらいレスポンス返すかとかの目安程度にしかならないんじゃないのかな。
うちでも上のとは違うテストで、DBがらみのcgi組んだ時なんかは、「おお〜200/sくらいかえしてるジャン」とか思ってたら、
詳しく見てみると実は、DB接続失敗時のErrorテキスト返してるだけだった、とかもあるし・・・。
まあつまり、これ以上はようわからんとゆうことで・・・。
HTTPヘッダをてんこ盛りにすると差が大きくなるとか、チャンクでバラバラになったときの チャンクのバイト数の部分が差になるとか…。
>>145 apacheログ確認は失念してました。
今出先なので、後で確認してみます。
ここで聞いていいんかな。
php5をcgiとして動かしてるんだけど、
ttp://jp2.php.net/manual/ja/configuration.php の
「現在の作業ディレクトリ (CLI を除く) 」
からphp.iniが読み込まれない。
コンパイル時の--with-config-file-pathのほうのphp.iniが読み込まれちゃう。
php4で同じことすると
ちゃんと
「現在の作業ディレクトリ (CLI を除く) 」
からphp.iniを読み込んでくれる。
どなたかアドバイスきぼんぬ
>>146 それ漏れも疑って調べてみたけど
・ab/ab2ともHTTP/1.0でリクエスト出すので、chunked transfer自体発生しない
・応答ヘッダに X-Hogehoge: hogehoge を大量に付けて見たけど、変化せず
だった。
ただし、漏れのところでは Document Length == HTML Transferred なので、
もう
>>141 を ab -v 2 とか付けて、本文は途中カットしたものを流して
貰うとかしかないか?
150 :
149 :2007/09/22(土) 12:19:39
気になったのでもうちょっと調べたら、ab が結果的に -n で指定した 回数以上のアクセスを行っていて、その結果、レポート中の実転送量と 「完了した」アクセス数の数字がずれるのが原因と判明。 要するに ab は -c で指定された多重度でとにかく接続し続けていて、-n より 多い回数「完了」したら、その時点で走っている接続は打ち切りになる。 で、打ち切りにはなるのだけど、転送量のカウンタは回ってしまっているので、 レポート上はずれて見える。なので -c 10 -n 100 として、99 回完了して 残り 1 回という段階でもまだ 10 接続が多重で走ってる。で、そのどれかが 完了したら ab は終了になるが、残り 9 本が途中まで転送したバイト数も カウントはしてしまう。 で、このズレが発生しやすい・大きくなりやすい条件というのが - 並列度が高くて(=-n 回完了時点で余分に取る奴らが多数いて) - コンテンツサイズが大きい(余分に取った時のズレがでかくなりやすい) ということ。
おとといportsでapache-2.2.6 にしてから もう2.2.6_1が出たんかい…
リビジョンのバンプは知りません。
Apache2.2で、hogehoge.hogeでアクセスされたときは正常にHTMLを返し、 IPでアクセスされた場合に、サーバーが存在しないかのように振舞うことは可能でしょうか?
リクエストされたときのホスト名がなんであったかは apache の環境変数でわかる。それによって応答を どうするか決めるのは、PHPなら簡単。apache レベル でどうだったかは、ちょと分からないですけど。あと、 「サーバが存在しないかのように振る舞」うのの実際の 中身がやや問題鴨。
つSetEnvIf
IPアドレスでのアクセスを後で利用するならVirtualHostだな。
157 :
名無しさん@お腹いっぱい。 :2007/09/23(日) 21:39:16
solaris9にapache-2.2.4-sol9-sparc-localをインストールしましたが libexpat.so.0が見つからず起動できません。 解決方法はどのように行えば宜しいのでしょうか。 bash-3.2# ldd /usr/local/apache2/bin/httpd libm.so.1 => /usr/lib/libm.so.1 libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0 libexpat.so.0 => (file not found) libiconv.so.2 => /usr/local/lib/libiconv.so.2 libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0 libsendfile.so.1 => /usr/lib/libsendfile.so.1 librt.so.1 => /usr/lib/librt.so.1 libsocket.so.1 => /usr/lib/libsocket.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libpthread.so.1 => /usr/lib/libpthread.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libc.so.1 => /usr/lib/libc.so.1 libexpat.so.0 => (file not found) libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libaio.so.1 => /usr/lib/libaio.so.1 libmd5.so.1 => /usr/lib/libmd5.so.1 libmp.so.2 => /usr/lib/libmp.so.2 libthread.so.1 => /usr/lib/libthread.so.1 /usr/platform/SUNW,UltraAX-i2/lib/libc_psr.so.1 /usr/platform/SUNW,UltraAX-i2/lib/libmd5_psr.so.1
バイナリで入れるとは横着な
つかぬ事をお聞きしますが、PHPはもうスレッドセーフになりました?
160 :
149 :2007/09/24(月) 14:33:26
PHPは結構昔からスレッドセーフ。 Apache MPMとの絡みでpreforkでないと使えないとか話題になった頃でもスレッドセーフ。 スレッドセーフでないのはライブラリ(の一部)。
そうだったんですか。 なんか非スレッドセーフとか言い切ってるサイトとか結構あったんで なんでWindows版だけスレッドセーフなんだろう、と疑問に思いつつ勘違いしてました。
アホな質問をします。 DocumentRoot に root:root 権限の html を置いて 公開するのって問題ありますか? DocumentRoot フォルダ自体は root:root 権限で Apache または Apache2 周りの権限はデフォルトのままとします。 他のサイトを閲覧する限りでは apache:apache 権限で公開するようですが。 cgi-bin フォルダ以下も同様として CGI を root:root 権限で 置いた場合も答えて頂けると助かります。 conf の設定で変わる場合もあると思うので足りない部分があれば ご指摘下さい。
>>162 root:rootのファイルを置く事自体には危険は無い。むしろ安全。
しかしhtmlやCGIの更新のたびにsu/sudoする必要があるので、そこに危険が生じる。
HTMLやCGIをapache:apache権限で公開するのは馬鹿げているし危険だ。
CGIが操作するファイルやそれを置くディレクトリをapache:apacheにするのは普通。
>>163 回答ありがとうございます。
>root:rootのファイルを置く事自体には危険は無い。むしろ安全。
>しかしhtmlやCGIの更新のたびにsu/sudoする必要があるので、そこに危険が生じる。
なるほど。リモートで入るときのパスの漏洩や root 作業時のシステム破壊の
危険性があるということですね。
>HTMLやCGIをapache:apache権限で公開するのは馬鹿げているし危険だ。
>CGIが操作するファイルやそれを置くディレクトリをapache:apacheにするのは普通。
そうだったんですか、自分の勉強不足ですね。
勉強になりました。オライリーから読み直します。
165 :
157 :2007/09/26(水) 21:12:43
自己解決しましたので一応報告を。 expat-1.95.5-sol9-sparc-localのインストールで解決でした。 スレ汚しすんません。 恥晒ししますとexpect-5.43.0-sol9-sparc-localインストしてました.....
166 :
名無しさん@お腹いっぱい。 :2007/09/28(金) 17:29:32
CentOS 5のRPM版のApache2.2.3のsuEXECで質問です。
UserDirを有効にしといて/~user/でアクセスするとsuEXECがちゃんとそのユーザー権限で実行できるけど、
http://user.xxx.com/みたいなサブドメインでユーザーのページを表示する場合 、
VHOSTの設定でSuexecUserGroupをそのユーザーに設定しても
ユーザーのホームディレクトリが/home/userだとsuEXECのドキュメントルート/var/wwwから外れてしまうのでCGIがうまく実行できません。
ユーザーディレクトリを/var/www以下に置く、もしくはソースかSRPMからコンパイルする以外で回避できる方法ありませんか?
yumで自動アップデートさせたいので、できれば配布されているRPMのままで使いたいです。
>>166 /var/wwwにシンボリックリンク作る
レスありがとう。
>>167 少し前にそちらでスルーされてしまったので、ここで質問させてもらいました
>>168 それも試してみましたが、CGIが500エラーはいてしまいます
suexec.logにはcommand not in docroot (/home/user1/public_html/test.cgi)と出ます
>>169 じゃ
mount -bind /home /var/www/home
>>170 おお、こういう方法もあるんですね
無事にできました
ありがとうございます
>>172 /var/www/html/
以下なんかに、blog を置くからだろ。
/var/www/html/www と /var/www/html/blog に分けちゃえよ。
mod_proxyでリバースプロクシをしているのですが対象サーバーが重い場合にすぐに502を返すのですがどこを変更すればタイムアウト?までの時間を変更できるのでしょうか?
177 :
名無しさん@お腹いっぱい。 :2007/10/07(日) 20:50:41
apacheのインストーラを起動してもすぐにfinishとなって、 インストールできないのですがなんでですか?
あるぇ? APR-utilのソースを拾ってきて一生懸命ビルドしてインストールしてたけど、 httpd-2.2.6のtarのhttpd-2.2.6/srclibにapr-utilの1.2.10が入ってるじゃん?
なんだ、--with-aprとか--with-apr-utilとか指定するのはやめて、 今度っから--with-included-aprにしよっとw
apr関連をわざわざ指定したことないや。デフォconfigureでbuiltinだしね。 aprが/usr/libに元々入ってるのってRedHat系ぐらいじゃないのかな?
なぜか俺のPCだと、--with-included-aprを明示的にしてすると、 --with-egd と --with-devrandomを指定しろってエラーになるんだよね。 ApacheもAPRもPCに入ってない状態でApacheのconfigureすると、 同梱のAPRが使われるじゃん、その場合は指定しなくてもいいのに…。 だからApache同梱のAPRでインストール済みのAPRをアップデートしたい場合は /usr/local/apache2/bin/apr-1-config とかを一時的に実行不可にしてる。
質問です。何か思いついたら教えてください。 FreeBSD上でRealAudioのストリーミング配信のためHelix Serverを稼動させています。 少し前までFreeBSD4.10だったんですがいいかげん古びたので5.5に上げ、 Apacheも1.3から2.2.4にしたところ、ブラウザ側で見ると少し挙動が違うようです。 InternetExplorerでは、HTMLドキュメント上にある.ramへのリンクをクリックすると RealPlayerが自動的に立ち上がり再生が始まります。 しかし、OperaやFirefoxでは、「ファイルをダウンロードしますか実行しますか」という 類のウインドウが開いてしまい、手で指定しなければ次の挙動へ移りません。 .htaccessのAddTypeの記述の問題かと試してみると、AddTypeに書かれた内容は 正しくブラウザへ伝わっています。たとえば AddType audio/x-pn-realaudio ram rm smil とか AddType audio/vnd.rn-realaudio .ram .ra .rm .rp .smil を.htaccessに書いて試すと、Opera/Firefoxのウインドウ上にファイルタイプとして audio/x-pn-realaudioとかaudio/vnd.rn-realaudioのように表示されるし、規定の アプリケーションとしてRealPlayerが表示されているのでAddType情報は間違いなく 伝わっていると思われます。 なのに自動でアプリケーションが起動しない(つまりファイルの「ダウンロード」でなく、 「実行」を選択した状態になっていない)のはなぜでしょうか? ただ単にこれはOperaやFirefoxの仕様で、初めて上の場面に当たったときに 適切な指定をして「選択を保存」させればいいだけのことなんでしょうか? でも、確か以前にはOperaでもそんなことはせず、最初から自動でアプリが起動した ように思うんですが。。Apache1.3->2.2でCGI回りもだいぶ調整しましたが、 なにかAddType関係で罠があったりしますか?
SEE ALSO telnet(1), tcpdump(8)
>>185 176ですが、不正解でした
まだ受け付けています
>>186 はぁ? 不正解?? 受け付け?? お前に採点される覚えはない。消えろ。
使えない奴は無能です。 消えるのはYouですね。
ただのぐぐってわかるレベルな答えを出す馬鹿には興味ありません。 この中に適切解答を持ってくるオタクがいたら俺に教えなさい。以上。
実際、ぐぐって見つかる内容を語っても面白く無い かつかつな内容は、ちょぼちょぼブログに書いてる ぐぐって自分のページが一枚目に出て来ていえ〜い アクセス数見ると一日30とか 技術的な内容調べてると良く2ch引っ掛かるのは 知識ベースな意味が上がったんだろうなぁ
Operaの動作が急に変わるというのは 私も経験したことがある
193 :
149 :2007/10/15(月) 22:22:41
>>190 自分が試行錯誤して解決させた後、解決の鍵になるキーワードでぐぐって一件も
かからない時とか満足度高いよな(どうせgglが集めてない残り80%のどっかとか
各社内の中に隠匿されてんだけど)。
そこでAddDefaultCharset noneですよ
ググって調べて思うことは、ブログ厨はできなかったことを できないまままま放置するなってことだな。
FreeBSDを使用して自宅WEBサーバ(apache 1.3)を立てています。 外部にはルータのアドレス変換を利用、グローバルアドレスの取得にはdyndnsを使用しています。 やりたいことは、大方うまくいっているのですが、CGI等を使用したWEBアプリの検証行うときにリダイレクトの関係などで、検証を内部のPCから行う場合と外部のPCから行う場合で、httpd.confを切り替える必要があり面倒を感じています。 現状では、dyndnsサービスを使用して外部PCからのアクセスにはxxx.dyndns.orgでアクセスし、内部PCからは192.168.12.XXとダイレクトにアドレスを打ち込んでアクセスしています。 この場合、ServerNameを"xx.dyndns.org"にしてある場合は、外部からアクセスには有効ですが、内部からdyndnsを用いてアクセスするとルータにぶつかるので接続できません。 そこで、内部のPCから検証する場合は、ServerNameを"192.168.12.X"にしているのですが、検証を行う毎にhttpd.confを書き換えを行うのはやっかいです。 WEBサーバは外部に向けての運用がメインですので、ServerNameは基本"xx.dyndns.com"にしておきたいです。 これを解決する手段として、公開proxyを使う手段を知りましたが、質のいいproxyを見つけられない為かイマイチです。virtual hostを用いる手段などで解決できないかと思っていますが、ローカルIP、グローバルIPをうまいこと共存させる手段はないでしょうか? うまく説明できてないと思いますが、何かヒントがあればよろしくお願いします。
ServerAlias
クライアントのhostsに 192.168.12.xx xx.dyndns.com と書いておく
200 :
197 :2007/10/20(土) 14:08:16
とりあえず、バーチャルホストを2つ立ち上げて、ServerNameをそれぞれ"xxx.dyndns.org"と"192.168.12.xx"にすることで解決しました。 hostsをいじることも考えたのですが、ラップトップなので場合によりプライベートネットワークの内外を跨ぐため、避けていました。
--with-included-aprを試してみたけど、makeに渡すオプションの-が削り取られて
そのオプションのターゲットの作り方は知らんと言ってビルドが止まる…。
>>200 192...をxxx.dyndns...のServerAliasにすればVirtualHostは1個で済むよ。
>>201 はbsdmakeが入ってる環境ではenv MAKE=gmake ./configureってな感じで
明示的にgmakeを指定しないとaprのどこかでMAKE=makeというお馬鹿な定義が
入るらしい。
そして--with-included-aprを指定しないと、別件で/usr/localに入れたapr-utilを使うらしい。
>>203 はApacheのconfigureに--with-expat=builtinを渡しておけば通ると。
そういえば最近LinuxだけじゃなくてFreeBSDも試してみて初めて気付いたんだけど ApacheってGNU make じゃないとだめだよね? trunkのソースが何回やってもコンパイルできなくて悩んだけど ふとgmake使ったらすんなり通ってちょっとムカついた。 ドキュメントにはmakeが必要としか書いてないし…。
BSDのmakeが壊れてるだけだろ
FreeBSD使ってるんなら、portsだっけ?それ使えばいいじゃん。
>>206 なるほど…って上に書いてあるのはそういうことか
portsに2.3.0-devってあるんだっけ?
UseCanonicalName とか?
php5はapache2のworkerでは動かないのでしょうか?
動くけど
ubuntuでphp5をインストールしようとするとpreforkをインストールしようとします。
へー。
,、 i''-、 ./'-、 ./ `'-、 / ==/ `'-ノ 凵_ rー---- 、 __.......__ / / ./ /ニ/ 匸二 ̄ (,,../._..∠._ /ヘ /ヽ`'、 ./ ム/ ./''''''''フ ヾ―゙ ._.. -'゙゙‐'~゙____.ノ/./ ./ / l | / ./゙゙/ /;;;;;;;;/ ,゚;;;;;\ .ヾ-ー/ / i (ノ ./ / // ./ ./ 呀^^^フ/ / .l゙ ゙''ー、 ヽ_..ノ_. ノ.// ニ;;′ ./△ // / ゙'-...._ ノ ''" ゙‐''"゛ .`゙´`'-、...___.../
IPアドレス宛てに打ってくる、タイムアウト(408)になる、DoSうるさいねー。 "-" 408 - "-" "-" 162個もESTABLISHになって応答遅れる。
>>216 OSのTCP/IPスタックやパケットフィルタの方でタイムアウトを短くして
さっさとコネクションぶった切ればいいんじゃない?
phpで無限ループをしてしまうプログラムを実行してしまった場合、 apacheのプロセスをkill -9で殺しているのですが、この対応に問題はないでしょうか? みなさんが、phpで無限ループしてしまうプログラムを実行してしまった場合、 一般的にはどのようにしますでしょうか?
php は設定によるけどある程度時間がたったら処理が打ち切られるんじゃなかった? どっちにしろ php を殺したほうが安全な気はするが。
SIGTERMじゃ止まらないっけ?それだったらSIGKILLしかないよね
kill -9 が嫌なら、kill -KILLをすればいいじゃない
ありがとうございます。 わたしの頭の中では、例えば10個apacheのプロセスがいるとして、 そのうちの1個のapacheプロセスをkillすると、残りは9個になってしまうと思うですが、 そうだとすると、残り9個のapacheを全てkillすると、apacheがサービスを続けられなく なってしまうと思うのですが、杞憂な考えでしょうか? それとも、apacheのプロセスはリクエストがくる度に新しくポンっって生成される感じなのでしょうか? よろしくお願い致します。
大元の親玉Apacheを殺したらダメだけど、子供Apacheなら死んだタイミングで SIGCHLDが飛んで親玉が子供を生んでくれるからおけ。 そしてPHPなりCGIを実行するのは子供だけ。 マルチプロセスモデルの利点の一つだな。
apache2.confとhttpd.confの違いを教えてください。 以前はapache2でもhttpd.confだったと思いますが、今日ubuntuをインストールしたら、apache2.confになっていました。 いつから変わったのでしょうか?
>>225 別に変わったわけではない。
Ubunt (というか Debian) が勝手に変えてるだけ。
Debian系Linuxディストリビューションの Apache httpdのパッケージは凝りすぎて使えない事で有名 パッケージメンテナが変人で聞く耳持たないとの噂
228 :
名無しさん@お腹いっぱい。 :2007/11/01(木) 17:13:53
gentooもすごいよ
メンテナと心をひとつにすればおk あなたと合体したいってなもんだ
>>225 基本的な設定がapache2.confにある。
これは、ユーザー、もしくはパッケージのインストーラーが弄らないを前提にしてる。
追加設定をhttpd.confに書く。
そのほか、バーチャルホスト、モジュールも別に設定する仕組み。
別に変人ではないな。細かく割ってあるから、おかしくなったときに原因がつかみやすい。
当然、いつでもデフォルトの設定に戻せる。
また、他のパッケージは、apacheフォルダのconf.d以下に設定ファイルを書く。
ルールがあるので、覚えてしまえば、非常に分かりやすい。
なるほど。 configureで--with-program-name apache2とすれば、apache2.confを読むバイナリapache2ができるって事か。
>>227 別にそんな変態でもないが・・・
標準で規定されている/etc/apache2/フォルダ以下はメンテナの自由だけど、
その自由になってる当該フォルダ以下の構成とか設定ファイルの中身の
書き方とかが拡張性の高い構成・記述方式になってる点にはこだわりは
感じるけどな。多数台のコンフィグメンテで保守性を突き詰めてくと
大体ああいう書き方になる。
変人系ディストリ利用者はこんな感じってのはよくわかった
実行バイナリとか設定ファイルとかの名前が標準と違うという時点で変態。 修正が apache だけで済めばいいが、プロセス監視の設定とか各種内製スクリプトの 書き換えとかが必要になって手間がムダに増えるだけ。 すべてが debian に統一されているのならば気にならんかもしれんが、 サービスの特性に応じていろんな OS を使いわけているようなところでは、 こんなつまらない部分で独自性を主張されるのは迷惑以外の何物でもない。
この程度の差異でおろおろする技術者はいりません。
>>235 debianのapache2.confを読めば、そんな大層なことをしていないことは一目瞭然だが。
ただ、他の設定ファイルをリンクしてあるだけ。
好きに使いたければ、apache2.confを弄り倒しても同じ結果になる。
それとも、読まずに批判を口にしてるのか?
このスレを見るぐらい興味があるなら ソースから自分でビルドでしょう ディストリ・OSのパッケージは、 興味が無いけど必要なソフトウェアの管理のためにある
別にいいじゃんパッケージで。 楽だよ。
>>237 >debianのapache2.confを読めば、そんな大層なことをしていないことは一目瞭然だが。
debian がしてるかどうかは関係ないの。こっちがしてるの。
conf をテンプレートから自動生成するとかいうのは大きなサイトならば
けっこうやってるはず。そこまでしなくても snmp でプロセス監視ぐらいするのは
あたりまえ。debian のときだけ、こいつらを書き換えなきゃいかん。
ちっとも難しいことじゃないが、こんなくだらないことで手間を
取られるのは馬鹿馬鹿しい。使わないからいいけど。
純粋に疑問なんだが、実行バイナリが httpd ではなく apache2 になっている
メリットって何があるの? httpd.conf でなく apache2.conf であるメリットは?
>>238 ソースからビルドと今の設定ファイルの是非は根本的に違う。
例えば、debianのapache2.confを差し替えれば、apacheの標準の設定が要求される。
逆に、パッケージの設定フォルダをビルドしたapacheに適用もできる。
俺は、squidの設定ファイルが長すぎて見難いので、debianのapacheの設定を真似て、自分で変更してる。
要は、個人が見やすければそれでいいわけで、他人がとやかくいう筋合いはないと思う。
debianの設定ファイルが見難ければ、apacheに付いてくる設定ファイルと差し替えればいいだけのこと。
> 純粋に疑問なんだが、実行バイナリが httpd ではなく apache2 になっている > メリットって何があるの? httpd.conf でなく apache2.conf であるメリットは? 見ただけでApache2だとわかるだろ!
>>241 ああ、仕事したことないのか…それじゃ仕方ないねw
>>243 仕事上では、そういう言い方で上司は絶対に納得しない。
顧客はもっとだ。
245 :
名無しさん@お腹いっぱい。 :2007/11/02(金) 14:06:20
apache 1.3の時代はアップデート時に勝手にドキュメントルートをデフォルトに戻してた
あれには閉口した
apache.confは書き換えずにVirtualHostを作る流儀だと気付くまで何度か痛い目にあった
apache2のパッケージでは改善されているのかもしれないが
>>241 の言うようなapache2.confの差し替えでうまくいくのか疑問だ
このような問題が起きるのはパッケージ本体と設定ツールを分けないからだ
Red Hatはそうしている
Red Hatのパッケージにはデフォルトに近いhttpd.confと空のconf.dがあるだけで
それとは別に押し付けがましいGUIの設定ツールがあり、使うも使わないも自由だ
余談だがRed Hatは同じ失敗をbindでやっていて
最近まで設定ファイルの構成をあーでもないこーでもないといじっていたが
最終的に「パッケージはnamed.confを提供しない」という方針に落ち着いた
debianとかSUSEは、apacheやbindの設定ファイルは細切れにする傾向が強いよね。
細切れにする流儀はSYSV発祥かな(古い人、証言ヨロ)。 rc.localとrc<n>.d/[SK][0-9][0-9]方式がそもそもの始まりか。 SYSVは気分で細切れにしたわけじゃなく、運用管理上、複数の独立した ベンダなり運用者が相互に干渉せずに設定の追加削除をしたいがために rc.local方式をひねってこの方式にしたはず。 この細切れ方式、時代が経つにつれて洗練されていったのはいいけど 逆に見通しが悪いというトレードオフで、現代に至るまでvi対emacs並みの 伝統の一戦となっている。
質問 fopenとかでhtmlファイルを作ろうと思ってます。 ディレクトリのパーミッションは707とかですけど 755じゃなくてもセキュリティは大丈夫でしょうか?
250 :
名無しさん@お腹いっぱい。 :2007/11/09(金) 10:52:10
apacheでIf-Modified-Sinceヘッダを有効にする方法を教えてください
は?
252 :
名無しさん@お腹いっぱい。 :2007/11/09(金) 22:20:23
Fedoraで2台のApacheサーバーを管理しています。 access_log と error_log を一括で管理する為のツールで、オススメありませんか???
>>252 聞きたいことはなんとなく想像できるけど、それだけじゃあ
質問としてイミフだよ。2台の鯖でバラバラに記録されているログを
タイムスタンプを元にマージしたいってこと?
アクセス数にもよるけど、perlとかで書くのはダメかな?
100万req/dayぐらいなら十分処理できると思われ。
254 :
名無しさん@お腹いっぱい。 :2007/11/09(金) 22:47:41
例えば syslog サーバのように、 ログサーバーに送って、そこで管理できれば。。。 と考えています。
あと CustomLog "| logger" とかwww
mergelog使えば?
スペルこうだっけw
SuExecでCGIを実行しても 他人のディレクトリにドカドカ上がり込んで これるのですが、出来なくするにはどうすればいいでしょう?
>>259 suEXEC で実行してることは、どうやって確認した?
suexecに幻想抱きすぎ
>>260 最初それでやろうと思ったのですが、
Apacheから静的なファイルを読み取る
時まで拒否されてしまいます
何か良い方法があればご教示下さい。
>>261 CGI上で id コマンドです
大手のレンタルサーバはどうやってるんでしょう…
ついでと言っては何ですが大量のバーチャルホストで
SuExecする方法も分かりません
やはり自分でモジュールを
書くしかないのでしょうか
もしかしてファイルシステム的にやるんですかね…
265 :
名無しさん@お腹いっぱい。 :2007/11/13(火) 02:27:07
やべー腹いてぇwww こいつまともに設定できてない上にSuExecがなにかわかってねーだろwwwww その上、おそらくApache2使いwwwwwwwwwwwwwwwwwwwwwwwwww
266 :
名無しさん@お腹いっぱい。 :2007/11/13(火) 02:56:21
>>265 __ __ ___ _____ _____ _
| | / / | // | /__ __/ [][] / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄フ / /
| |. / / / / / / ̄ ̄|. l / /  ̄フ / ̄ ̄/ / ̄ ̄ ,__/ /
| | / / / / / /. / / | |___ / _ニ^ヽ_./ / /\ ヽ |/ ̄ ̄\
| | / / / / /  ̄ ̄ / \__| // / / / / / / / / ̄ ̄\\
| |. / / / / / / ̄ ̄ ̄ //\ / / / /- ~-ー ^ / / | |
| |/ / / /. / / // // / / / / | |
|. / / / / /  ̄ // / /____人 フ / /二ヽ /
| /. / | ./ / // ヽ ____ゝ ヽ_/ \ニニΛ\
 ̄ ̄ ̄  ̄ ̄ ̄.  ̄ ̄  ̄  ̄
それぞれのユーザを同一グループに所属させて、chmod 0705 $HOME するのが王道かな。
>>267 あー…! それは盲点でした
属性はグループが優先されるのですね
どうもありがとうございます
269 :
名無しさん@お腹いっぱい。 :2007/11/13(火) 21:58:51
wwwwwwwwwwwwwwwwww爆笑www
270 :
名無しさん@お腹いっぱい。 :2007/11/13(火) 22:29:51
>>269 _____ __ __ ___ _____
/ \ | | / / | // |
/ / ̄ ̄\ .\ | |. / / / / / / ̄ ̄|. l
/ / /. / ___ _ . _ . | | / / / / / /. / /
/ / /. / / \ / / . / /_ | | / / / / /  ̄ ̄ /
/ / /. / ./ / ̄ ̄/ /  ̄ / ___ \. . | |. / / / / / / ̄ ̄ ̄
/ / / ./ / / / / / ̄/ / / \ ヽ .| |/ / / /. / /
/ /___/ ./ / /__/ / / / / / / /. . .|. / / / / /
/ / \___/ / / / / / / | /. / | ./ /
 ̄ ̄ ̄ ̄ ̄ ̄  ̄ .  ̄ . ̄  ̄ ̄ ̄  ̄ ̄ ̄.  ̄ ̄
煽ってるヤツは楽しいのか?w
272 :
名無しさん@お腹いっぱい。 :2007/11/14(水) 00:54:26
AA貼りたいだけなんじゃねwwwwwww
┐(´ー`)┌
apacheの設定ファイルって、 なるべく、1つのファイルに書いてあったほうが見通しが良いと思うんだけど。 ワシのようなCONFIG_LAYOUTの古い頭では通用しなくなってきてるのかな。 CentOS5に入ってるapache2をいじる必要があって、 index.htmlがないときに、 /var/www/error/noindex.htmってのが、 /etc/httpd/conf.d/welcom.confから呼ばれるんだけど、 /etc/httpd/conf/httpd.confの Include conf.d/*.conf って行で呼ばれているのにたどりつくまで、手間かかったのよ。 Linuxってわりと、こうなってるのかね?
Linuxは全部そうなってるね。ひとつの例外もなく。
276 :
名無しさん@お腹いっぱい。 :2007/11/22(木) 14:16:58
ソースから入れるから知らん
>>275 さんきゅーです。
「ひとつの例外もなく」そうなってると聞いて、ある意味安心した。
なら、覚えることにしよう。
Slackwareのころからなんだろか。
Linux流でビルドしたときの、config.logとconfig.statusどっかに転がってないか探してみる。
けど、生のapache layoutはこれからも残して欲しいものだ。
念のためディストリ全部調べてみたけど ひとつの例外もなくそうなってたよ。
Apache2.2だとソースからでも設定ファイルコマ切れだけど?
280 :
名無しさん@お腹いっぱい。 :2007/11/22(木) 15:33:15
ソースファイルバラバラ殺人事件だな
なので、2.2は使ってない。 SMPだけ一部2.0で、大部分は1.3でいけるだけいく。 Linuxはしょうがないので、覚える。
設定ファイル一つだけ、って、巨大な関数が一個だけの プログラムみたいな感じ。main() が何ページもあるCプログラム みたいな。
1.0.0のhttpd.conf
ServerType standalone
Port 80
User nobody
Group #-1
ServerAdmin
[email protected] ServerRoot /usr/local/etc/httpd
ErrorLog logs/error_log
TransferLog logs/access_log
PidFile logs/httpd.pid
Timeout 400
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 30
#<VirtualHost host.foo.com>
#ServerAdmin
[email protected] #DocumentRoot /www/docs/host.foo.com
#ServerName host.foo.com
#ErrorLog logs/host.foo.com-error_log
#TransferLog logs/host.foo.com-access_log
#</VirtualHost>
思えば遠くへ来たもんだ
2.0ってSuExecまともに動くようになったの?
confの構成がいやなら自分でまとめてもいいじゃん。 俺はそうしてる。自動生成させてるからだけど。
もともと分かれてたのを、1.3.4から統合した ===================== In addition, we have moved all of the server configuration directives to a single file (httpd.conf-dist), updated mime.types, and improved the examples for first-time installers. で、また分けるのさ。
そりゃ、自宅鯖程度ならいいけどなw
みんな1ファイルにまとまってた方がいいの? おれはデカいファイルを把握する方がめんどいけどなぁ。 ある程度わかれてた方がいい。
ひとファイル開いて編集すればいいんだし。 中は上からSectionごとにまとまってあるでしょ。 1.Global Environment 2.Main(access log module) 3.Vietual Hosts で、どうしても2.2使うんで構成変えるなら、 mimeとIfModuleは別にして、この順番で1ファイルにする。 で、所帯が多いサーバのVirtualは、ホストごとにファイルに分けて整理しとくかも。
バーチャルサーバー毎に分けてる メインは極力一つにしてる 少ない方がメンテナンス楽だよね
好きなようにすればいい 正解なんて無い
どうせ最初っから入ってるのはサンプル。
Linux系で分割するのは、rpmなんかを使ってのバージョンアップを想定していると思う。 個々にカスタマイズした部分(includeされる部分)はそのまま残して 大元のhttpd.confは(大きな変化があっても)そのまま置き換えて新版に変えられるように。 皆がconfの設定に精通していたり、confのバージョン管理をしていたりするわけじゃないから。 多分。
apacheで商売してる会社は、使いまわすからな パーツ(細切れの設定ファイル)をストックしてあるし
>>293 でもRedHat系のhttpdのrpmはupdateするとrpmsaveで勝手に置き換えられるから、
迷惑な気分になるけど。
ふつーの感覚だと運用中のconfを優先するだろって気分。
>>296 パッケージの思想としては、Debの方がいいのかもね。
仕事でRedHatを使わざるを得ないからめんどくせー。
apache 以外で include に対応してない conf でも、 カテゴライズして細切れ管理してる漏れは変態なんだろうか?w make config とかして結合して使ってます。
>>298 少数派だろうけど変態ではないと思う。さらに、
start: hoge.conf
hoged
stop:
pkill hoged
reload:
pkill -HUP hoged
のようなターゲットを Makefile に書いておいて、起動スクリプトを
#!/bin/sh
cd /etc/hoge
case "$1" in
start|stop|reload) make $1;;
esac
のようにしておくと、設定ファイルのアップデートを忘れて
起動することがなくなってさらに幸せになれる。
おーはー 山ちゃんは、ガキの使いをやめへんで〜〜〜!
>>299 もうそこまでいくと/sbin/initからmake -j8とかで起動処理回し始めそうだな
2.2.7がそろそろ出そうだ
mod_bwについて質問させてください。
BandWidthディレクティブで、たとえば以下のようにIPアドレスを範囲で指定した場合、
BandWidth 192.168.0.0/24 10240
クライアントIPアドレス1つあたりの帯域が10240Bpsになるんでしょうか、それとも、指定した範囲のIPアドレスからのアクセスの合計の帯域が10240Bpsになるんでしょうか。
MaxConnectionディレクティブと組み合わせて、特定のディレクトリ単位のMaxClientsのような設定をしたいと考えているので後者の動作を期待しています。
ttp://bwmod.sourceforge.net/files/mod_bw-0.7.txt ドキュメントを見ると後者のように思えるのですが、複数のIPアドレスからアクセスできるような環境を構築するのが難しいので検証はできていません。
ご存じの方がおられたら教えてください。
>>304 ifconfig alias で private たくさん振れば?
>>305 ありがとうございます。IPアドレスを割り当てるのが手続き的にめんどくさい環境なのです。
ソースを読んでみたところ、後者の動作のようです。
とりあえず単一のIPアドレスからのアクセスで動作を検証してみました。
BandWidthでの帯域制限はできたのですが、MaxConnectionの動作に問題があるようで、接続数オーバー後まったく接続できなくなるという現象が発生しました。
中途半端なタイミング(error_logにBroken Pipeが出るような状況)でコネクションを切断すると接続数のカウンタがデクリメントされずに残ることがあるようです。
このままでは使えないので別の方法を探してみます。
借り物サーバで、アプリケーションレベルでまで QoSやるのは骨だと思う。 IP層より上でやるのは 正直うまくいかんよ。
mod_ruidの使用を検討中なのですが、 > there are some security issues, for instance if attacker successfully exploits the httpd process, > he can set effective capabilities and setuid to root. という配布元のコメントが非常に気になります。 セキュリティ部分のリスクをできる限り正確に把握しておきたいのですが、 ナカナカうまく理解することができません。 例えば、mod_ruidのソースを見てみましたが、 ソースレベルでsetuidできるUID/GIDが100以上となってます。 普通 mod_ruid.so はroot所有になっていて、apache権限では書き換えられないはずで、 にもかかわらず、apacheの権限が奪取されたとして、 rootに昇格されてしまう危険性が発生する可能性があるのはなぜなのでしょうか。 (UID100以上のユーザの権限が奪取される可能性があるよ、なら分かるのですが)
rootで実行してるから
315 :
311 :2007/12/20(木) 17:20:04
おいらの質問に誰かアドバイスくれないでしょうか。orz
ドキュメントルートディレクトリに、 hoge.html huga.php foo.php bar(データベース) moe.sh(シェルスクリプト) image(ディレクトリ) があります。 imgageの中には画像が入っていて、 huga.phpが呼び出します。 で、barとmoe.shに触られたくなくて、imageを掘られたくないのですが。 どのように設定すれば良いのでしょうか?
掘ってあるのに掘られたくない? db公開するって…
>>316 パーミッションをその通りに設定すればいいだろ
ディレクトリ内の一覧を表示させたくないなら-Indexesすれば良いだけ。掘るとか判らずに使うなボケ。 barもmoe.shも非公開のディレクトリに移動すればいいだろ
脱線するが、「ディレクトリを掘る」って昔はmkdirの意味で使ったけど、 最近は、ディレクトリの中身を見られちゃう、という意味で使うのかね?
あ゛ーー なんか使われてるような気もする 時代的なものより、コミュニティに依るところが大きいような気もするけど
自作板のくだ質スレで質問してた軽度の知・・・ピーの方ですか。
>>324 一覧なんか表示されてないから大丈夫だよ。
imageの下に空のindex.html置くとかは? cd image ; touch index.html
-Indexesがなぜうまくいかないのか知らないが、 それならディレクトリを chmod -r すれば一覧は表示されないだろ
329 :
311 :2007/12/23(日) 16:01:47
ちょっと質問の方向性を変えます。 mod_ruid を入れた場合、 直接的にsetuidできるコマンドなどが生成されるわけではありませんでした。 にも関わらず、apacheがsetuidできるようになっている、ということは 直接的にsetuidされたパーミッションではないものでもsetuidできる、 ということなんでしょうか?
それがPOSIXケーパビリティ。
332 :
331 :2007/12/27(木) 03:23:37
すいません。
>>331 の各リンクは、最後の’)’をはがして下さい。
あと、言い忘れましたが、当方の環境は、
distri Cent4 Cent5 FC6 、
gcc 3.4.6(Cent4)、4.1.2(Cent5,FC6)
で、全て同じ現象が出ます。
ちょうどそのMLのスレッドで開発者が
Correct; this is not a regression, not a showstopper, but a new illustration
of an existing bug. We may remove the shm backing store, and destroy the shm
object (or let it clean up) but it will attempt to re-remove itself. It's
illustrating the bug, no patch was forthcoming, I'm considering it closed until
the next go-around with release 1.2.13.
といってるじゃないか
<
http://www.mail-archive.com/[email protected] /msg19314.html >
単純に言えば、気にしなくていいということだ 開発者はちゃんとそのテストが失敗することを把握したうえで、 影響はないと判断して1.2.12をリリースした
335 :
331 :2007/12/27(木) 13:19:45
>>333 >>334 ありがとうございます。
そのページも、一度yahoo翻訳にかけてみたんですが、なに言ってるかイマイチ理解できませんでした。
私のつたない英語力では、
>>334 のような解釈には読み取れませんでした。
とりあえず問題なさそうとゆうことがわかったので、ひとまず安心です。
どうもありがとうございました。
apache2を起動するとこんなメッセージが表示されるんだけど意味わかんね。 [Sat Dec 29 20:50:45 2007] [warn] The Alias directive in /etc/apache2/apache2.conf at line 129 will probably never match because it overlaps an earlier Alias. apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName apache2.confの129行目はこんな感じで関係なさそうなんだけど。。。。 Alias /icons/ "/usr/share/apache2/icons/" 回避方法を教えてくださいです。
apache2.conf の 129行目よりも「前」のところで重複する
alias が定義されてるから。。。云々というメッセージでっせ。
>>336
>>337 教えてくれてありがとう
apache2.confを確認してみたけどわかんなかった。。。。
129行目から上はほとんどデフォルトのままだし
alias的な記述は無いような。。
apache2.conf の上流のほうで、どっか他所から別の
conf ファイルを読み込むようになってたりしない?
そこに、重複する Alias directive が書いてあるという
ふうな場合があるよ。
>>338
確かにincludeはたくさんある。 けど、その中身は重複は考えにくい外部ファイルばっかりだけど。。。 # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # Include all the user configurations: Include /etc/apache2/httpd.conf ← 空 # Include ports listing Include /etc/apache2/ports.conf # Include generic snippets of statements Include /etc/apache2/conf.d/[^.#]* ← charsetしか入ってない
>>340 なら、
Alias /icons/ "/usr/share/apache2/icons/"
の直後あたりに、以下のようなDirectory directive はいってる?
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
まさに!その通り書いてあるけど コレが問題?
Include /etc/apache2/conf.d/[^.#]* だけど、/etc/apache2/conf.d/ の下の全部のファイル引っ張ってこい、 て意味だよ。そこに、xxx.conf て全然無いの?
conf.dの下はcharsetだけ 中身の記述は #AddDefaultCharset UTF-8 こんだけ
>>342 いや、そう書いてあるならおkのはずだ。
チェックポイントのネタ切れたよ。こりゃ、分からんわ。
おいら、337=339=341=343 ですた。
付き合ってくれてありがとう とりあえず起動してるから じっくり考えます
/icons/ というaliasが 無効になっているという話なんだから 実際にそこにアクセスしてみて、何が見えるかが手がかりにならないかね。 もし/usr/share/apache2/icons/ が見えるなら同じ設定が重複してるっぽいし。
>>346 です
>>347 よく考えたら、/icons/にアクセスするというのは
どういうことだ?よくわかんない。
/usr/share/apache2/icons/は普通にアイコン画像が
たくさんある。
つか、apacheのアイコンなんてコメントにしてもいいような
気がするんだけど。。。。
index.html を入れてないディレクトリへのアクセスを許容して
ディレクトリリストを表示させてやるとき用のアイコンだよ
>>348
つまり Opsions Indexesしてないから コメントしても問題ない?
サンクス!
何度もゴメン icons辺りをコメントして再起動すると * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName 一応再起動はOKになるが、NameVirtualhost近辺のエラーだろうか。。。 動作は問題ないんだけど、気になる。
alias の行以外に何をコメントアウトしたの?
Directory部分も一緒にコメントしますた #Let's have some Icons, shall we? #Alias /icons/ "/usr/share/apache2/icons/" #<Directory "/usr/share/apache2/icons"> # Options Indexes MultiViews # AllowOverride None # Order allow,deny # Allow from all #</Directory>
index of のページが日本語ファイルだと文字化けしてしまうんですが、文字コードの指定とかできますか?
>>356 運用でカバーすることは不可能なのですか?
>>356 その辺に脆弱性があったとかで設定で文字コードを指定できるようになったっぽいよ?
mod_info入れればmod_aliasの設定が全部分かる
360 :
308 :2007/12/31(月) 15:35:58
361 :
311 :2008/01/02(水) 17:16:40
>>330 なるほど・・・・
以下みたいな感じですかね?
・mod_suid2
setuidできるプログラムが必要、
かつそれを利用するためにroot権限でapacheを起動する必要がある。
apacheにセキュリティホールがあってのっとられたら
root権限奪われたことになるので一巻の終わり
・mod_ruid
apacheにセキュリティホールがあってのっとられても
POSIXケーパビリティで、root起動ではないため、
完全なroot権限ではなく、
あくまで setuid などに限られた権限しか奪われない
う〜〜ん、あってるのかな・・・
そもそもsetuidが自由にされてしまう状態と
root権限が奪われてる状態って違うのでしょうか。
後者がイッテヨシ状態なのは分かりますが、
前者も変わらないのでは?
草薙は秋田顔だよ。
すまん誤爆orz
ルーターはメルコだよ。
365 :
名無しさん@お腹いっぱい。 :2008/01/10(木) 03:20:20
いちいちログローテイトのたんびにHUPが必要なのってどうよ? 今時ルーティンなんだからログのハンドラ取り直させるためだけに HUPなんてさせるのなんとかして欲しいなぁ。。
HUPつーかUSR1で回ってくれたほうが余分なサイクル一切使わないし 信頼性も高いし優れてると思う。
そもそもの疑問: なんでみんなapachectl使わないで自前でHUPなのか。 restartだとダウンロードが切れちゃうのに、ほとんどのディストリではそれがデフォルト。 まさかそんなあほな設定だとは思わないで1週間使い続けて、苦情が来て気付いた。
>>369 伝統的にリロード処理はHUPだから、ついやってしまった。今は反省している。
てなとこかと。
そもそもgracefulかそうでないかで分ける必要なかったな。
実際、init.dレベルでは無視してるディストリもある。
ユースケースを考えれば設計ミスの部類だろう(重大ではないので
ことさら責めるような話でもないが)。
2.2.8って言うと、FreeBSDを始めて使ったバージョンと一緒だ
特定メソッドでのアクセスの場合に 別プログラムへログ出力を渡す、みたいなことをしたいんだけど、 既存のモジュール利用して何とかできないでしょうか。 モジュール自体のカスタマイズや作成も考えたんですが、 そこまでプログラミングに精通もしていないので。。
ログってアクセスログ? SetEnvIfでRequest_Method見て環境変数設定して、CustomLogで環境変数を指定するだけ。 POSTでアクセスログを取る例: SetEnvIf Request_Method "^POST$" access_is_post CustomLog "|別プログラム" common env=access_is_post あるいは別プログラムの前にgrepをはさむのもいいかもね
webdav の delete で削除したファイルの データサイズを調べる方法ってないでしょうか? どうもログには残らないようで汗
377 :
374 :2008/01/19(土) 15:29:29
>>375 ありがとうございます。
他にもapache自身に処理させなくても
ちょっと考えてみれば、渡すプログラム側でgrepに近い処理するのも
ありですね、参考になりました。ありがとうございます。
気がつけば新しいApacheが出てたorz
mod_ssl マダー?
apacheのオプションって、将来使うかもしれないと思うものまで含めて、 殆ど全部インストールしているんだけど、あれって使うものだけに絞って インストールしたら、処理って結構早くなりますか? それとも、大した差ではないでしょうか? 今、運用しているので、大した差でなければサービスを止めてまでする必要があるか、 悩むところなんですが。
Linuxのカーネルなんかと考え方は一緒。 モジュールとしてコンパイルされているなら、設定ファイルから消せばそのモジュールは読み込まれない。 商用UnixやLinuxに初めから入っているApacheのモジュールが、スタティックリンクされているってことはほとんどないと思うし。 どっちにしろ、処理能力の問題においては、読み込まれたモジュールの数なんて大した影響ではないと思うが。
詳しい方 prefork → Worker にする際のメリット、デメリットを教えてください!
メリット: 速くなる デメリット: 動かなくなる
動かなくなるってどうなるの? アクセス集中すると落ちるって事?
マルチスレッドで動くことを考慮してないのが落ちたりするって話
>>381 詳しくありがとうございます。
makeに結構な時間が掛かるので、結構ボトルネックになっているのかと思いました。
>>386 thx
怖いからpreforkのままにしておきます
389 :
名無しさん@お腹いっぱい。 :2008/02/03(日) 21:04:25
こうやってまたレガシーが残るのか
PHP使うならpreforkで、それ以外なら、とりあえずworkerで、でいいんじゃないのかな
>>389 prefork 残るとなんかまずいんだっけ。
preforkなら、子供が死んでも、親がまた子供を作ってくれる。
もしかして prefork 以外のものはそれをやってくれないと思ってる?
やってくれる。
こういったログが大量に…。 121.89.202.193.serverhosting.pnet.hu - - [05/Feb/2008:10:42:55 +0900] "GET /./././././././././././././././././././././././././././index.php HTTP/1.0" 200 8134 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)" 以下数千行…。 アクセス拒否してやったら、イギリスやらアメリカやらオランダやら、さらにはEU連合とかからアクセスしやがる。 日本以外拒否するぞ…
396 :
名無しさん@お腹いっぱい。 :2008/02/05(火) 17:52:51
そりゃ日本人より外国人のほうが多いんだから そういうことするのはたいてい外国人に決まってる それでわざわざ外国を拒否するなんてバカだ
>>396 2行目→3行目の論理展開がおかしいぞw
>>396 わかりました
日本語圏からのアクセスを遮断してみます
400 :
名無しさん@お腹いっぱい。 :2008/02/08(金) 21:15:01
1.3.41用のmod_sslって出ないんですか?
Webalizerでホスト名を表示させたい場合、apacheの設定でHostnameLookupsをONにしないといけないのでしょうか?
拡張子htmlのファイルだけど、中身はphpで書かれたものを、 phpとして動かしたいのですが、どのようにすればよいでしょうか?
>>403 phpのハンドラを設定する or mod_rewriteなどで外から見た名前だけを変える
>>403 拡張子 php のファイルが php で書かれたものとして動かすようにする
設定のうち、ファイルの拡張子に相当する部分を html に読み替えるだ
けで良いのでは?
Apache22+FreeBSD6.2を使っています。 サーバーを立ち上げて簡単な負荷テストをしたのですが、 F5を10秒間押し続けるだけで、プロセスが大量に作られ、以下のようなエラーが出力されて画面が表示されなくなります。 server reached MaxClients setting, consider raising the MaxClients setting 「MaxClients」は、200に設定していますが、これを上げる方法しかないのでしょうか? いくら上げても、F5の連打ですぐにサーバーがクラッシュしてしまうので、 これに対応できる設定の方法はありませんか? 宜しくお願いします。
>>407 keepAliveを切るか、タイムアウトを短くしてみたら?
409 :
名無しさん@お腹いっぱい。 :2008/02/21(木) 20:47:37
>>407 上げるしかないね。
あるいは同じIPアドレスからの複数接続を拒否するモジュールを自作するか。
ちなみにこの用途ではmod_limitipconnは役に立たない。
あと蛇足だが、クラッシュ???
なんでもかんでも落ちたことにするなよ
>>407 クラッシュって、OSごとフリーズしちゃうか再起動しちゃうってこと?
そんな程度で陥るかなぁ?
apacheが一時的にリクエストに応えられなくなるぐらいじゃない?
んで、対策としてなんだけど、200以上上げるのはあんまりお勧めできない。
workerにしてスレッドとプロセスの調整をしても限界あるし、それを超えたいなら
複数台で負荷分散するしかないね。
>>408 もいってるけど、一点のチューニングにだけとらわれず、システム全体に
対するチューニングが必要だよ。kernelのネットワークバッファ周りやら、
apacheのリソース周りやら色々。
411 :
410 :2008/02/23(土) 20:40:33
追加だけど、apacheのモジュールならmod_vhost_limitでどう?
FreeBSDならpf使って制限かけられる。 max-src-conn, max-src-conn-rateで制限。
good solution
prefork+SuExec有効状態で大量にコネクション張られたら root権限のプロセスが山程出来てシステム停止した覚えが
Apacheのスタートをしようとしたら、 「The requested operation has failed!」 とでてきます…どうすれば普通にスタートできるでしょうか…
エラーログをまず読む。
417 :
名無しさん@お腹いっぱい。 :2008/02/25(月) 09:04:29
access_logに以下の自己アクセスが大量に残っているのですが、 これはなんでしょうか?リモートIPは、自分のサーバーのIPです。 宜しくお願いします。 xxx.xxx.xxx.xxx - - [25/Feb/2008:09:00:00 +0900] www.example.com "GET / HTTP/1.0" 403 202 346 "-" "Apache/2.2.6 (FreeBSD) mod_ssl/2.2.6 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.5 with Suhosin-Patch (internal dummy connection)"
proxyでもさがしてんじゃないの
420 :
名無しさん@お腹いっぱい。 :2008/02/25(月) 09:45:10
423 :
名無しさん@お腹いっぱい。 :2008/03/06(木) 19:21:15
ソースからインストールしたapacheのserver rootを rpm版のように/etc/httpdにしようと思います ただ、server rootはhttp.confの中で設定しますよね? 鶏が先か玉子が先かみたいな状態になるんですが、 どうしたら出来ますか?
424 :
名無しさん@お腹いっぱい。 :2008/03/06(木) 20:30:10
425 :
名無しさん@お腹いっぱい。 :2008/03/06(木) 20:32:55
その程度変更できないんだったらソースから入れる意義がないと思うぞ。 単なる自己満足?
427 :
名無しさん@お腹いっぱい。 :2008/03/08(土) 15:49:12
logrotateってkill -hupしてるんですが何か問題はないのでしょうか? apacheはgracefulに終了させたりするのに いきなり-hupを送りつけるのは乱暴なのではないかと思うのですが・・・
429 :
名無しさん@お腹いっぱい。 :2008/03/08(土) 18:28:28
>>365 あたりで話題になってる。
俺は、いじらない場合はHUPを送るようにしてるディストリは下に見てるよ。
logrotateとmailmanのコンボ技で/var溢れさせられてからlogrotateは インストール後真っ先に止めるプログラムだ。
それは/varをケチり過ぎなだけのような・・・
432 :
名無しさん@お腹いっぱい。 :2008/03/11(火) 23:10:46
Apache2.2を使っているのですが、 毎日勝手にリスタートしています。 時間もマチマチですし、わざとやっているわけでもありません。 考えられる原因ってどのようなものがあるのでしょうか? 宜しくお願いします。
433 :
名無しさん@お腹いっぱい。 :2008/03/11(火) 23:14:45
ちなみに、エラーメッセージは↓です。 SIGHUPをApacheに意図して送ったことありません。 [notice] SIGHUP received. Attempting to restart [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter [notice] Digest: generating secret for digest authentication ... [notice] Digest: done [notice] Apache/2.2.6 (FreeBSD) mod_ssl/2.2.6 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.5 with Suhosin-Patch configured -- resuming normal operations
apache22_http_accept_enable="YES"
435 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 01:56:28
apacheの追加モジュールで*.cと*.soってありますけど、 どう違うんですか?mod_rewrite.cとmod_rewrite.soは どっちを設定したらいいんですか?
436 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 02:05:48
rewrite_module モジュール識別子 mod_rewrite.c モジュールソースファイル mod_rewrite.so モジュールのDSOファイル
437 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 13:40:25
>> 435 返信ありがとうございます。 httpd.confに LoadModule rewrite_module modules/mod_rewrite.so AddModule rewrite_module.c という行がありますが、これらはどのような意味なのでしょうか。
いいかげん1.3は捨てれ。
inetdモードで動かしたいので 1.3系は必須です
440 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 14:56:54
いいかげんinetdモードは捨てれ。
>>432 OSは何れすか? 恐らくだけど、ログローテーション周りで
別の処理が走って勝手にHUPしてるんだと思う。
時刻がマチマチなのは、時刻がトリガになってるんじゃなくって、
ログサイズとかなんじゃね?
たまーにしかクエリが飛んでこないような Web API を組み込んだシステムの場合には inetd 経由の方が心理的に落ち着くこともあるかもねw 例えばメール鯖に Web API 経由でアカウント操作できる仕組みを作るときとか。 もっとも apache を起動したままにしても大してリソース食うわけじゃないし、 inetd 配下で動作する httpd を perl なり ruby なりで書いても良いんだけどね。
444 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 19:41:57
httpd.conf中でincludeするファイルがないとエラーになりますが なければ読まないだけでエラーにならない方法ありませんか? IfFileExistsみたいなディレクティブがあればいいんですが・・・
C などで作った CGI がセグメンテーションフォルトとか起こした時って Apache 本体の方も 巻き込まれますか? 何か子プロセス起こしてるっぽいけどどうなんだろ。 あと CGI が巨大なライブラリ参照している場合って、CGI 実行のたびにそのライブラリが ロードされるんでしょうか。
446 :
名無しさん@お腹いっぱい。 :2008/03/13(木) 20:02:07
>>445 >Apache 本体の方も巻き込まれますか?
いいえ。ApacheとCGIは別プロセスだから。
>CGI 実行のたびにそのライブラリがロードされるんでしょうか。
はい。
>>446 もやもやしたものが解けました。ありがとう。
apache意外のHTTPサーバー探すのが早そうだな
>>444 ワイルドカードを使うのは?
Include "conf.d/*.conf"
あれば読むし、なければ読まない。
451 :
名無しさん@お腹いっぱい。 :2008/03/14(金) 00:18:27
ダイジェスト認証をログアウト状態にさせるにはどうしたらいいですか? 一回パスワードを入力したら、ずっと認証されたままなんですが・・
452 :
名無しさん@お腹いっぱい。 :2008/03/14(金) 01:07:29
それはクライアント側の問題では。
Status: 401を送りつけてやればよい。
>>451 Digest? Basicじゃなくて? よくワカンネ
そえばウチのバッファローのルータはBasic認証なんだけど、
ログアウトってのがあって実行すると、認証ダイアログに戻るな。
tcpdumpとかで見てみれば分かるけど・・・
# メルコのルータじゃないぞw
456 :
455 :2008/03/14(金) 07:58:31
こんな感じですた。 GET /cgi-bin/cgi?req=twz&frm=logout.html HTTP/1.0 User-Agent: w3m/0.5.1 Accept: text/*, image/* Accept-Encoding: gzip, compress, bzip, bzip2, deflate Accept-Language: en;q=1.0 Host: 192.168.11.1 HTTP/1.0 401 Unauthorized Content-type: text/html Date: Thu, 13 Mar 2008 22:36:42 GMT Connection: close WWW-Authenticate: Basic realm="AirStation" ここで <a href> とか <meta> とか使ってトップページに戻せば良いみたいです。
>>455 なんだ。メルコじゃないのか。
んじゃダメだなw
458 :
名無しさん@お腹いっぱい。 :2008/03/17(月) 05:15:18
適切なmaxclientsを求めるために、 maxのプロセスサイズを知りたいのですが、 どうやればいいですか?
ps(1) で VSZ と RSS を見て概算する。
ヽ/l l ニ|ニ ,.、-''"..;:;:;:;:;:;:;:... `'ヽ、 ( ( ̄  ̄) /....:::;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;.....ヽ、/ ̄ ̄ ̄ ̄\/  ̄  ̄ i_;;、:_;、;_;、;、;、、ィッ.;:;:;:;:;: / 興 男 君 ,.、-──-- 、.,_ ,、 | ,,,,,, / ;:;:;:;:;:;: | 味 の : ``''--イ ,),、,! ''''' \ ;;;;;;;;;_| が は : ヾー'゙ |ヒニニュ ャニ,ニニ、> 〉;; / _| あ だ ノ l ハ l ヾ トイ `!゙l)_j ' iリ__, ` }ii l f'ト〉 る か _,,.ノ _ノ / ノ ノ ノノ!_丿 | l ` " ''' }ii リノ | の に |\__ ノ ,、ィ'-=z=F [_ .l! .{ 、 ィ!ii;}' ノ| か | -‐''゙_ノ ,ノ '゙ (ソ ヽ {! ゙ー<⌒' ,ミi;i;}ー'゙ | ね | 、 ィッ>f「 _,,二- ヽ. }i、 -===-' リiii;ツ | ? | `〒T〔!| r ,_ノ _ノ}lli, -r=‐ ,i;llilili| > _____/`ヽ、 ゙、ヽ`! l _ _」 // '}llli, ,;i|i;, ,,ii;ilililll'゙リ /  ̄ l l ,、 ''⌒゙ヽ、 `ト.、! lj (__l、/ | ゙ト!llllllllllliillllllllヅ_、-゙ /,l l / l ゙ト、 t'゙ | | | |、'lトllトllトツ "´ // l l / ,ィ、化ァ ',\ l 〉 | | | ゙、 //∧ / / l l l (爪((、`ー'′ ', `''t‐--'′〉ト、 | | |. Vハ彡 ∧ / |_L、 i | /  ̄ ̄ ̄`¨`''ー--ニL_ `!、 `! l ̄`''┴--┴'-'゙-─…''"´_,, ィ| l |/ h ヽ ` ', | O``''────…'''"´ O',゙:、 l |/
メルコのルータには興味がある。
462 :
名無しさん@お腹いっぱい。 :2008/03/20(木) 15:01:41
Apache(2.2.6使ってます)の同時接続数についてなんですが。 MaxClientsなりで制限しない限り、リクエストの増加に応じて、搭載メモリ限界まで プロセス(orスッドレ)をどんどん起動してしまい、Apacheが不安定になったり死んだり してしまう、という認識であってますでしょうか?
>>462 ×搭載メモリ限界までプロセス(orスッドレ)をどんどん起動してしまい
○プロセス(orスッドレ)がスワップを使用し始めて
>>462 合ってない。デフォルト制限が暗黙に効いてる。
むしろkeep-aliveのタイムアウトをめちゃくちゃ小さくするほうが重要。
すいません。こちらにも書かせていただきます。 --- mod_headers を使って Location ヘッダを書き換えるため、以下を考えました。 Header edit Location www\.example\.com www2.example.com ですが、「edit」は apache2.2.x で実装されていて 導入したかったサーバーの apache は 2.0.x で使えませんでした。 2.0.x で同じことをする方法はあるのでしょうか? また、2.2.x にバージョンアップするリスクはどのぐらいあるのでしょうか?
466 :
名無しさん@お腹いっぱい。 :2008/04/02(水) 12:09:50
mod_deflateを使った時って html以外のtext、 たとえばtext/csvなんかも圧縮送信されてるのでしょうか?
指定方法によるだろ
468 :
名無しさん@お腹いっぱい。 :2008/04/06(日) 08:14:41
SetEnvIf Remote_Addrでは CIDR表記のIPアドレスが表記できません CIDRで表記する方法はないものでしょうか?
XAMPPの質問もこちらでよろしいでしょうか? XAMPPコントロールパネルを開くと、Apacheの項目は「起動」と表示されているのにも関わらず、停止ボタンには「停止中」と表示されているのですが、これで正常なのでしょうか? 他のサービスの停止ボタンには「停止」と表示されています。
よろしくありません
2つ以上同時接続してきた場合、受け付けないようにするにはどうしたらよいのでしょうか?
ひとつaccept()したら、fork()とかしないで、通信が終るまで次のaccept()を しないようにソースを修正する。
MaxClients 1 か?
474 :
名無しさん@お腹いっぱい。 :2008/04/09(水) 17:51:40
Apache の起動/停止に、 # apachectl -k start や # apachectl -k stop をおこないますが、 この -k オプションってどういう意味ですか? -k をつけなくとも起動/停止はできていますが、ぐぐると -k をつけた例もとても多いので気になりました。
>>474 -k あり → そのまま httpd に渡される。
-k なし → start や stop などであれば -k を付けて httpd に渡される。
apachectl の中身読んでみ。
476 :
474 :2008/04/09(水) 18:23:57
どうもありがとうございます。
apachectl を読んで理解しました。
・先頭の ARGV="$@" で、スクリプトに渡された引数をすべて ARGV にいれている
・apachectl start だったら ARGV が "start" なので、
case $ARGV in の start にマッチするので、
$HTTPD -k $ARGV が呼ばれる
・apachectl -k start だったら ARGV が "-k start" なので、
case $ARGV in の * にマッチするので、
$HTTPD $ARGV つまり $HTTPD -k start がよばれる
ということで結果的に一緒ですね。
httpd に -k を渡す意味は、シグナルを渡すためと理解しました。
http://httpd.apache.org/docs/2.2/stopping.html # いままで rpm とかでなんとなく使っていただけだったが、
# 今回は初めてソースからビルドしてサイトを構築するのでいろいろ勉強しないと
>>478 値段が高すぎて、買えないな〜と思いました。
Apacheで、出力するHTMLのフッターに ServerNameを自動挿入する方法はありませんか? ロードバランサ配下に複数のApacheを置いているのですが、 出力HTMLの末尾にServerNameがコメントとして挿入されていたら どのサーバからの応答か簡単に判別できて便利かなと。
>>479 いっ、いちまん超え?
うちにもあるよその本。
古本屋で500円で買ってきた。内容は1.3ベースだよ。
今だと、あれくらいだったらオライリーのApacheハンドブックでもいいと思うよ。2.2じゃないけど。
ちなみに「The Apache Modules Book」もそんなに悪くないよ。
482 :
名無しさん@お腹いっぱい。 :2008/04/12(土) 23:56:24
483 :
名無しさん@お腹いっぱい。 :2008/04/13(日) 00:03:14
と思ったけどServerNameは無理か
484 :
480 :2008/04/13(日) 00:24:58
>>482 thx. 惜しい。
あ、ServerNameではくても、リモホでもIPでもいいです。判別できれば。
Yahoo! JAPANのソースを見ると全ページに入ってるっぽいんだよね。独自拡張かしら。
>>484 使ったこと無いけど、mod_layoutってのがある
486 :
480 :2008/04/13(日) 03:38:51
mod_layoutですか。。 全サーバ同一設定でいきたいので、mod_layoutで実現するには CGIかPHPの実行結果を挿入することになるので、負荷が高そうだな… と思って敬遠しておりました。 でも丁度、別件でアクセス解析用のタグを全ページに入れるのが かったるいと思っていた所なので、これもアリかも知れませんね。 やってみます〜 ありがとう。
mod_line_editもあるで
質問させてください。 .htaccessを使って http経由でのアクセスやダウンロードを禁止にして ftp経由でのアクセスやダウンロードを許可することってできますか?
>>488 そりゃ話を整理したほうがいいんじゃないの?
>.htaccessを使って
>http経由でのアクセスやダウンロードを禁止にして
これはhttpdの世界で可能。
>ftp経由でのアクセスやダウンロードを許可することってできますか?
これはftpdの世界の話。
ftpdの設定でいかようにも。お好きなように。
>>489 申し訳ないです。ちょっと整理というか変えてみました。
ブラウザでアクセス・ダウンロードを禁止して
LINUXなどのwgetでアクセス・ダウンロードを許可したい。
SetEnvIf User-Agent "IE" DenyUserAgent
SetEnvIf User-Agent "Mozilla" DenyUserAgent
<Directory "/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Deny from env=DenyUserAgent
</Directory>
↑これでいいのかな?と思ってやってみたけどwgetも500エラーがでてしまいました。
なぜだろう・・・
>wgetも500エラー
492 :
490 :2008/04/14(月) 03:22:46
リバースプロキシ?
ワイルドカード証明書とか リバースプロキシとか 実際にrsync等でファイルを一か所に持って来るとか
そもそも、何でドメインが2つ必要か って所からだな
>>493 Verisignの契約内容は台数が複数あったら複数の証明書を取れだったよね。
>hoge1.example.com
>hoge2.example.com
この2つの間ではそこは大丈夫なの?
もっとも、通常はネームベースのバーチャルホストでSSLはできないし。
498 :
493 :2008/04/14(月) 20:14:17
レスありがとうございます。 なるほど、 そのリバースプロキシというやつでモロにいけそうですね。 一つちょっと思ったんですが、 これ使えば、 本来SSL通信されていないサイトまで擬似的にSSL化してるように 見せれてしまいますよね? それに対して、SSL証明書側で何か対応されたりしていないのでしょうか? SSL証明書の信頼性が激減してしまうような。 EVにしたところで変わりないですよね? > Verisignの契約内容は台数が複数あったら複数の証明書を取れだったよね。 あう!!まじですか、だとすると厳しそうですね。。。。orz
499 :
493 :2008/04/14(月) 20:15:50
>>496 かなりのアクセス数になった場合を想定して
コンテンツ毎にサーバを用意したいのです。
1000
501 :
480 :2008/04/14(月) 21:38:51
もっと安い証明書の会社もあるよ。 いろいろ検討するのもいいんじゃね?
>>501 >
>>498-499 >負荷分散のためにコンテンツ毎にサーバを分けるというのは
>あまりスマートな方法ではないような。
>>487 がどういうコンテンツを持っているか知らないけど、コンテンツ毎に
サーバを分けるのは結構有効だし、実際やっているサイトは多いぞ。
サービスが保持しているコンテンツが
→すべてユーザに同じようにリクエストされるとは限らない
→コンテンツによってリクエストを捌く手段が異なる場合もある
たとえば mixi みたいなのは、日記が圧倒的にアクセスされるので、
(内部で)日記の処理を専門に処理するサーバを立てている。
ただ、コンテンツのアクセスのされ具合とサーバへのトラフィックの誘導の
バランスが難しいしめんどくさいので、各ノードに同じコンテンツを配置して
ロードバランサで振り分けるほうが楽なのも事実だけどね。
504 :
493 :2008/04/15(火) 03:06:21
>>502 携帯でほぼ安心して使えるのってverisignくらいなんですよね。。。
505 :
名無しさん@お腹いっぱい。 :2008/04/18(金) 18:35:29
Apache2.2 から、*.conf ファイルが conf/httpd.conf と conf/extra/httpd-*.conf になりましたが、 extra 以下にあるファイルは、conf/httpd.conf の中で Include しないと 有効にならないのですか?
もちろんそうよ
すいません、質問なのですが、ダウンローダによる無差別ダウンロードでトラフィックが占有され困っています…。 何度もipを変えたりユーザエージェントを偽装したりするので、いちいちipで拒否も大変です。 何か効果的な対策はないでしょうか… apache 2.2.4 です
508 :
507 :2008/04/19(土) 01:11:19
何度もすいません、それで特定のフォルダにあるファイルだけ馬鹿みたいにダウンロードされるんで、クッションのページを入れ、そこを経由しないとダウンロードできないようにしたいと思いますが…。 効果薄いでしょうか
CAPTCHA
フォルダ単位で接続数制限とか
mod_bwでいいじゃん?
512 :
507 :2008/04/21(月) 01:15:24
>509-511 ありがとうございます。 それでいろいろ調べてみると、dsoが有効になっていないらしくリビルドもダメなようなのですが、その場合はモジュールフォルダにモジュール入れて、confでリンクすればロードされ有効になるでしょうか? 結局1ipからの多重ダウンロードを阻止したいので…。
httpd -l を実行して mod_so.c が出力されれば DSO は有効になってる。 有効であれば、apxs を使って追加モジュールだけビルドしてインスコすれば良い。 その場合にはお察しの通り、conf に追記してあげれば機能するぽ。 無効なら apache ごとリビルドした方が今度のためかな。
514 :
与太者 :2008/04/22(火) 00:10:48
PUTメソッドを使用してファイルをアップロードしたいんですが、 デフォルトの設定では禁止されてますよね…。 どうすれば変更できるのでしょうか?
dav
516 :
507 :2008/04/22(火) 15:35:38
>>513 ありがとうございます。
それで、mod_so.cはありましたが、何度やってもエラーでインストールできないので、もしやと思って調べると…。
develとaprがないという、なんとも恥ずかしい結果でした。
で、それもインストールして、2.2なので使えないかも…と思いましたが、目的にあったmod_limitipconnをインストールしました。
結果はすんなりいき、ここ2日間の悩みはなんだったのかと思えるほどあっさり終了。
まだ、効果のほどは具体的には調べられていませんが、apacheの方は安定して稼働中です。
apache2.2とmod_limitipconnで不具合があれば、mod_bwにしてみます。
まずは皆様、お付き合い頂きありがとうございました。
518 :
507 :2008/04/23(水) 04:30:27
一日経ってみてログを見てみますと、27000リクエスト余りを503で返してくれていました^^ それに伴って転送量も激減、無事に目的を達成しました。
おめ
ダウンローダによる無差別ダウンロードなんてしてくる奴いんの? うぜーなぁ
521 :
名無しさん@お腹いっぱい。 :2008/04/23(水) 19:20:57
/etc/httpd/conf.d/squid.confって何を設定するファイルなのですか?
>>521 Squid用のディレクティブを記述するファイルだ。
Squidの管理用CGIを公開する時に書き込む。
別にhttpd.confに書いてもいいと思うけどね。
Squidはキャッシュ機能付きのプロキシサーバで、Apacheの前にリバースプロキシとして設置して
アクセスを物凄い勢いで高速化することができるがスレ違いなのでやめとく。
523 :
名無しさん@お腹いっぱい。 :2008/04/23(水) 23:06:58
apacheをソースからインストールしている場合でも apr、apr-utilはRPMのものを使っていいのでしょうか?
524 :
名無しさん@お腹いっぱい。 :2008/04/23(水) 23:07:27
いいよ 俺はそうしてる
ありがとうございました
GWSってApache?
527 :
名無しさん@お腹いっぱい。 :2008/04/24(木) 08:14:12
本のサンプルに、SSLRandomSeedの指定で start,connectともに builtin,file:/dev/random,file:dev/urandom を連続して記述してあるのですが、 連続して指定すると種が継起的に変化していくのでしょうか? 実際問題、ここには何を指定するのが適当ですか?
腐った処理系じゃなければ何でもいんじゃね? ぶっちゃけ気にしたことないw
IEでphpを読み込もうとするとダウンロードのメッセージボックスが出てしまうのですがなぜでしょう?
530 :
名無しさん@お腹いっぱい。 :2008/04/27(日) 03:26:31
apache2.0.x + mod_auth_ldap2で認証するユーザをグループで指定できますか? Require userで個別にユーザ指定するのはできるのですが、マニュアル通り設定しても 動いてくれないようです。 httpd.conf require group cn=hogeg,ou=Groups,dc=ldapsv LDAPレコード dscl ldapsv read /Local/default/Groups/hogeg cn: hogeg Member: user1 user2 user3 よろしくお願いします。
mod_proxyでproxyフォワードを試しています。 proxy.conf内の<Proxy *>ディレクティブにて、 Order deny,allow deny from all Allow from hogehoge.ddo.jp としていますが、接続が成功しません。 直IPをAllowに指定すると成功します。lookupが問題なのかとも思い、 HostnameLookups On を付け足してみましたが効果なしでした。 何か見直すべき個所があれば、教えて頂けませんか? お願いします。
>Allow from hogehoge.ddo.jp 逆引きはできる?
>>532 そのホスト名はFQDNなの? 違うなら
.example.jp のように先頭にドットをつけてみれ。
535 :
532 :2008/04/28(月) 17:03:46
>>533 逆引きできます。nslookupでNon-authoritative answer:と返ってくるのは関係ありますでしょうか?
>>534 FQDNです。念のため . を先頭につけてみましたが、結果は同じでした。
ddo.jpはDynamic dnsを借りているものですが、何か設定があるのかな…。
なんで逆引きで DDNS な FQDN 返してくれるのかの方が不思議だ。
537 :
532 :2008/04/28(月) 18:54:55
>>536 勘違いしました。逆引きできないからホスト名利用できなかったんですね。
もう少し調べてみます。ご指摘ありがとうございました。
DDNSなDQN に見えた
apache の ログフォーマットで %tを [2008-04-30 12:34:56] と書きたいのですが、どのような変数名にすればいいのでしょうか? YY DDとか使うと思うのですが・・。
541 :
名無しさん@お腹いっぱい。 :2008/04/30(水) 14:05:55
質問させてください。 3時間くらい処理時間がかかるcgiスクリプトを実行するとエラーになって途中で終わってしまいます。 最後まで処理させるにはどうしたらいいでしょうか? ちなみにhttpd.confにRLimitCPU 300 と書いたのですが途中でエラーになって終わってしまいました。
5分とか10分とかならまだしも、3時間もかかるものを CGI でやろうとする考え自体が間違い。
543 :
名無しさん@お腹いっぱい。 :2008/04/30(水) 14:58:35
RLimit書かなきゃいいだろ
httpサーバーがタイムアウトしないようにする。 Webブラウザがタイムアウトしないようにする。
>>541 > 3時間くらい処理時間がかかるcgiスクリプトを実行するとエラーになって途中で終わってしまいます。
> 最後まで処理させるにはどうしたらいいでしょうか?
まじれすすると、そういうのはCGIでキューに積んで、Cronで回してください。
ProxyServerとかが間にはいると、そいつがきっちまって、停止することもあるので、問題が複雑になります。
> ちなみにhttpd.confにRLimitCPU 300 と書いたのですが途中でエラーになって終わってしまいました。
これ、単位違うものではないかな。
547 :
541 :2008/04/30(水) 17:18:56
いや、仕方ないなんてことはない。 他の手段を考えるべき。 適材適所。
549 :
名無しさん@お腹いっぱい。 :2008/04/30(水) 17:45:48
時間がかかる処理を1つのプログラムにして CGiはそれを起動するようにするべきだが。。。 RLimitなんとかってのはそもそも書いちゃだめ Timeoutディレクティブを適当に書け 単位はマニュアル読め
550 :
名無しさん@お腹いっぱい。 :2008/04/30(水) 22:27:52
質問です。 64bitでコンパイルして動作するapacheのバージョンは決まっているのでしょうか? このバージョンならいけるよというのがあれば教えていただきたいのですが。
>>547 キチガイ警報w
まぁ、どうしてもCGIでやりたいのならだな、CGI から別プロセスでやりたい処理を
system("/path/to/program &"); のようにバックグラウンド起動してだな、CGI は
速やかに終了させる。バックグラウンドプロセスは、処理中はテンポラリファイルを
作るようにしておくんだ。処理が終わったら自分自身でテンポラリを削除する。
そんでもって CGI は、そのテンポラリファイルが存在しているうちは
「処理中です」というメッセージを出力して二重起動しないようにするんだ。
これでどうですかね?
しっかし、いるんだよな。こういうアプローチそのものを変えようとしない香具師がよ。
別の発想がないっつーか。長い処理を CGI でやろうってセンスがイミフだぞ。
552 :
551 :2008/05/01(木) 00:22:18
RLimitCPU はもちろん無効にしろよ。
>>551 それじゃプロセスグループを切り離せないからマズい。>system(...)
apacheにSIGHUP等が飛んだら巻き添えを食うぞ。
daemonプロセスを起動するときと同じ手順を踏む必要があるはず。
>>554 やっぱそう?w 何となくそんな気はしたんだけどね・・・
彼に理解できるレベルじゃないな。
close, fork, setsid, SIGIGN
ちと個人的にも気になったんでやってみた。厳密には setsid した方が良いんだろうけど、 漏れの環境では省いても要件は満たせそうだ。setsid しないと親子関係が続いてるから やっぱ close しないとダメだね。以下は perl でテキトーに書いた例。 if ((my $pid = fork()) == 0) { child(); } elsif ($pid > 0) { parent(); } die $!; sub parent { print 'Content-Type: text/html', "\n\n"; print '<html>ok</html>'; exit(0); } sub child { close(STDIN); close(STDOUT); close(STDERR); $SIG{'HUP'} = 'IGNORE'; $SIG{'USR1'} = 'IGNORE'; system("./test.sh &"); exit(0); }
557 :
541 :2008/05/01(木) 01:46:12
>>544 =
>>551 =552=555
ごめんなさい。あなたはとても知識が豊富で頭がいいこともわかってます。
僕はあなたから見ると基地害かもしれませんが一生懸命がんばりたいです。
僕に理解できそうにないなら理解できるように教えてください。
といっても、教えてもらえないだろうな・・・orz
だから、どうしても
>>545 をやるなら方法は
>>551 だっつーの。これは理解できるでそ?
画面と実処理を切り離さないといけないと思うの。
で、その実現方法が
>>556 なの。これも良く読めば難しくないはず。はず。はず。
むしろTORQUEみたいなバッチジョブ管理システムを導入したほうが後々楽かも
そもそも何がしたいのか(ry そもそもプログラミング知識は(ry
>>556 んー、プロセスグループを切り離さないと、シグナル等のからみでどんな副作用
が出るかわからんから、ちゃんとsetsid()した方がいいと思うんだけどなぁ。
perlなら use POSIX qw(setsid); ... setsid(); でOKだし。
あと、そこまでやってsystem()は無いと思うんだが。
素直にfork&execしようよ……。
> httpサーバーがタイムアウトしないようにする。
RLimitCPU maxする。RLimitCPUは秒またはmaxを指定だから300と書いたら5分でタイムアウト。
> Webブラウザがタイムアウトしないようにする。
だらだらと定期的(例えば1分毎)に出力を垂れ流す。
但し、Apache 1.3の頃はNPHスクリプト使えば、Webブラウザと直結だったが
2.xからNPHを含めて、httpdが常にCGIの向こう側にいるような気がする。
これが正しいなら、httpdがバッファリングするからWebブラウザにデータが
渡らないかもしれないので、一回のトランザクションでやる(Webブラウザを
タイムアウトさせない)のは難しい。
(バッファリングを回避するために、でかいデータを垂れ流すとWebブラウザが太る)
確実にやるなら
・
>>551 (
>>556 ,
>>561 )のようにCGIプロセスを切り離す。
・自分でサーバーソケット開く。
・定期的にそれに接続(JavaScriptやmeta refresh使う)することにより、終了を監視する。
ほら、無理にCGIでやる気がなくなってきただろ。(笑)
>>561 > あと、そこまでやってsystem()は無いと思うんだが。
たしかにwwww サーセン
565 :
名無しさん@お腹いっぱい。 :2008/05/17(土) 12:57:26
>>438 何か嫌なことでもあったのか。
俺は未だに、1.3系を使い続けてるけどな。
これで十分こと足りるし、ライセンスがらみの問題もあるんで
Apacheはパイプが詰まったりするし、Perlはシグナル周りを無視しておかないとウンコだったりしてやってられないw
ちょい質問なんですが最新版の2.2.8ではなく、 2.2.3をゲットしたいんですが公式にはアーカイブ置いてないんでしょうか??
(??д?)? ???????????????????? (??д?)?????????????????
Older Releases
Only current, recommended releases are available on www.apache.org and the mirror sites.
Older releases can be obtained from the archive site.
http://archive.apache.org/dist/httpd/
570 :
567 :2008/05/18(日) 00:53:30
>>569 ありがとうございます!
2年間ぐらい海外のどっかのコミニティサイトをずっと公式だと思ってましたwwww(ノ∀`)
571 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 13:32:22
パスワード認証に付いて質問させてください。 アウトソーシングしているサーバがあるのですが、ssh等でのアクセスはできず FTPのみのアクセスになり、htpasswdが実行できません。 パスワードファイルは他の環境(手持ちのLinux環境)で作成したものをアップロードして 使用することもできるのでしょうか? すみませんが教えてくださいお願いたします。
パスワード認証とはBASIC認証のことです。 申し訳ありません。
試してみれば
やってみたらできました。 パスワードファイルを見たら、単に暗号化してあるだけなんですね。 cgiで生成できるのであれば、便利ですね。
つ system関数
576 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 21:32:06
すいません。apacheのアクセスログの 書き込みタイミングっていつなんでしょうか。 問題なのはアクセスログが残っているにも関わらず、 (例えばネットワークの障害の原因で) クライアントがデータを取得できていないということが あり得るのかどうかということです。 お手数ですがご教授頂けないでしょうか。
syslogの書き込みタイミングなんてならんでしょ UDPだし、信頼性の微塵もない
578 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 21:40:30
>>576 ひとつのリクエストが終わったとき
つまり、突然ネットワークがおかしくなった場合でもTimeoutだけ経過すれば
ログに書き込まれる
>>577 ?
>>576 ログ指定に依存
例えば、mod_logio使えば実際に転送されたバイト数。
>>577 apacheは自前でログ書いてるよ。知ったか乙。
580 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 22:36:38
581 :
576 :2008/05/20(火) 22:45:24
>>577 ,578,579
返信ありがとうございます。
現状の設定ではmod_logioは設定していません。
mod_log_config.soを設定しているだけです。
その場合ですと
apacheにアクセスログが残っているということは
1. クライアントからapacheにリクエストがあった
2. apacheがクライアントにデータを送出した
3. クライアントがデータを受信したかどうかは定かでは無い
という事でよろしいのでしょうか。
また2についてなのですが、apacheがデータを送出というのは
実際にネットワークカードからパケットが送信されたと認識しても
問題ないのでしょうか。勉強不足確認不足で申し訳ないのですが、
例えばiptables等で外へ出ていくパケットを遮断をした場合等にも
アクセスログは残るのでしょうか。
質問ばかりで申し訳ありません。
自分でももう少し調べてみます。
apacheのログをsyslogに回して配信してもらうのが普通だと思ってた。 ローカル環境以外に飛ばしたいときはどうしてるの?
飛ばしたくなったことがない。
>>582 逆にlocalに書く以外を見たことがない。
運用屋さんによると、syslogはログが欠けるからダメなんだと。(localhostでもダメなのか?)
ちなみにログは、ローテートした後、NAS上のホスト毎のディレクトリに保管。
一定期間後にテープにバックアップ。
syslogのリモート転送機能なんて使うかな? OpenViewやJP1などのログ監視エージェントを入れるとかして、 ある程度整理・要約したものをイベントとして送信するようにしている。 フリーのツールでも探せばこれらに相当するものはあるんじゃね(muninとかnagiosあたりかな?)。
586 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 23:17:14
>>581 まず、mod_logioは全く関係ない。
サーバーが、クライアントとのやり取りが終了したと考えた時点でログに記録される。
クライアントとのやり取りが終了するのは
1.正常にデータを全部送った
2.クライアントが途中で切断した
3.クライアントが応答のままTimeoutの時間が過ぎた
4.サーバーが諸事情により切断せざるを得なくなった(Apacheのstop,restart)
ってとこかな思いつくのは
あなたはTCPのことをきちんと知ってる?
そうじゃなけりゃ正直何から説明していいか分からん
587 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 23:17:40
×クライアントが応答のままTimeoutの時間が過ぎた ○クライアントが無応答のままTimeoutの時間が過ぎた
588 :
名無しさん@お腹いっぱい。 :2008/05/20(火) 23:20:22
>例えばiptables等で外へ出ていくパケットを遮断をした場合等にも >アクセスログは残るのでしょうか。 残る
>>582 リアルタイムには飛ばさない。
忙しい時間帯にさらに負荷をかけるようなことはしない。
ローカルにとっといて、
一日一回 NFS なり scp なり rsync なりで送る。
>>590 んなことしてたら、ログの意味がねーだろ
各々のマシンに監視させて処理させてるの?
>>591 「ログの意味」って、たとえばどういうこと?
記録する意味。 24時間も前の情報なんてほとんど使わないでしょ。 なにか問題が起きて、24時間後に対応するって
ん、Apacheスレだからアクセスログの話かと思ってたけど、違うの? ErrorLogの方の話なら、それぞれのマシンに監視仕掛けてるよ。
>24時間も前の情報なんてほとんど使わないでしょ。 SOX法知ってる?
>>593 後から問題が発覚して、ディスク上に残ってるログ全部をごりごり調査したことなんて、1度や2度じゃ済まないんだが。
>>596 あるね。
おれはWeb屋だけど、お客から何月何日、〜のコンテンツにアクセスしたIPアドレス、時間を調べて報告して欲しいなんてしょっちゅう。
フルボッコだなw
599 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 01:10:37
>>589 それと、ログに記録されるタイミングに、何の関係があるんだ?
>>595 それ別に訳に立たないじゃん。
法律で帳面の保存を義務づけられてるのと同じ
>>596 だから一箇所にまとめるんじゃん
>>597 ログをあさる数少ない原因をだされても…
だから
>>590 とかやって一箇所にまとめてるじゃん。
何を主張したいのかよくわからん。
>>599 日本語で書いてあるのにわからないの?
転送開始前にログを取るか、転送完了後にログを取るかが異なる。
603 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 01:50:49
>>602 どこにそんなことが書いてあるか、日本語でも英語でもいいから
Apacheのマニュアルからそのまま(as-is)コピペしてくれないかな?
>>600 おまえの頭が悪い(≒おまえの周りの状況が全てに適用できると思い込んでる)のはわかった。
606 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 01:55:55
> mod_logio で提供されている %O フォーマット文字列で、ネッ > トワーク経由で実際に転送されたバイト数を 記録できます。 確かに、mod_logioを使ったときは、実際に転送が終わった後にログがログファイルに記録されるだろうね。 んじゃ、mod_logioを使わなかったときは転送が終わる前にログがログファイルに記録されるなんてどこに書いてあるんだ?
>>606 チンケなプライド保とうと必死だな。www
元の質問(
>>576 )で問題にしているタイミングとは、実際の書き込みタイミングで
はなく、ログに書き込まれた情報が取得されたタイミングである事は明白。
608 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 02:31:08
>>607 おいおい
mod_logio使うかどうかでログに記録される時刻が変わるというのか?
1GBのファイルをダウンロードするのに2分かかる場合、
ログファイル内のアクセス時刻の表示が2分変わると言うのか?
>>608 低脳必死杉。www
タイミング==アクセス時刻と読む事に活路を見出したのか?。www
元の質問(
>>576 )を良く読んで、何を気にしているかよく考えなさい。
>>608 の言いがかりに関しては
ログに書き込まれた情報(転送バイト数)が取得されたタイミングが異なる。
といっておこう。
610 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 02:56:07
>>610 ある。わからないのか? 本当に馬鹿なんだな。
612 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 03:41:40
>>576 には
「問題なのはアクセスログが残っているにも関わらず、」
と書いてあり、アクセスログが書いてあるかどうかが問題なわけで
転送バイト数がどうかしたのか?
さっきから人のことを低脳とか日本語ができないとか言うけど、
だいたい
>>579 の「例えば、mod_logio使えば実際に転送されたバイト数。」
はどの質問に対する答えなのか。日本語が出来てないのは誰なのか。
613 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 03:59:28
>>609 の言ってるように、プロセスがログに書き込む内容を取得する時間が異なるとゆうことは、
>>608 の言ってるような事態が起こりうるかもしれない。
しかしそうなって来ると、そもそもlogに書き込まれるアクセス時間が、リクエストを受け取った時間なのか、
リクエストが終了した時間なのかが問題になりそう。
ウチで以前、一部のクライアントがコネクションを放さなくて、アクセスログに書き込まれた時刻が、
前後の行から3分位ずれたログが多数書き込まれることがあった。
mod_logioなんぞは不使用だったが、恐らくリクエストがあった時間をそのプロセス(スレッド)が記憶しており、
コネクションが切れた時点でlogに書き込んだものと思われる。(sizeについては動的ページだったのでアテにできず)
もしmod_logioを使えば、コネクションが切れた(書き込む情報を取得した)時間も取れるかもしれない。
あるいは、その時間を書き出す設定が、ひょっとしたらCustomLogあたりにあるかもしれない。
(それが出来れば、問題が起きたどうかを判断する助けになるかも)
つうことで、本家のmanualあさって来ます。
614 :
613 :2008/05/21(水) 04:27:27
今、読んできた(jpのページだけだけど)。
まず、ログに書き込まれる時刻は、リクエストを受けた時間のみしか記録できないようだ。
(logio使用、不使用に関わらず。なーんだ、残念・・)
で、リクエストを返すのに掛かった時間を、秒またはミリ秒(ms)で記録することはできるようだ。
(これは、CGI等が実行された時間なのか、リクエストが完全に終了するまでの時間なのかは、検証必要。今度やってみよう。)
>>576 の質問については、logio使用不使用に関わらず、アクセスが異常終了(TimeOutとか、クライアントが中止とか)
した場合に、その内容を書き出す(あるいは書き出さない)ような設定はないようなので、
>>579 の答えは、「タイミングがいつなのか?」のみの場合は、その通りだけど、
後半部分も含めると、「log指定に依存」は正確ではないのではないか。
>>614 だけど、
ごめん、ミリ秒じゃなくてマイクロ秒だった・・・・・。
apache のバージョンや設定にかかわらず、ログに出力されるのはレスポンス終了後。 ただし、1.3 ではログのタイムスタンプがログを書いた時刻になるのに対して、 2.x ではリクエストを受け付けた時刻になる。 なので、1.3 ではログが必ず時刻順に並ぶが、2.x ではレスポンス完了まで 時間がかかるとログの時刻がさかのぼることがある。 コンパイル時に何か define すれば 2.x でも 1.3 互換の時刻出力が できたような記憶があるけど、詳しいことは忘れた。 で、mod_logio は LogFormat で使える書式制御文字を増やすだけで、 今回の件にはまったくなんにも関係ない。
応用力が致命的に欠如してるな。これが「ゆとり」か。
%b 転送する予定のバイト数
%O 転送したバイト数
両方記録することで
>>576 が問題にしている状況を説明できるログになる。
サーバが送信したバイト数は クライアントが受信したバイト数と必ず一致するのだろうか。
>すいません。apacheのアクセスログの >書き込みタイミングっていつなんでしょうか。 という問いに対して %b、%O が出てくる理由を応用力が欠如したゆとりにも 理解できるように説明してもらえるとありがたいです。 >問題なのはアクセスログが残っているにも関わらず、 >(例えばネットワークの障害の原因で) >クライアントがデータを取得できていないということが >あり得るのかどうかということです。 こちらに関していえば、「あり得る」で問題ないですよね。 ログ出力をどう指定するかとはまったく無関係に。 っていうか、ログの指定方法を変えることでデータの転送の確実性が 変わったりなんかしたら大変なことだ。
>>619 > という問いに対して %b、%O が出てくる理由を応用力が欠如したゆとりにも
> 理解できるように説明してもらえるとありがたいです。
それは
>>576 の後半に書いてあるじゃん。
そもそもの問いが的外れだった。
>>620 えーと、ということは、
>こちらに関していえば、「あり得る」で問題ないですよね。
>ログ出力をどう指定するかとはまったく無関係に。
これを否定するってことですか?
ログの指定ってのは、発生した現象を記録するかどうかの違いだけで、
その現象が発生するかどうかとはまったく無関係だと思うんですが。
それともアレですか、バグのあるプログラムのあやしそうなところに
printf をつっこんだらバグが再現しなくなったとかいうのを
日常的にやってる方なんでしょうか?
>>619 「ゆとり」恐るべし。
字面をなぞるだけでは、質問の意図するところはわからんよ。
後半とあわせて読めば、
>>576 の状況は
・クライアントがデータが取得できていない(ように思える)
・でもアクセスログでは正常に転送したことになっている。
そこで、
>>576 はアクセスログの記録タイミングを疑って
> すいません。apacheのアクセスログの
> 書き込みタイミングっていつなんでしょうか。
という質問をしたわけだ。
質問が「アクセスログが残っているのですが、これ本当ですか? 実際には
転送されていないのでは?」であることは明白。
%b %O両方とれば、
1 (apacheから見た)クライアントのプロトコルスタックまではデータ転送が完了している。
2 コネクション切断等の原因で転送が中断された。
のいずれかであることがわかるので障害の切り分けができる。
624 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 13:39:42
>>617 応用力?w
それなら
%X 応答が完了したときの接続ステータス
を使うから、mod_logioをその目的に使おうなんて思わないんだよ。
だから誰もお前の「応用」を理解できないんだよ。
それにそもそも質問者に対する答えになってないだろ
>>579 は。
625 :
620 :2008/05/21(水) 13:46:19
っていうか、よく見たら >%b 転送する予定のバイト数 >%O 転送したバイト数 これ思いっきり嘘じゃねーか。 %b response body だけのバイト数 %O header 込みの総バイト数 どっちも実際に転送したサイズで、転送する「予定」のバイト数ではない。 つーか、CGI みたいにリクエストを受けてから動的に生成してるページの 「転送する予定のバイト数」をどうやってログに載せるんだよ。
>>624 後出し乙。後出しといわれたくなかったら、別スレでお前が自分で
言ってたようにmd5貼っとけば良かったのに。www
>>626 ウルトラ初心者は黙ってろよ。
> どっちも実際に転送したサイズで、転送する「予定」のバイト数ではない。
>>589 でも引用している。
> httpd 2.0 では 1.3 とは異なり、%b と %B フォーマット文字列はクライアントに
> 送信されたバイト数そのものではなく、 HTTP レスポンスのバイト数です (これら
> つーか、CGI みたいにリクエストを受けてから動的に生成してるページの
> 「転送する予定のバイト数」をどうやってログに載せるんだよ。
apacheが一旦受け取ってバッファリングしている。
お前は知らないだろうが、HTTPレスポンスメッセージにはステータスラインが必須なのだが、
Apacheが裏でつけてくれている。
お前のようなウルトラ初心者が作ったCGIの出力を正しいHTTPレスポンスメッセージにするた
めにApacheは頑張ってるんだぞ。
628 :
名無しさん@お腹いっぱい。 :2008/05/21(水) 14:37:22
後出し?別スレ?md5? もういいよ
>628 お前の負けーwwwwwwwwwww
劣悪な通信環境化でのサーバ・クライアントのやり取りを見ているみたいだw
以上、本試合は「最後にしゃべった方が勝ち」ルールでお送りしました。
632 :
名無しさん@お腹いっぱい。 :2008/05/22(木) 15:57:46
apache-2.2.8 をインストールしました。 httpd.confにて、 DocumentRoot "/usr/pkg/share/httpd/htdocs" を、 DocumentRoot "/www/htdocs" に変更しました。(/www/htdocsは作成し、index.htmlも作成しました。 そして、apacheを再起動してアクセスすると Forbidden You don't have permission to access / on this server. と表示されてしまいます。 何が原因かわかりません絵ででしょうか? 上記以外の修正点は、 ServerAdmin と ServerNameだけです。
777にでもしてみ
/www/htdocs に対し、GroupとUserで指定した実行ユーザのアクセス権限がない →ディレクトリのパーミッションを調べる /www/htdocs に対し、ディレクティブで許可指定が無い →とりあえず<Directory /usr/pkg/share〜> とかいう部分を/www/htdocsに書き換えてみる 最低の対策としては、多分このへんでは。
635 :
632 :2008/05/22(木) 16:19:42
ありがとうございます。 解決できました。 DocumentRootだけを変えていたのですが、cgi-binやerrro, iconsも同じパスに変更し、 もとのDocumentRootの中身をすべてコピーすればできました。 お手数をおかけいたしました。
777のままにしとくなよ。
mod_proxy 使って、クライアント→SSLproxy化サーバ→WEBサーバ というようにSSLアクセスさせたいのですが、 この場合に、 ログの管理上、 WEBサーバにクライアントのIPを直に残させることは可能なのでしょうか。
638 :
名無しさん@お腹いっぱい。 :2008/05/23(金) 07:13:32
XAMPP for Windowsでローカル用にApache 2.2.8を動かしているのですが、 ちょっと困ったことがあり、御助言を頂きたく思います。 USBメディアにて異なる環境にてapacheを使えるようにしているのですが、 httpd.conf(実際には httpd-vhosts.conf)の、<VirtualHost *> の DocumentRoot 指定に 存在しないドライブを指定すると、 Syntax error on line 80 of (インスコしたディレクトリ)/xampp/apache/conf/extra/httpd-vhosts.conf: DocumentRoot must be a directory と言われてapacheが起動しません。 環境によって場合分け、もしくは、存在しないドライブを指定しても(無視して)起動できるようにする方法はありませんでしょうか? 結局のやりたいこととしては、家の環境と作業場の環境のsambaで割り当てたドライブ(家の環境には存在しない)で、 共通の方法で運用したいということです。
639 :
638 :2008/05/23(金) 07:28:59
バージョンを書き忘れてました。 Server version: Apache/2.2.8 (Win32) XAMPP Version 1.6.6a です。 補足なのですが、他のバーチャルホストの設定などの共通の設定もたくさんあるため、 できれば、apacheなどを2つわけてインストールをしたくないということです。
>>637 proxy→web鯖 の際、mod_proxyの機能として、
X-forwarded-For
というヘッダがリクエストに挿入されるので、それをログに記録すればよい。
あるいは、mod_rpafを入れればHostが上書きされるのでログも変わる。
自宅パソコンの中身を同じ風味にすれば良いかと ドライブレター変えるとかエイリアス作るとか
643 :
638 :2008/05/23(金) 13:28:38
>>641 いけますた!!
次のレスのようなWSHを書いて、
<IfDefine WorkMachine>
<VirtualHost *>
DocumentRoot ないドライブを含むパス
:
:
</IfDefine>
みたいに、httpd.conf(httpd-vhosts.conf)に書いておけばばっちりでした。
644 :
638 :2008/05/23(金) 13:29:06
でっち上げたWSHです。 MachineNameForWork = 'RED'; function IsMachineForWork() { return WScript.CreateObject("WScript.Network").ComputerName == MachineNameForWork; } function GetApacheArgs() { return IsMachineForWork() ? " -DWorkMachine" : ""; } var args = WScript.Arguments; var shell = WScript.CreateObject("WScript.Shell"); var isStopMode = (args.length == 1 && args(0) == 'stop'); // stop process shell.Run('apache_stop.bat', 0, true); if (isStopMode) { // if mysqld is not booting, beep onn urusai!! shell.Run('mysql_stop.bat', 0, true); WScript.Quit(); } WScript.Sleep(1000 * 3); // run apache etc... shell.Run('apache\\bin\\apache.exe' + GetApacheArgs(), 0, false); WScript.Sleep(1000 * 1); shell.Run('mysql\\bin\\mysqld --defaults-file=mysql\\bin\\my.cnf --standalone', 0, false);
645 :
638 :2008/05/23(金) 13:30:56
>>642 アドホックに行くならば環境の方を変えてしまうのもアリですね。
無事解決いたしました。
ご協力くださりありがとうございました。
646 :
名無しさん@お腹いっぱい。 :2008/05/23(金) 14:52:57
FreeBSDでApache2.2.8で存在しないディレクトリをDocumentRootに設定したら Warning: DocumentRoot [/usr/home/user1/www/vh/virtualhost1/] does not exist って警告が出るけど普通に起動するね。 存在しないドライブだとエラーになるのか…。バグ報告出すかね。
>>646 まずソースを読んで、意図的なのかバグっぽいのか判断してみては?
メインのDocumentRootだとエラーで、<VirtualHost> だったら警告のみ、とかって
いう風になっている可能性もあるし。いきなりバグ報告されても萎えると思う。
# 漏れは読んでない。ごめん。
すいません、以前アドバイス頂いた
>>507 です。
チラシの裏みたいで恐縮ですが、その後の快調になりました。ありがとうございます。
今回いろいろ蓄積してきたルールを整理しようとしているのですが、
httpd.confに
<IfModule mod_limitipconn.c>
ExtendedStatus On
<Directory "/var/www/example/*/example">
<FilesMatch "\.(zip|lzh|rar|sit|tgz)$">
MaxConnPerIP 2
</FilesMatch>
</Directory>
</IfModule>
...
<IfModule log_config_module>
...
SetEnvIf User-Agent "(bad-agent1|bad-agent2 ...)" robots
...
SetEnvIf Referer "example.jp" ref_ok
SetEnvIf Referer "^$" ref_ok
</IfModule>
そしてhttpd-vhosts.confに <Directory /var/www/example/*/example> <FilesMatch "\.(zip|rar|lzh|sit|tgz)$"> Order deny,allow Deny from env=robots Allow from env=ref_ok </FilesMatch> </Directory> としている箇所がありますが、limitは効いて503を返すのですが、アクセスログを見るとuser-agentで弾けてないのに気づきました。 前はSetEnvIFでの環境変数の設定はしてずにRewriteルールで403を返すようにしていました。 これはルールの適用順の問題なのかアドバイス頂けますと助かります。 で、前述のとおりログを見て気づき、修正できるまでRewriteとSetEnvIfはコメントアウトして、同一ipから503を返した回数に閾値を設定し、超えたユーザは問答無用でiptablesに突っ込んでいます。 なるべくiptablesをしょっ中更新したくないので、apache側で出来ないかと思いました。 もし、私の設定単純ミスでしたらお詫びします…宜しくお願いします。
複合条件だから難しいなw こんな感じかな?
SetEnvIf User-Agent "^bad-agent1" robots
SetEnvIf User-Agent "^bad-agent2" robots
SetEnvIf Referer "^.+" ref_ng
SetEnvIf Referer "^
http://example\.jp " !ref_ng
Order allow,deny
Allow from all
Deny from env=robots
Deny from env=!ref_ng
Referer のとこに補足すると、まず Referer 値があったら ref_ng という
拒否前提のフラグを立てておいて、それが許可される Referer だった場合には
ref_ng のフラグを解除する。Referer 値がないときは ref_ng が立たないから
アクセスは許可される。
これ以上に条件が増えると難解になるだけなんで、素直に mod_rewrite で
設定した方が良いと思うです。
閾値の件については、apache で処理させてたら意味ないな。 503 を返そうが 403 を返そうが、リクエストが httpd にまで到達していることに 変わりはないので、処理コストの若干の違いはあれど同じこと。 ログを定期的に見て、IP アドレスを iptables に追加するスクリプトでも 書いたほうが早いかと・・・・
>>650 度々すんませんorz 修正・・・
× Deny from env=!ref_ng
○ Deny from env=ref_ng
653 :
648 :2008/05/24(土) 07:35:29
おはようございます。
朝までチューニングして眠たい
>>648 です:-)
>>650 ありがとうございます。ご参考にさせて頂きます。
やはりRewriteでやった方がいいでしょうか…。
別件ですが、limitも完璧ではないので、悪質なユーザになると1秒間に10以上のアクセスを掛けてきます。
>>651 ありがとうございます。一応1行野郎スクリプトで15分おきにログを見させて、閾値を超えたipをiptablesの設定スクリプトで拾ってはいるのですが…。
ただ、その更新中には全てのアクセスに一時応答しないラグが出るので(3〜5秒)、その際に嫌われないか思案中でした。
他の監視スクリプトもドンピシャリタイミングで動くとポート開いてネーヨ(゚Д゚)ゴルァ!!されるので、微妙にタイミングをずらしています。
…と書いてて気づいたのですが、激しく板違いでしたでしょうか…。
654 :
648 :2008/05/24(土) 09:50:39
殆ど
>>650 さんのを参考に稼働させると
limitで弾く前に評価され(当たり前なのかも知れませんが…すいません)、robotsと設定されたツールでアクセスされると403が返り、たまにこぼしていたlimitもより希望に沿う形となりました。
そこから若干変更を加え、SetEnvIfNoCaseに変更してある程度のツール系は遮断。
そこからブラウザのマッチ評価、そして同時接続数の評価へと改良しました
やはり過度なアクセスがあるとlimitはこぼしてしまうので、完璧とは言えませんが基本ポリシーを満足させるものに近づきました。
なにせほぼ嫌がらせとしか思えないほど(今も)朝から凄まじいアクセスをしてきているので、気分はヌッ殺したいところです。( ´ー`)y-~~
ここ4日間で54万アクセス(503)ですので…。
mod_rewriteはもうちょっとしっかりとお勉強します。
>>653 > …と書いてて気づいたのですが、激しく板違いでしたでしょうか…。
個人的にだけど、Web 鯖へのアタックや過剰アクセスから守る方法として
一般論(?)が展開されるなら、このスレでも間違っていないと思いますお。
ipってゆうな。クズ。
テリー乙
perl-5.8.8nb7 Practical Extraction and Report Language ap22-perl-2.0.4nb1 Module that embeds a Perl interpreter into Apache をインストールしました。 apache2 の起動はできるようになったのですが、mod_perl の使い方が分かりません。 どのように設定すればいいでしょうか?
659 :
658 :2008/05/24(土) 20:15:15
apache2はモジュールの読み込みが必要無いんですね
>>658 使い方が分からないなら今から覚えるな。バッドノウハウになりかねん。
まず SpeedyCGI で、次に FastCGI を覚える方がいいよ。
>>657 はあ?俺はテリーじゃねえしww
つーかおまえらテリー乙テリー乙って馬鹿の一つ覚えみたいに言ってるけど
テリーにもファンがいるってことを認めたくないだけだろww
現実見ろよwwwwwwww
テリーは目がいってるよ、こわいよお
みんなテリーのことを悪く言いすぎだと思います。 一人で旅をするのはとても勇気がいることです。 武闘家にならずにバトルマスターになれるのもテリーしかいません。 もっとテリーを評価してあげてほしいです。 よろしくお願いします。
すみません質問です apacheからperlやphp等を実行する場合、実行権限ってどうなるんでしょうか? 試しにドキュメントルートより上の階層を見に行くスクリプトを組んで実行してみると難なく見えてしまいました ユーザー1であれば user1/ 以下の階層のみアクセス可能にしたいのですが、 そういった設定はapache側から行うんでしょうか? apacheのバージョンは2.2.3です
665 :
名無しさん@お腹いっぱい。 :2008/05/28(水) 09:40:34
PerlもPHPも、Apacheの実行権限で動く。 (CGIのsuexecは除く) そして、Apacheから呼ばれるPerlもPHPも、ドキュメントルートは知ったことではない。 その辺は所有者やパーミッションをうまく設定するしかない。 suexecもその一環で使えると思う。そういう意味ではApache側からできるっちゃできるが。 PHPはセーフモードと言うのがあって、そういうことが出来るらしいが、俺は良く分からない。
そういう人は、jail+chrootで幸せになれると思うよ。
Windowsの場合はログインしてるユーザーなのかな jailはBSD以外でも言うのかな
早速ありがとうございます! chrootコマンドだとユーザーが複数いる場合は難しいですよね? jailって、要するにvirtualPCとかvmwareとかと同じ仮想OSの事でしょうか 使ってるlinuxはCentOSなので、OpenVZって言うのが見つかりました 調べてみると、仮想OSを複数作ってもカーネルは1つでいいようです 結局、この仮想OS上でユーザーごとに別途サーバーを構築して 仮想OSごとにchrootするということでしょうか もしそうだとすれば相当面倒ですね^^;ポートは共有できるんでしょうか たとえばレンタルサーバーとか、いちいちそんなことをしてるんですか?
670 :
名無しさん@お腹いっぱい。 :2008/05/28(水) 16:33:32
レンタルサーバーは普通CGIはsuexecかね PHPは知らん
やるとしたらフロントにプロキシ立ててNameBaseでポート別立てしたバックのapache叩く感じかなぁ 起動オプションでコンフィグファイル切り換えればpidファイルもユーザーも切り換えて複数のapache立てられる そもそも、そんな運用は却下するかな
>>664 apache では何の制限もできないし、そのためだけにユーザ毎に chroot するのはちょっと無駄。
お互いのホームディレクトリを不可侵にしたいのであれば、各ユーザを同一グループ(users 等)に
所属させて、各ホームディレクトリを 0705 の permission に設定することで、ほとんどの場合問題ない。
/var/log とか見せたくないディレクトリは 0750 にすればいいし、ファイルアクセスはさせたいけど、
ディレクトリの中を見られたくない場合は 0751 すればいい。
レン樽鯖はこんな程度だと思われ。
673 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 13:48:00
apacheをインストールしたのですがstartを押すとThe requested operation has failedと出てきて起動できません。 解決方法をよろしくお願いします。
674 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 15:09:35
早くしてください
,,,,,,iiiiiiiiiiiiiii,,,,,, ,,,iilllllll!!!l゙゙゙゙~~゙゙!!llliiii,,, ,,illlll!゙゙’: : : ::゙゙!lllllli,, ..,illlllllll″ : :;lllllllllli, .,illlllllll!!′ : ;::゙lllllllli, :lllllllll゙..,,,,,,,,,,ii : .i,,,,,iii,,::゙lllllllll、 .lllllllli,il!!!゙゙゙゛: : : `゙゙゙゙゙!",llllllllll: .lllllllll!: l!!○llト:,..,,:.ll○l!ll.:!lllll!゙゙ !llll!’: : ,,’ ’ : : : .:llllll° ,llllii, ll,,,、 ,_,,i、 ll'llll: ゙ll,l゙li..i、: : ``: ~゙°..",,.,l!|ll゙: ゙l,.゙ト 'lトェェェェェェイフ`゚,lll° ゙ll,,.', `゙゙`''''''゙゜ ||,,il!゙` ,,l!ili,: ,iliill,、 ._,,,,,iiillll;:゙!llil,,,,、.._,,,,ll!゙゙.ll!llii,,,_ _,,,,,,iiiiiiilllllllllllllllllll,::”`.゙゙゙゙゙゙゙゙″: .:l゙lllllllllllliiiii,,,__ lllllllllllllllllllllllllllllllllllllll: : ,lllllllllllllllllllllllllllliiiiii,,,,,、
677 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 16:57:24
↑ ふざけないでくださいな。 できれば今日中に回答ほしい。勉強が進まない。
678 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 16:58:29
>>676 あ、すみません。
それは編集しました。
ウホw 2秒後にレス来たのかと思って焦った error_log見たら? そのメッセージだけじゃ分からん
680 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 17:00:59
>>679 どこにあるんですかそんなの?
start押したら
>>673 のエラーメッセージが出るのですが?
ボットよけに特定のURLにアクセスがあったらそのIPからのアクセスを全部遮断したいんですが、なんかうまいことやる方法ありますか?
>>680 OSの種類とバージョン、apacheのバージョンとインスコ方法を記しなさい
>>681 <Directory "/path/to/there">
Deny from ....
</Directory>
この手のは相手しない方がいいよ。
684 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 17:10:13
>>680 winXP pro
apache 2.0.54
普通にインストールしました。
>>684 なるほどね
ネット関連のカテゴリに自宅サーバ板があるんで、そっち行ってちょーだい
スレ違いでございます
686 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 17:17:14
>>685 ここapacheのスレだろ?
頭大丈夫か?
ここはUNIXの板だよ。 頭大丈夫?
688 :
名無しさん@お腹いっぱい。 :2008/05/29(木) 17:23:48
どうでもいいからapache教えてくださいよ
テリー乙
「start押す」って何かと思ってたw
691 :
名無しさん@お腹いっぱい。 :2008/05/30(金) 00:31:41
ふと思ったけど、Linuxのユーザーと、Apacheのユーザーってどっちが多いかな?
Apacheじゃないかな。LinuxユーザならApache入れてる人そこそこいるだろうし、某メーカがApacheを 録画予約制御用にWindowsパソコンにプリインストールしてたりするし。
>>669 何でもかんでもコピペしてんじゃねえよクズ、今すぐビルから飛び降りて死ねやwwww
妄想爆裂発狂中のキチガイは今すぐ死ねwwwwwwwwwwwwwwwwwwwwwwwww
どうでもいいんだよカス
早く死んでおけよwwwwwwwwwwwwwwww
いいから今すぐに死ねwwwwwwwwwwwwwwwwwwwwwwwwww
なんで精神病院に逝けないの?いいから死ねよもうwwww
完全に壊れたキチガイ猿は今すぐに死ねwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
apache geronimoなんですけど、他サーバのgeronimoを自サーバに丸々コピー(クローン) したいんですけど、設定等何か注意することはありますか? ディレクトリごと持ってきたのはいいんですけど、他サーバで起動していたシステムが 自サーバではacionエラーで動かなくて困っています・・・ 初期設定等何かありますかね?
ドメイン部分を変えずに、別サーバを読み込むことって可能ですか? DNSを使って example.jp → サーバA test1.example.jp → サーバB なら簡単かと思いますが、 DNSで変更を加えずに exmaple.jp → サーバA example.jp/test1 →サーバB というのは可能でしょうか? ぱっと思いついたのが、 mod_proxyですが、その他よさそうな方法があったら木盆ぬ
696 :
名無しさん@お腹いっぱい。 :2008/05/31(土) 16:23:08
VirtualHost
697 :
名無しさん@お腹いっぱい。 :2008/05/31(土) 16:42:51
そりゃmod_proxyしかないな
>>696 質問読んでるか?
mod_proxy で実現できるけど、受け側に絶対パスの制約が出ることに注意。
ここを意識したサイト制作が出来るなら大丈夫かと。
× <a href="/">TOP</a>
○ <a href="../">TOP</a>
× <img src="/img/moe.jpg">
○ <img src="../img/moe.jpg">
さらに Location ヘッダにも影響が出る。Location は絶対パスしか出力できないので、
リクエストの最後に / があるかどうかで挙動が変わってしまう。
GET /test1/moe/ HTTP/1.1
Host: example.jp
↑これは問題ない。
GET /test1/moe HTTP/1.1
Host: example.jp
HTTP/1.1 301 Moved Permanently
Location:
http://test1/moe/ ↑リダイレクトで変なところへ誘導されてしまう。
結論としては、あんまりオススメできる方法じゃあないですね・・・・
699 :
698 :2008/05/31(土) 17:11:26
訂正です。以下の文は関係ないので無視してくださいorz > Location は絶対パスしか出力できないので、
700 :
名無しさん@お腹いっぱい。 :2008/06/02(月) 01:20:15
質問があります。 現在ApacheとPHPを一緒に動かしているのですが、アイドル状態の子プロセスが死なず、また、 レスポンスが返ってこなくて困っています。 現象: 1Apacheの起動後、PHPアプリを起動 このときは問題なく表示されます 2ブラウザのリロードボタンを何度か(約8回)押します このときに、レスポンスが全く返ってきません。また、ブラウザの停止ボタンを押してプロセスをアイドル 状態にしても、MaxSpareServersで設定した子プロセス数までプロセス数下がりません。
701 :
700 :2008/06/02(月) 01:20:56
>>700 です。
利用しているApacheとPHPのバージョンとコンパイルオプション、Apacheの設定を載せます。
PHPのバージョン: 5.2.5
./configure --prefix=/usr/local/php-5.2.5 -with-apxs2=/usr/local/httpd/bin/apxs \
--enable-mbstring --enable-sockets --with-zlib-dir=/usr \
--with-jpeg-dir=/usr --with-png-dir=/usr --with-gd \
--with-mcrypt=/usr/local/libmcrypt-2.5.8 --enable-pcntl \
--with-mysql=/usr --with-libxml-dir=/usr/local/libxml2-2.6.27 \
--with-gettext=/usr \
Apacheのバージョン: 2.2.8
./configure --prefix=/usr/local/httpd-2.2.8 --enable-ssl --with-ssl=/usr/local/openssl-0.9.8g \
--enable-suexec --enable-so --with-mpm=prefork --with-apr=/usr/local/apr-httpd/ \
--with-apr-util=/usr/local/apr-util-httpd/ --with-suexec-caller=www
Apacheの設定:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 10000
</IfModule>
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
使用ブラウザ: Firefox 2.0.0.14、Opera9.27
長くなってしまいましたが、何か原因が分かればお願いします。
702 :
700 :2008/06/02(月) 02:04:01
>>700 です。
すみません。自己解決しました。
原因は、パイプから渡されてきたアクセスログを処理しているスクリプトでした。
次のログが延々と吐き出されていました。
piped log program '/var/www/bin/syslog_accesslog.php' failed unexpectedly
/usr/bin/env: php: No such file or directory
そしてスクリプトは次のようになっていました。PHPが見えてなかっただけでしたorz
#!/usr/bin/env php
<?php
while(!feof(STDIN)) {
$access_log = fgets(STDIN);
syslog(LOG_NOTICE, $access_log);
}
これを以下のように書きなおして問題解決しました。
#!/usr/local/php-5.2.5/bin/php
<?php
while(!feof(STDIN)) {
$access_log = fgets(STDIN);
syslog(LOG_NOTICE, $access_log);
}
すみません。お騒がせしました。
乙です。余計なお世話かもしれないけど、syslog 送りにしたいだけならこれで行けそうな・・・ CustomLog "| /usr/bin/logger -t httpd -p daemon.notice" myformat
704 :
700 :2008/06/02(月) 17:19:58
>>703 それで行けました!わざわざ書く必要ありませんでしたね
ありがとうございます!
705 :
名無しさん@お腹いっぱい。 :2008/06/03(火) 22:07:36
すいません もしかしてServerLimitってgracefulじゃ反映されないの? 512にしても最大256で頭打ちのまま…
706 :
名無しさん@お腹いっぱい。 :2008/06/03(火) 22:19:41
707 :
名無しさん@お腹いっぱい。 :2008/06/03(火) 22:22:58
>>706 てんきゅー!
ServerLimitのマニュアルはざっと読んだんだけど反映のさせ方がいまいち分からなかった
訳が変だったのね…
708 :
名無しさん@お腹いっぱい。 :2008/06/03(火) 22:25:05
あー、2.2以降だったらgraceful-stop⇒startのほうがいいな これならgracefulと変わらないしお勧め
709 :
名無しさん@お腹いっぱい。 :2008/06/03(火) 22:27:46
あ、もう再起動しちゃった でもそれも覚えとく ありがとう
710 :
名無しさん@お腹いっぱい。 :2008/06/05(木) 18:09:57
711 :
名無しさん@お腹いっぱい。 :2008/06/05(木) 18:15:19
>>710 mod_proxy かな。
バレたらアクセス可、というのはよくない。
そもそも直接アクセスできないようにしておくべき。
localhost からしか許可しない、とかで。
712 :
名無しさん@お腹いっぱい。 :2008/06/05(木) 18:34:04
>>712 ntop を起動するときに -w 127.0.0.1:3000 として localhost で listen させる。
とりあえずこれで外部から ntop への接続はできなくなる。
あとは apache で mod_proxy の設定をする。
NameVirtualHost *:80
<VirtualHost www.example.com:80>
ProxyRequests Off
ProxyPass /
http://127.0.0.1:3000/ ProxyPassReverse /
http://127.0.0.1:3000/ </VirtualHost>
試してないけど多分こんな感じで何とかなるかと。URL がずれなくなるから
この方が楽なんじゃないかな。
アクセス制限とか認証とかは <VirtualHost> に対して掛ければ良いかと。
>>710 です。
結局のところ、今までのドキュメントルートにあるコンテンツと混在してたら
mod_rewriteではどんなルールを書いても、「あちらを立てたらこちらが立たず」状態なので、
IPベースでバーチャルホスト立てて、proxyを使うことにしました。。。
これでアドレスバーは誤魔化せましたが、ステータスバーに裏のIPアドレスとポートが出てしまうので
苦労の割には誤魔化しきれなかったり。。。orz
? リバースプロキシで一撃じゃないの?
ntop が返す HTML の中のリンクに URL が埋まってる、とかじゃないの?
試してみる元気はないけど、ntop proxy とか ntop mod_proxy で 検索していっぱい出るじゃん。出来るんじゃね?
ntopが出力するhttpデータは調整出来ないの? サーバー名とかURLとか・・・
>>710 です。
どういうわけか、 -wオプションで127.0.0.1:3000を指定したり、
プロキシの転送先を127.0.0.1:3000にしたりすると、
[Thu Jun 05 23:10:04 2008] [error] [client 123.456.789.012] client denied by server configuration: proxy:
http://localhost:3000/ というログが出て接続ができませんでした。
ntopのスタートスクリプトでeth0のIPアドレスを明示的に指定してやって、
バーチャルホストのconfigも、ProxyPass ProxyPassReverse ともにeth0のIPアドレスで
書いてやったら、目的を達成できました。
FireFox2、IE7ともに、裏のIPアドレスとポートを隠蔽してユーザに見せることができました。
あ(・∀・)り(・∀・)が(・∀・)と(・∀・)う!ございます!
>ntopにはブラウザからアクセスしたときの認証の機能がないので 嘘はいかん。doc嫁
裏のIPアドレスとポートにアクセスすると表示されるんでしょ?w パケットフィルタでもしておいたら
CGI、またはPHPを運用していて、それぞれのスクリプトが管理・ファイルを生成している フォルダa・b・cがあるとします。 このフォルダ内に生成されるファイルが、外部からURLを手打ちでアクセスできてしまう為 フォルダ内への直アクセスを規制したいのですが どうすればよいのでしょうか?
723 :
名無しさん@お腹いっぱい。 :2008/06/06(金) 20:53:40
上から順番にお勧め 1.フォルダa・b・cをドキュメントルートの外に配置する 2.mod_authz_hostを使ってアクセスを拒否する 3.その中のファイルの末尾を.cgiにする
.htaccessでもいいんじゃん?
725 :
名無しさん@お腹いっぱい。 :2008/06/06(金) 21:33:27
レンタルサーバーでもないのになんで.htaccessが出てくるんだ?
レンタルサーバーじゃないと .htaccess 使っちゃいかんの?
.htaccessでやるとパフォーマンス落ちるよ。
「.htaccessを使う」ってのは要するに「設定を変える」ということだけしか意味しない 何の設定を変えるかは全く言及されていない
デフォルト設定で入っている
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
が有効なら、ファイル名/ディレクトリ名の頭に .ht を付けるという手がある。
素直に
>>723 の1にしておくのが本筋ではあるが。
>>726 使っちゃいけないってことはないけど、conf いじれる root 様は普通は
AllowOverride None だと思う。None 以外に設定するのも萎える。
理由は
>>727 の通り。ま、アクセスが少ないサイトなら影響しないけどね。
ただ、大きなファイルをダウンロードさせてるサイトで WorkerMPM使ってる場合は、graceful restartがきついから .htaccess使う理由にはなる
>>731 あー、なるほどね。セッションが長い場合は .htaccess の処理コストが
与える影響は低いね。これは盲点ですた。
2.2.9がもうすぐリリース アナウンスが出てないけど、すでにトップページに表示されてるが
734 :
名無しさん@お腹いっぱい。 :2008/06/14(土) 13:10:21
Apache+MySQLでDBを使ったBASIC認証で教えてください。 こんな感じでhttpd.confを設定するとユーザーごとの制御はうまくいったのですが、 DAV svn SVNParentPath /usr/local/svn/ AuthType Basic Require valid-user AuthMySQLHost localhost AuthMySQLUser apache AuthMySQLPassword apache AuthMySQLDB htpasswd AuthMySQLUserTable user_info AuthMySQLTableUserName user_name AuthMySQLTableUserPasswd user_passwd さらにユーザーグループごとにディレクトリをアクセスできたりできなかったりする設定がうまくいきません。 上の設定に加えて AuthzSVNAccessFile /usr/local/svn/.svnaccess AuthMySQLGroupTable user_group AuthMySQLTableGroupName user_name AuthMySQLTableGroupGroupName user_group /usr/local/svn/.svnaccessがこんな感じです。 [groups] [proj-1:/] @group-1 = rw ページを開くと認証を求められますが正しいパスワードを入れても403 Forbidenです。 /var/log/httpd-error.logがこんな感じです。 [error] Internal error: pcfg_openfile() called with NULL filename [error] [client 192.168.0.1] (9)Bad file descriptor: Could not open password file: (null) [error] [client 192.168.0.1] Failed to load the AuthzSVNAccessFile: An authz rule refers to group '@group-1', which is undefined [error] [client 192.168.0.1] Access denied: 'user-1' GET proj-1:/ なにが悪いのでしょうか?
> なにが悪いのでしょうか? エラーメッセージを読もうとしないキミの性格、またはエラーメッセージを 読めないキミの英語力。
Apache HTTP Server 2.2.9 Released ってメール来たよ
質問です。 Apacheが落ちたのでerror.logを見たのですが、 落ちた時刻に [Sun Jun 15 05:00:02 2008] [notice] Graceful restart requested, doing restart [Sun Jun 15 05:00:02 2008] [emerg] (2)No such file or directory: Couldn't initialize cross-process lock in child [Sun Jun 15 05:00:02 2008] [emerg] (2)No such file or directory: Couldn't initialize cross-process lock in child [Sun Jun 15 05:00:02 2008] [notice] Apache configured -- resuming normal operations [Sun Jun 15 05:00:02 2008] [alert] Child 5617 returned a Fatal error... Apache is exiting! とありました。 この時刻には手動でGraceful restartをしていないのですが、自動で行われることがあるのでしょうか?
738 :
737 :2008/06/15(日) 12:22:51
追記:バージョンはApache/2.0.63です。
時刻がきっかりだしcronでログ処理を走らせてんじゃないの?
ログのローテーションじゃない?
いろんなOSについてるApacheのパッケージはデフォルトで ログのローテーションで再起動するようになってるよ 時刻が朝の5時だし、間違いないだろう
742 :
737 :2008/06/15(日) 18:08:40
>>739-741 レスありがとうございます。
なるほど単なるローテーションでしたか。。。
もうちょっと原因を探ってみます。
>>742 >もうちょっと原因を探ってみます。
もうちょっとも何も。
アドバイスに従ってまずcron設定みなよ。
crontab じゃなくて /etc/logrotate.d/* というオチなんだろうな・・・・
いやnewsyslog.confかもしれん
2.2.9のconfigureで、オプション付けると必ず configure: WARNING: Unrecognized options: って出ない?
>>746 ほんとだ
./configure --with-mpm=worker
でやったら
configure: WARNING: Unrecognized options: --with-mpm
configure: WARNING: Unrecognized options: --with-mpm
と。でもmakeしてみるとちゃんとworkerになってる
>>746 同じく。オプションが急に変更になったのかと思ったよ。まともに動いて
るのか不安だな、、、
749 :
名無しさん@お腹いっぱい。 :2008/06/17(火) 09:57:34
Apache/2.2.2とFreeBSD6.2で動かしています。 それで、最近Apacheが知らない間にいつも再起動されてて悩まされています。 色々と原因を探った結果、httpd-access.logが100MBに達して、 次のログに切り替わるとき(ログローテーション)に、 必ず落ちます。逆に、それ以外のときには落ちません。 そのような特別な設定をした訳ではないのですが、 この対処法ご存知の方はアドバイスいただけないでしょう? なにとぞ宜しくお願いします。もう、2ヶ月も悩まされています。
ログ切替えはnewsyslog? シグナルを送ってhttpdにログファイルを作り直させている?
落ちたならエラーログが出ていそうなもんだけど、どうなのよ?
752 :
名無しさん@お腹いっぱい。 :2008/06/17(火) 19:41:38
>>750 >>751 アドバイス有難うございます。
確かに、newsyslogからの信号で落ちておりました。
newsyslogの仕様なんですね。助かりました。
ちなみに、これって、落とさずにログを循環させる方法はないのでしょうか?
newsyslog以外でもいいのですが。
>>752 ふつー落ちない。設定だか何だかわからんが、どっかの何かがおかしい。
それを解消しなければ、たぶん何を使ってもやっぱり落ちる。
シグナル送らないとhttpdがファイルハンドル放してくれないから、よーわからん状況になるよ newsyslog.confの編集作業に戻るんだ
756 :
名無しさん@お腹いっぱい。 :2008/06/17(火) 21:22:34
>>753-755 いつもすばやいレス有難うございます。
私がした設定は、どこかのサイトの設定を見てこのようにしました。
# vi /etc/newsyslog.conf
/home/hogehoge/log/httpd-access.log 644 100 100000 * Z /var/run/httpd.pid
/home/hogehoge/log/httpd-error.log 644 100 100000 * Z /var/run/httpd.pid
設定のどの辺が変が分かりますか?
>>755 さんが書かれていたことを読んで思い出したのですが、
そのサイトにも、httpdにシグナルを送らないとダメだと書いてありました。
757 :
名無しさん@お腹いっぱい。 :2008/06/17(火) 21:29:12
すみません。他のサイト検索していたら、30を後につけろ、と書いてありました。 これだけで、大丈夫でしょうか?シグナルの種類があって、30番なら落ちずにログ循環が可能と書いてありました。 /home/hogehoge/log/httpd-access.log 644 100 100000 * Z /var/run/httpd.pid 30 たびたびすみません。
30とか環境依存じゃないの?w 素直にHUPかUSR1にしておけって。
>>757 >>751 >>754 を無視かよw
newsyslog とシグナルの関係で落ちてるので間違いはなさそうだが、
デフォルトではSIGHUPが送られるんで、httpdが落ちるのもおかしい。
念のため、VirtualHostじゃないメインのerror_logの該当時刻を確認すべし。
761 :
名無しさん@お腹いっぱい。 :2008/06/18(水) 09:51:49
>>759 >>760 すみません、色々と有難うございます。
無事30のシグナルを送信することで解決しました。
ログが変わってリスタートしませんでした。
ログも見ましたが、確かにシグナルで落ちていました。
もっと仕組みを勉強していきたいと思います。
本当にありがとうございました。
>>761 httpd は SIGHUP で落ちたらおかしいんだよ。そのログ晒してみてくれない?
>>746 2.2.9 buildconf してからconfigure すると、ワーニングが出なくは
なりましたが、、、これでいいのかは不安です。
>>763 ウチでは、fedoraのspec参照に、./configure前に、
autoheader && autoconf 実行しても、やっぱりWARNING出ます。
2.2.9はスルーで。
出力するHTML内に指定のタグが入ってなかったら 強制的に指定のタグ挿入、とかするモジュールなかとですか?
767 :
名無しさん@お腹いっぱい。 :2008/06/20(金) 03:42:29
favicon.icoのリクエストが多くて、 403ではじくとエラーログに出力されちゃいますが、 エラーログみるとそればかりで、他のエラーがスゴク見つけにくいです。 favicon.icoの403エラーをエラーログに記録させない方法を教えてくださいませんか?
favicon.icoを置く
grep -v で見ればいいじゃん。 ErrorLog は SetEnvIf 使えないんだっけ。
770 :
名無しさん@お腹いっぱい。 :2008/06/20(金) 08:47:15
>>768-769 ご助言ありがとうございます。
当サイトはトラフィックが非常に多く、
favicon.icoを置くと、転送量が増えてしまうため、できれば避けたいです。
grep -vは確かにそうですね。
ただ、できればログに記録したくなくて、
調べたところerrorlogにはsetenvifは使えないようです。
検索エンジンで調べてそう書いてありまし、又自分でもやってみてダメでした。
後からログを綺麗にするしかないのでしょうか。
パイプに渡してがんばる、とか。
>>770 favicon.icoという名前の空ファイルを置いておけば、
転送量は増えない。
>>772 HTTP ヘッダは送っちゃうんじゃない?
どうせリクエストは送られてきて、それに対してのレスポンスも返すんだ。 作っておいてexpireでキャッシュの生存期間延ばしたほうが転送量も抑えられる。
>>773 それはfavicon.icoがなくても同じ。だから、転送量は増えない。
なるほど。
やってます 0byteのfavicon.ico 拗ねちゃうブラウザもいないっぽい
>>778 ありがとう。2.2.9 ひとまずテスト環境では順調です。
780 :
:2008/06/21(土) 19:00:27
Linuxで使用するapacheとWindowsで使用するapacheとでは差異などあるのでしょうか? バージョンは2.2.8でお願いします。 利点や欠点などもご存じでしたらぜひお願いします。
httpd 単体で考えたときにはあまり差異はないと思う。 何をしたいのか、何を動かしたいのかが重要。 メリット ・LAMP に相当するものは一応揃えられる。 ・UNIX 系の知識がないなら OS 管理が楽。 デメリット ・UNIX 系 Apache と比べて情報収集がやや困難。 ・サードパーティなモジュールが動作しない可能性がある。 ・UNIX 系でよく利用するコマンド、ユーティリティが使えないかも。 ・Cygwin であれこれ揃えるならそもそも UNIX で(ry ・OS のスリム化がしづらい。 ・.NET とか MS 特有のものは知らん。
MultiViewsでheader.html.jaが自動選択されて内容が表示されているのですが、 HTTPヘッダにContent-Type: text/html;charset=ISO-8859-1が出力されていて ブラウザで文字化けしてしまいます。 IndexOptions +SuppressHTMLPreamble にして meta で指定しても、 IEはHTTPヘッダを優先するようで文字化けは改善されませんでした。 どうしたら.jaのファイルのHTTPヘッダのcharsetを変えられるでしょうか。 環境 sourceforge.jp のサーバ Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11 .htaccess が使えますが、どこまで許されているかわかりません。
IndexOptions Charset
784 :
782 :2008/06/22(日) 00:28:25
ありがとうございます。 <Files でうまく条件分けできなかったためか、.enファイルにもSHIFT_JISが 付くようになってしまったので、.jaファイルもUTF-8にして解決としました。
785 :
:2008/06/22(日) 00:40:39
>>781 ありがとうございます。
何をしたいとか何を動かしたいとかは特に考慮しなくて大丈夫です。
Apache単独での差異が知りたかったので…。
一応書いておきます。linux上でapache・tomcatの連携をします。
windows上での連携と差異はありますか?
連携以前にWindowsで動かすと不安定で落ちやすい
787 :
:2008/06/22(日) 19:15:43
>>786 ありがとうございます。
ってことはLinux上では安定していると受けってもよろしいのでしょうか?
大差ない
十分に安定。
あと、ライセンス関連が違う
質問 CGIゲームの改造をしてるんだが、 「いきなりサーバーにあげないで、 ローカルでテストしてからにしてください」 とよく書いてある。その趣旨はわかるんだが、 自分のパソコンにWEBサーバーをインストールすると いうのは、自分がなにをしているのかよくわかっていない 場合は、危険な行為ではないのか? パソコンのハードディスクの中身がすべて ネットに公開される可能性もあるし、 インストール直後のデフォルトの状態は 結構安全なのか? 公開用のフォルダというものがあって、 そこに入れたものだけが公開されるのか?
よくわかってからやれ。
>>791 >自分のパソコンにWEBサーバーをインストールすると
>いうのは、自分がなにをしているのかよくわかっていない
>場合は、危険な行為ではないのか?
はい。危険な行為です。
そして、その程度の知識の人がCGIを作ることはもっと危険です。
要するに、「自分のPCに、安全にWebサーバーをインストールすることもできない人は
CGIをアップロードしないでください」
ということです。
じゃあ、どうやれば安全なのか、 また、どうした場合には危険なのか、 解説がまとまってるページか書籍を 教えてもらえますか? また、インストール直後のデフォルトの 状態の安全性はどうなってますか? インストールして、5分後に自分のPCの IPアドレスにポート80でアクセスがあったら パソコンの中身を見られてしまうのですか?
CGIなんてWebサーバーなくたって、直接起動すりゃテストできるだろ
そんなん逐一人に聞かないとわからないような人は 向いてないと思います。
>>791 >>794 煽りじゃなくてマジレスだが、このスレで論議する内容じゃない。
何故なら UNIX/Apache 云々以前の問題であるから。
自宅サーバ板の方が適切な回答を得られやすいと思われ。
インストールするときに、勝手にネット接続を テストしようとしやがるな。マカフィーが反応した。
アパッチ2だと、最初にインストールして、 localhostをブラウザで表示したとき、 it works! しか表示されないの?
>>799 待て待て、それはソースからコンパイルしてインストールした時の状態じゃないか?
(Winの)msiバイナリパッケージでinstallした時は、
おめでとうございます。
この計算機で無事Apacheのインストールが完了しました。
云々のページが出るはず。
Linux系のrpmで入れた場合も、ディストリごとのwelcomeページが出るハズだ。
ソースから入れれるくらいの知識があれば、そんなの気にする必要あるか?
>>800 OSはWindows2000で
msiをダウンロードしてインストしただけですが。
なんで自分のページだけ
「あなたの意に反して、、、」
がでないんだろう。
Windows版のApacheは板違いだろうて・・・
>>801 はーん、さては上書きインストールか、以前のバージョン入れてたんじゃないかな?
httpd.confが置き換わらないんで、auto_negoやfiles_matchが正常に効いてないからじゃないか?
>>802 うーん、Win限定の話じゃない時(confや標準moduleの設定とか)は、別にいいんでんね。
OSはWindows2000
win用のアパッチをインストールした。
http://localhost/index.html ↑これは表示されるようになった。
しかし、
http://localhost/a.cgi これを表示しようとすると
Forbidden
You don't have permission to access /a.cgi on this server.
となってしまう。
おそらく、cgiを表示するパーミッションを与えていない、
というのが原因だと思う。
その設定ファイルは、
httpd.conf
だと思う。
>>804 についてだが、
You will also need to add "ExecCGI" to the "Options" directive
という記述を見つけたので、
Options Includes FollowSymLinks ExecCGI MultiViews
これを入れたら、
You don't have permission to access /a.cgi on this server.
というエラーは出なくなった。しかし今度は、
500 Internal Server Error
になってしまう。
>>805 自己解決した。
単にHTMLで出力してなかった。
HTMLのタグで(<body>とか)ちゃんと
書いたら普通に表示できた。
>>803 インストールなんて思いっきりwin限定の話じゃん。
808 :
803 :2008/06/24(火) 00:12:35
>>807 そうかな?
今回の流れでは確かにWinでの話だっけど、インストール自体は別にWinに限った話じゃないじゃん。
>>799 の書き込みだけでは、それがWinでの話かどうか断定できないし。
Linux系でもrpmとかあるし、FreeBSDでもportsとかあって、ソースインスコだけとは限らないじゃない。
803で書いたhttpd.conf等のデフォルトファイルの置き換えに絡む話は、WinだけじゃなくLinux系でもpkg_installで出てくる問題だし。
(具体的にどれがどうとかは、確かに各ディストリやパッケージマネージャーに因った話になってしまうけど)
それともここは、ソースインスコに限った話しかしたらいけないのかな?
(自分はWinでもLinuxでも、パーケージからとソースからと両方でインストールしたの混載で使ってる)
バイナリパッケージの話は 別板なり各OS/ディストリのスレなりの方がいいと思うよ。 プラットフォーム固有の話かどうか完全に切り分けできないでしょ。
なんか日記になってる
OSはWindows2000で、 アパッチwin版をこのまえ インストールしたんだけど、 今は起動してないはずなんだけど、 Windowsタスクスマネージャーで見ると、 プロセスのところで、 httpd.exe ってのがあるんだけど、これって 自分が気づけてないだけで、実は httpdが、ようするにアパッチが影で 起動しちゃってるってこと? どうやって確認すればいいの?
板違い
気違い
人違い
メルコ違い
勘違い
UNIX板で聞いても判る人少ないだろ サービスとかその辺りじゃね?
UNIX板は誤字の指摘は得意だぞ。 × アパッチが影で ○ アパッチが陰で
アッーパチ
ガチムチHTTPサーバ いったい何をサービスするのやら
Apache の起源は韓国ニダ
apache2.2+mod_layout5.1で LayoutIgnoreTag が効かない バグだれか直してくれ。 パッチ誰か出してくれ。 おながい
質問です。 solaris(euc)→fedora(utf-8)へ、webファイルを移動した場合、 自動でそのファイルやフォルダの文字コードが変更されるのでしょうか? winXP(s-jis)htmlはwebでみる際s-jis設定でこのhtmlをfedora(utf-8)へsambaで移動の場合、 自動でエンコードされてるらしく文字化け無しでした。 移動したhtmlをwebで見るとs-jisで文字が表示してました。 この場合大丈夫でしたが、solaris(euc)からfswikiをfedora8へ移動しても勝手にutf-8に 変更してくれるのでしょうか?
824 :
名無しさん@お腹いっぱい。 :2008/07/20(日) 16:55:37
質問です。 apacheって何て言うの? ソフト?アプリケーション?デーモン? たぶん全部正解だと思うけど専門家の間では一般的に通常何が正解でしょうか?
うちらは鯖ソフト、と呼ぶことが多いかな。きっと方言だろうから、あんまり確信があっての 呼び方じゃない。システム管理上の会話では、httpd と呼んでる。
普通に、サービスだろ。
普通に、アパッチでしょ。
ハードウェアとの対比で言えばソフトウェアだし OSとの対比で言えばアプリケーションだし 普通フォアグラウンドで使うプログラムに対比させればデーモンだよな
あえて選ぶなら、ソフトウェアだと思う。 UNIXやLinuxではアプリって言い方しないし(kernel以外全部アプリだし) apacheのパッケージに入っているのはデーモンやサービスだけじゃないし、 間違いないのはソフトウェア。多分。
よく、「サービスのことを*nixではデーモンと呼ぶ」みたいな言い方する人が居るけど それって違うよね。 例えば、同じhttpのサービスでも、TUXみたいにカーネル内で動作するものや IIS6のhttp.sysみたいに(見た目)ドライバのように動作するものもある。 その中で、常駐の方法としてdaemonizeするサービスのことをデーモンと呼ぶだけ。
で?
apache(の主機能)はサービス。 デーモンと呼ぶ奴はアホ。
やば、絶対反論が来るのが予想できる。
漏れもサーバソフトだなぁ。ただまぁ、世間的にはミドルウェアと 呼ばれてしまっていることが多いね。ハァ?と思うが、ミドルウェアらしい・・・・・・・ デーモンっつーのは、httpd(8) などのプロセスの元になるプログラムや、 常駐するという意味での実行形態をを指してると思う。
サービスっていうと、何かを提供するものってイメージかなー 私の周りだと、Webサーバソフトかな。
>>834 ミドルウェアで違和感無いんだけど、逆にミドルウェアという守備範囲は何を指すの?
マジでミドルウェアって呼ぶコミニティってあるの? 普通にサーバアプリ、デーモンじゃないの? apacheがミドルって、どことどこの層のミドルを指すんだよ。 スタンドアロンでも当たり前に動作されているだろうよ。
スタンドアローンで動いてるミドルウェアはたくさんあると思うが?
apacheは紛れもなくミドルウェアであるけど、開発側がそれをいうことはあまりないだろうがなw
>>832 うむ。
Postfixデーモンっていったら、間違いなく笑われるよね。
Webプログラマーからみたらミドルウェア。
>>837 コミュニティは知らんが、会社ではミドルウェア呼ばわりされてる。
下はOS、上に載っかるのはWebアプリや静的コンテンツだな。
ミドルウェア apache とかでググって見れば分かるぞw postfix やら bind やら RDBMS やら、みーんなミドルウェアさ。
OSでもなくてフロントエンドアプリでもなければ とりあえずミドルウェアって呼んどくのかなあ アンチウイルスとか監視系は別なのかな
クロスプラットフォームのためのライブラリなんかも、ミドルウェアだな。
perl とか php でつくった掲示板とかはなんて呼ぶの? Webアプリケーション?
Webアプリケーションってのに慣れるのも時間がかかったな
CGI(笑)
>>824 の質問に対する回答は「ミドルウェア」という結論でおk?
どこをどう読んだらそうなる 強く納得できる理屈が無いだろ
ライブラリやフレームワークみたいな縁の下の力持ちみたいな層をミドルウェアと呼ぶのは理解できる。 しかし、apacheはあまりに主体性がありすぎる。フロントエンドと呼ぶべきじゃないのか。
853 :
850 :2008/07/22(火) 13:15:55
>>852 いや、漏れもそういう認識なんだけどね。
世間的にはミドルで通ってるっぽいじゃん?
apache がフロントエンドはないだろw
わかった。見切った。 apacheはapacheなんだ。 これで解決。
そうだな。 他の呼び方を求めること自体が愚問なんだな。
基本ソフトウェア、応用ソフトウェアと来たら、やっぱり中間ソフトウェアなんかね?
分離できないOSバンドルソフト以外は全部応用だろうが。
IEは基本かぁ
ブラウザ=ネット時代のコマンドプロンプトと捉えれば 確かに基本ソフトかも知れん。
そういう見方をすると、Webアプリがハッテンする程に ブラウザはミドルウェアに近くなる。
ミドルウェアにとどまらず、 基本ソフトに近くなるといったほうがいいのでは。
どーでもいいよ
考えてみた。 Webアプリ ブラウザ--------Apache OS OS とapacheの位置づけはブラウザと同じレイヤということで、 ブラウザが基本ソフトならapacheも基本ソフト、ということになるか。 でもまだ完全体になってないので現状ミドルウェア、 と言われれば納得感があるかも。
団体の名称である
apache って、もう精錬されすぎ枯れすぎでネタ切れ? 空気みたいなもんだな。 フレームワークやらAjaxやらそっちの方がアレコレややこしい。
prototype.js みたいのは何と定義する? ミドルウェアかしら。 すると送り出すapacheは何かしら。
CentOS5.2で、apache2.2.3のsrc.rpmからspecファイルを編集してコンパイルしなおして やっと/home以下でsuEXECが使えるようにはなったんですが、 これって、virtualhostディレクティブ内でsexecUserGroupでユーザー/グループを指定する時に、 特定のディレクトリだけは別ユーザー権限で実行、というように<Directory>内で使うのは許されてないようです。 (apache起動中に怒られる) これをどうにか<Directory>内で使いたいのですが、良い方法がないでしょうか。 調べるとsuexec.cにパッチを当てると可能のようですが、2.2.3の場合の方法がさっぱりわかりません。
ちょっと質問させてください。 .cgiファイルをテキストファイルとして開きたい。 AddType text/plain .cgi これを.htaccessに追加したのですがcgiとして開いてしまいます。 テキストファイルとして開くにはどうしたらいいでしょうか?
それをいうならRemoveHandlerだろ
874 :
871 :2008/07/26(土) 00:34:48
.htaccessにどう書いたらよいのでしょうか?...
RemoveHandler .cgi しかし.htaccessを使う深い理由はあるのか?
レン樽鯖?
877 :
871 :2008/07/26(土) 10:25:33
お返事遅くなりました。
>>872-875 さんありがとうございます。
>>876 そうです。それとディレクトリごとに設定を分けるときも楽じゃないですか?
あともう1つだけ質問させてください。
.shもテキストファイルとして開きたいと思っています。
これがどうしてもテキストファイルとして開けません。
どうかよろしくお願いします。
.cgi と同じだよ。Remove の意味を考えれば分かるだろ?
>>79 >::1 - - [21/Jul/2007:23:27:18 +0900] "GET / HTTP/1.0" 302 3
>00 "-" "Apache/2.2 (internal dummy connection)"
>といったログが1分間に50行くらい出て、そのままサーバーごとダ
>ウンしてしまう事が
>多いのですが、何か対策法ありませんか?
>DebianのパッケージのApache2.2.3を使っています。
おー、おなじあるよ。
とりあえず、サーバの構成教えてちょ
880 :
名無しさん@お腹いっぱい。 :2008/07/26(土) 13:17:18
881 :
871 :2008/07/26(土) 13:19:05
>>878 いえ、cgiはうまくいったのですがshはダウンロードダイアログが出てしまいます。
RemoveHandler .sh これでいいんですよね?
違うのかな...orz
882 :
871 :2008/07/26(土) 17:52:04
shファイルはテキストファイルとして表示することは出来ないのでしょうか?...orz
883 :
名無しさん@お腹いっぱい。 :2008/07/26(土) 18:06:21
AddType text/plain .sh 頼むからドキュメント読んで自分で考えようという姿勢を持ってくれ
884 :
871 :2008/07/26(土) 18:13:34
>>883 >AddType text/plain .sh
>頼むからドキュメント読んで自分で考えようという姿勢を持ってくれ
すみません。
それは最初にやったのですが、改行されません。
テキストファイルと同じように表示したいのですが...orz
IEを捨てることだ。
886 :
871 :2008/07/26(土) 18:29:09
>>885 ありがとう。たしかにFireFoxではちゃんと表示されました。
これはIEの仕様なので諦めろってことでしょうか?...orz
さよう。
ひょっとしてOutputFilterで改行コードCRLFに変換すれば問題ない?
IEに聞け。
890 :
871 :2008/07/26(土) 22:53:56
>>888 改行コードはCR,LF,CR+LFを試してみましたがだめでした...orz
>>884 の「改行されません」って、「改善されません」のtypoだろ?
その後、なぜか本当に「改行」の話と誤解して話が進んでるのでワロタ。
改善じゃないでしょ 間違いではなく改行されないんでしょ
894 :
871 :2008/07/27(日) 02:49:32
>>892 >>893 レスありがとうございます。
でも.txtファイルやその他不明なファイル(例えば拡張子.2chをIEで開くとちゃんと改行されます。
ですが.shや.cgiは改行されません。
最初はAddType text/plainを設定するだけでテキストファイルと同じように開けると思ってました。
これはIEだけの問題でしょうか?Apacheの設定でいけると思うのですが
マニュアルと格闘しても非力な自分にはなかなか解決できず...orz
しつけーな、IEだけの問題だって言ってんだろ。Apacheの設定じゃ解決できん。 どうしてもサーバーサイドで解決したいなら、そのファイルの先頭に1000行くらい空行入れろ。
>>894 >>892 さんが言っているけど要はブラウザがそのコンテンツを何と認識するか、ってことが重要で。
たとえばだけど cgi や .sh をテキストとして開くcgiを書くってのじゃダメなのかな?
セキュリティ的な危険(ファイルの指定方法によっては意図しないファイルも覗けちゃったり)を伴うから注意してやらないとダメだけど。
CGI(サーバーサイド)じゃ解決出来ねーって言ってんだろ。池沼
IEのContent-Type無視とか、もう今更って感じで IE使いたいなら、それで構わないけど、他のブラウザ強要はしねえし しかし、それを知った上で、IEを使ってもらいたいね、使うんならば
899 :
871 :2008/07/27(日) 16:41:51
サーバーサイドのapacheで、このファイルはcgiだの txtファイルだのを判別してると思っていたのですが そうじゃないってことですか? 勉強不足でした。もっと勉強してきます。皆様ありがとうございました。
判別してブラウザに教えてあげてるのに、IEが無視するんだろw
URLの拡張子ぽい所を変えるのが早そうな
mod_ext_filter って使っている人いますか? リクエストヘッダやレスポンスヘッダは参照・変更できないよね、これ? 手軽に Cookie をあれやこれやしたいと思ったのですが…。
mod_header じゃダメなん?
904 :
902 :2008/07/28(月) 13:48:23
>
>>903 ありがとうございます。
Cookie の内容を判定して、等、少しだけ複雑な処理にしたいです。
セッションIDがここに記録されていたら、
なんていうことは mod_headers 単体では難しそうです。
rewrite
>>904 mod_includeにヘッダ周りを適当に書き出させてから
mod_ext_filterで本処理なんて面白い事を可能にできるのがフィルタ。
遅くなるけどw
Apacheが起動に失敗する原因をログに吐かせて調べたいのですがどうすれば? apachectl configtestで構文エラーはないのに起動しなくて、かつ画面には[失敗]としか 出ないのでちょっとへこんでます。 起動さえすればログを見られるのですが。
Linux板で聞いた方がいいんじゃね
[失敗] locale設定が日本語の香具師多いな・・・
911 :
907 :2008/08/06(水) 15:41:32
>>909 レスありがとうございます。
error_log にも出ていないのです。ログレベルを変えると何か出るのでしょうか。
ErrorLog logs/error_log
#LogLevel warn
LogLevel debug
こんな感じにして再度トライしてみます・・ありがとうございました
>>907 apachectl start
ってやると[失敗]と出るの?
いえ [failed]と、でてます。
ほんとにapachctl? OSは何?
915 :
907 :2008/08/06(水) 18:27:11
913は騙りです。913さんは僕をからかっても得るものなんて無いでしょうに・・・
>>912 氏
OSはCent OS 5 (Red Hat Enterprise Linux 5 のクローン)です。
apacheのバージョンは2.2.3です。
普段は service httpd start/stop などの起動スクリプトを利用しており、
service httpd start としたときに [失敗] と出ます。
apachectl コマンドの場合は、起動は -k オプションのようなので、その通りに
apachectl -k start としても無反応です。
service うんぬんは OS 依存の話だから
>>908 で。
直接 httpd -X で起動してみれば良い。
918 :
907 :2008/08/06(水) 19:07:53
>Linux板 そうですね・・スレ汚し、失礼しました。 レスくださってありがとうございました。
綺麗好きな漏れ #!/bin/sh LC=`locale | cut -d = -f 1` for lc in $LC; do unset "$lc"; done env - PATH="/bin:/usr/bin" /usr/local/apache2/bin/apachectl start
env - PATH=... で起動するのは常識だよ。 これをやらんと CGI に妙な環境変数が渡ってしまう。
>>919 結局 env - ですべての環境変数が消えるのに、
$LCだけ個別にunsetしてるのは何故?
envの実行時にLC_HOGEが設定されてるとまずいの?
しかも、forループ回さなくても unset $LC で一発なのに。
>>923 (゚Д゚)ハァ?
$ unset $LC
$ env | grep LC
LC_CTYPE=ja_JP.eucJP
>>924 何ボケてんだよwww
>>923 が言ってるのは、「for文」の部分が「unset $LC」で一発って言ってるんだよ。
LC=`locale | cut -d = -f 1`
unset $LC
お前らこそUNIX板逝けよ
>>919 綺麗好きならシェルも奇麗にしようね。
>>922 が言うように、env - するならそれ以外の unsetは不要。
あと、最後のコマンドは execで起動するのがシェルの定石。
それと、不要なダブルクォートも取っておこう。
#!/bin/sh
exec env - PATH=/bin:/usr/bin /usr/local/apache2/bin/apachectl start
" " はあった方が見易くて好きだな。 exec するべきかどうかは場合によるでしょ。
Apache+PHP環境のセキュリティについて質問です。 Apacheの実行ユーザに重要なファイルのアクセス権限を与えることはセキュリティ上問題ないのでしょうか? 例えば、PHPでセッションを生成するとサーバにApacheの実行ユーザがアクセスできる権限でセッションファイルが作成されます。 全てのセッションファイルがApacheの実行ユーザからアクセスできるため、 何らかの方法でApacheの実行ユーザを利用して全く関係ない人のセッションファイルが覗かれたりすることはないのでしょうか? よろしくお願いします。 スレ違いだったら申し訳ありません。
通常はApache実行ユーザは、権限の低い nobodyなどになっているはずです。 そのユーザではサーバにログインできない設定になっているので、そのような心配は無用かと。
大有り。 セキュリティ上重要な情報があるなら、共有サーバーは使用しない。これが唯一の解。
>>930 >>931 >>932 皆さんお答えありがとうございます。
今回は共有サーバではなく、専用サーバにサービスを構築することを想定しているので、
サーバ管理者以外のユーザがスクリプトを作成し、
他のユーザが作成した重要なファイルなどを覗くということはないと考えています。
わかりにくくてすみません。
apacheの実行ユーザになりすまされたり、実行ユーザが乗っ取られることにより、
セッションファイルなどの重要なファイルが覗かれたりしないかどうかが気になっています。
このレベルのセキュリティはapacheというよりも、サーバ自体のセキュリティの問題ですかね・・・?
今日までApacheの読み方をアパッシェだと思っていた。 うん、それだけ。
それは報告しなくていいです。
セッション情報を読み書き出来ないウェブプログラムに、どんな意味が!w ウェブサービスに関係無いファイルなら、アクセス出来ない様にすれば
こんな感じで FQDN分だけ <VirtualHost></VirtualHost>設定するのではなく、 一つの<VirtualHost></VirtualHost>だけで 複数のFQDN対応する記述の仕方がどこかで紹介されてたのですが、 忘れてしまいました。 どなたかお助けを。
938 :
937 :2008/08/12(火) 21:01:04
肝心の部分が抜けてた・・・・ 再投稿させてください。。。 <VirtualHost *:80> DocumentRoot /www/example1 ServerName www.example.com # Other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot /www/example2 ServerName www.example.org # Other directives here </VirtualHost> こんな感じで FQDN分だけ <VirtualHost></VirtualHost>設定するのではなく、 一つの<VirtualHost></VirtualHost>だけで 複数のFQDN対応する記述の仕方がどこかで紹介されてたのですが、 忘れてしまいました。 どなたかお助けを。
どこかでって言うけどさ、 まず最初に見に行くべきとこがあるでしょ。
mod_vhost_alias
>>938 <VirtualHost> を1個しか書かなきゃ、マッチしなかったリクエストは
全部その <VirtualHost> に逝くね。
確実にやりたいなら、ServerAlias で1個ずつ書くとイイ。
mod_rewriteでのVirtual Hostのマッピングの話じゃないの?
CentOS5.2 / メモリ4GB環境に Apache2.2.9 入れて prefork / ServerLimit 100 で動かしたんだけど 起動から数時間でapcheがメモリとスワップ食い尽くしてしまう。 sar/vmstat/topで監視してても、なにかの拍子に突然津波のようにリソース食いだして ものの1分くらいでスワップ埋まって暴走しちゃうから病原のプロセスが特定できない。 (CGIとかはFedora3環境で正常で動いてたものをそのまま移動) なにが考えられるかな?
>>944 とりあえずアクセスログを見て、変なリクエストが来てないか確認。
問題解決までの時間稼ぎとしては、apache の起動スクリプトで
ulimit -v 20480
/usr/local/apache2/bin/apachectl start
などとする。
>>945 ありがとう
ulimit -v と -m かけて起動してみた
再現するまで様子みてみます。
いや、リミット掛けると制限超えたプロセスは即殺されるんで、それだけだと 再現してるかどうか分からないよw ↓のスクリプトを実行して放置してみてくださいな。1秒ごとに ps を実行して 20MB を超える httpd があれば出力する。あと httpd.conf の LogFormat に %p を追加すれば PID が記録されるんで、それと合わせて何か分かるかも。 #!/usr/bin/perl use strict; my $max = 1024 * 20; for (;;) { foreach (`/bin/ps ax -o pid,vsize,ucmd`) { s/^\s+//; my ($pid, $vss, $ucmd) = split(/\s+/); if ($ucmd eq 'httpd' && $vss >= $max) { my ($mon, $day, $h, $m, $s) = (localtime(time))[4,3,2,1,0]; printf("time=[%s], pid=%d, vss=%d\n", sprintf("%02d/%02d %02d:%02d:%02d", $mon+1, $day, $h, $m, $s), $pid, $vss); } } sleep 1; }
なにこの汚いコードは?
>>948 なるべく少ない行数にまとめた結果でございます。Perl はこんなもんですw
sh で書くよりこの方が動作が早いんで。
それにしても目が痛い
むしろ見やすいし読みやすいコードだろ 948=950は頭おかしいんじゃないの?
どうでもイイと思いつつ書き直してみた。Perl だとどうしても記号が多くなるからなぁ・・・・ このスクリプトに追加して gdb -p $pid とかやって core 吐かせることも可能ですお。 #!/usr/bin/perl use strict; my $max = 1024 * 20; while (sleep 1) { foreach (`/bin/ps ax -o pid,vsize,ucmd`) { s/^\s+//; my ($pid, $vss, $ucmd) = split(/\s+/); if ($ucmd eq 'httpd' && $vss >= $max) { printf("time=[%s], pid=%d, vss=%d\n", tstamp(), $pid, $vss); } } } sub tstamp { my ($mon, $day, $h, $m, $s) = (localtime(time))[4,3,2,1,0]; return(sprintf("%02d/%02d %02d:%02d:%02d", $mon+1, $day, $h, $m, $s)); }
このぐらいにまとめられるJK #!/usr/bin/perl use strict; use POSIX; do { foreach (`/bin/ps ax -o pid,vsize,ucmd`) { s/^\s+//; my ($pid, $vss, $ucmd) = split(/\s+/); if ($ucmd eq 'httpd' && $vss >= 20480) { my $tstamp = ctime(time); chomp($tstamp); printf("time=[%s], pid=%d, vss=%d\n", $tstamp, $pid, $vss); } } } while (sleep 1);
クソスレの悪寒
すごい!! さっそく%Pいれて、ただいたスクリプト走らせながら犯人が現れるのを張り込みしています 犯人のPIDの取得方法がわからなかったのですが、ログ残せるんですね それと昨日まではulimitが問題なく使えたのですが apacheを再起動したところ /usr/local/apache2/bin/apachectl: line 78: 10178 セグメンテーション違反です $HTTPD -k $ARGV のエラーが出て起動すらしなくなってしまました。 ulimit -vか-mをunlimitedにすれば問題なく起動するのですが。 それと昨日topのmしていたら、ハング直前にこんなプロセスが発生することを発見 8932 apache 18 0 2811m 2.1g 1.0g D 2 53.8 0:03.99 httpd 8038 apache 18 0 2811m 2.1g 1.0g D 3 53.7 0:03.55 httpd 7762 apache 16 0 37044 22m 2724 S 0 0.6 0:00.76 httpd ・・・・ RLimitMEM 400000000してるのですが、、1プロセス2.1Gって・・・
あ、ごめん。%p じゃなくて %P だったか。 んでもって、起動しただけでいきなり SEGV ってのはおかしいね。どんな インスコして、どんなモジュール使ってる? ulimit の値を少しずつ大きくしてコケない値を探してみると何か分かる・・・・かなぁ? RLimitMEM は実行される CGI への制限であって、httpd 自身への制限ではないよ。 httpd への制限をするには ulimit すべし。
よく見たら 7762 のプロセスもデカいね。mod_php とか mod_perl とか入れてる?
>>956 ./configure --enable-module=so --enable-rule=SHARED_CORE --enable-rewrite --enable-ssl \
--with-dom --with-zlib-dir
で
configure: WARNING: Unrecognized options: --enable-module, --enable-rule, --with-dom, --with-zlib-dir
を無視してmakeしてます
(まさかコレがまずい!?)
いただいたソースをもとに100M超えたら携帯にメールしてそのプロセスを殺すようにしたので
とりあえずulimitなしでいってみます
>>959 > configure: WARNING: Unrecognized options: --enable-module, --enable-rule, --with-dom, --with-zlib-dir
> を無視してmakeしてます
>>746
962 :
961 :2008/08/16(土) 04:22:40
で、意図するところは、
./configure --enable-so --enable-rewrite --enable-ssl
でいいかと。
ただ、無効なオプションは無視されているので、いまのままでも実害はないと思う。
>>957 さん指摘のとおり、mod_php (というか php プログラム)が原因になっていたりしない?
ありがとー さきほど ./configure --enable-so --enable-rewrite --enable-ssl でmakeしなおしました。 それでさきほど time=[08/16 04:29:45], pid=16093, vss=2880428 で反応がありました。 access_logによるとPID 16093は4:27:39から04:29:38までの38アクセス すべて200と304で正常に処理が終了してました うちGETが37、phpへのPOSTが1 POSTのあったphpは頻繁にアクセスのあるもので、問題に疑いのないプログラムです。 error_log、messagesに特に目だったエラーなし。 vss=は徐々に食っていったわけでなく、唐突に2GBめいいっぱい食ったようです どうやら、おかしなcgiやphpを実行しているというわけではないような・・
一度では分からないから、そのまま継続すべし。 5回ぐらい際限した後で共通点を探るのがセオリーでつ。
×際限 ○再現
最後のアクセスからアラームまで7秒もあるのか・・・・ そこまで時間差があるなら、最後のリクエストが怪しいな 悪意の有無は関係なく、どっかで制御を誤って無限ループしてる悪寒
>>963 です
24時間たったけどいまのところ問題起きてません
これまで12時間に2〜4回は発生していたので、もしかしたら本当にconfigureが原因だったのかもしれません
もう一度誤ったconfigureしたものに戻せば検証できるのですが、
いまのところ安定しているのでこのまま様子みつづけてみます
助かりました。みんなありがとー
特に理由がない限り漏れいっつもこんな感じだわ。
CFLAGS="-O2 -march=i686" \
./configure \
--prefix=/usr/local/apache2 \
--with-mpm=prefork \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--enable-proxy \
--enable-ssl
>>967 の件はconfigure関係ないと思う。少なくとも1回は発生してるシナ。
質問させてください。 cronでプログラムを自動実行させて、 RSSを利用してwebサイトから記事を取得し、 サーバ上のファイルに保存しておきたいのですが、 cronがうまくファイルを作成してくれません。 原因がわからないので、相談にのっていただけないでしょうか? さくらインターネットのレンタルサーバを使用し、 cronの設定ではbashファイルを実行させています。 PHPのプログラムはブラウザでたたくときちんとファイルを作成してくれています。 ですが、cronで実行させるとファイルができません。 どのような原因が考えられますでしょうか?
970 :
名無しさん@お腹いっぱい。 :2008/08/26(火) 02:18:45
Apacheと関係なし
ご、ごめんなさい・・・ どこで聞けばよい内容でしょうか? FreeBSDでしょうか?
レン樽鯖の「さくら」スレ
あっちに来たら漏れが速攻で相手してやるよw
>>972 さくらスレとはUNIX板ですか?
探してみます
>>973 さくらスレですか?
FreeBSDですか?
相手してください!
>>972 あ、ごめんなさい。
レンタル鯖板ですね。
了解しました。
976 :
名無しさん@お腹いっぱい。 :2008/09/04(木) 08:50:48
要求された URL が複数の Location もしくは LocationMatch ディレクティブにマッチするときのマージのされ方がわかりません。 <Location /aaa>A</Location> <Location /aaa/bbb>B</Location> <LocationMatch /.+>C</LocationMatch> とした場合、/aaa/bbb/ccc が要求されると A, B, C のうちどれがどの順番で適用されるのでしょうか? 具体的には /aaa であるハンドラを SetHandler で設定して、 /aaa/bbb に異なるハンドラを SetHandler で設定するような ことが可能なのか、などです。
977 :
名無しさん@お腹いっぱい。 :2008/09/04(木) 09:14:01
978 :
名無しさん@お腹いっぱい。 :2008/09/04(木) 09:32:25
>>977 そこには Directory ディレクティブのマージについては
「短いほうから」とされているものの、Location ディレクティブ
および LocationMatch ディレクティブのマージについては
書かれていないので・・・
979 :
名無しさん@お腹いっぱい。 :2008/09/04(木) 11:07:18
マッチしたすべての Location, LocationMatch について 出現順に処理されるようですね。
メクラ? > <Directory> 以外は、それぞれのグループは設定ファイルに現れた順番に処理されます。
981 :
名無しさん@お腹いっぱい。 :
2008/09/04(木) 11:32:14 ほんとだ.