トップページunix
982コメント316KB

Apache関連 Part11

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2008/09/30(火) 08:11:00
HTTP ServerのApacheに関する話題を扱うスレッドです。
http://httpd.apache.org/

●インストール済みApacheの詳細情報の調べ方
httpd -h 簡易ヘルプ
httpd -v バージョン情報
httpd -V コンパイル条件など詳細な情報
httpd -l 静的リンクされたモジュール一覧
httpd -M 現在の設定ファイルで読み込まれるモジュール(2.2以降)

●公式マニュアル
http://httpd.apache.org/docs/1.3/ Apache 1.3
http://httpd.apache.org/docs/2.0/ Apache 2.0
http://httpd.apache.org/docs/2.2/ Apache 2.2

●ディレクティブ一覧
http://httpd.apache.org/docs/1.3/mod/directives.html
http://httpd.apache.org/docs/2.0/mod/quickreference.html
http://httpd.apache.org/docs/2.2/mod/quickreference.html

前スレッド
Apache関連 Part10
http://pc11.2ch.net/test/read.cgi/unix/1179627714/
0002名無しさん@お腹いっぱい。2008/09/30(火) 08:12:18
立ててみた @linux
0003名無しさん@お腹いっぱい。2008/09/30(火) 22:57:59
@linux???????
0004名無しさん@お腹いっぱい。2008/10/02(木) 08:39:06
>>1
0005名無しさん@お腹いっぱい。2008/10/07(火) 20:19:39
自宅鯖の質問スレで質問した際、こちらのほうが適切な回答がとのことでしたので質問させてください。

Apache2.2.8でVirtualHost+SuEXECな環境を作りたいのです。
Apacheはuserもgroupもnobodyで動かしています。
そのためMovableTypeでHTML生成すると、ファイルのオーナーがnobodyになってしまい
これはSuEXECなるものを使えってことなのか?と試しているんですが、どうやってもnobodyでファイルが生成されてしまうのです。
/home/[ユーザ名]/public_htmlがVirtualHost個々のDocumentRootです。

./configure --prefix=/usr/local/apache2 \
--enable-so \
--enable-rule=SHARED_CORE \
--enable-rewrite \
--disable-dav \
--enable-cgi \
--with-included-apr \
--with-perl=/usr/local/bin/perl5.8.8 \
--with-port=80 \
--enable-suexec \
--with-suexec-caller=nobody \
--with-suexec-docroot=/home \
--with-suexec-userdir=public_html \
--with-suexec-bin=/usr/local/apache2/bin/suexec \
--with-suexec-logfile=/usr/local/apache2/logs/suexec_log \
--with-suexec-uidmin=1000 \
--with-suexec-gidmin=1000

configureは上記のようにしていますが、httpd_vhostとかに何かおまじないを書く必要があるんでしょうか?
もしくは他の方法でユーザ自身がオーナーになるようにできるんでしょうか?
初心者的質問で恐縮ですが、よろしくお願いします。
0006名無しさん@お腹いっぱい。2008/10/07(火) 21:49:42
>>5
/usr/local/apache2/logs/suexec_log に何かでてないの?
000752008/10/07(火) 22:52:34
ログには何も書き出されないです。
suexec -Vではconfigureの値がでてきているので
入っているのは確認できているんですが・・・

0008名無しさん@お腹いっぱい。2008/10/07(火) 23:09:55
ふむ。
あれ?
> /home/[ユーザ名]/public_htmlがVirtualHost個々のDocumentRootです。
これってちょっと特殊な要件だね。すまん、見逃してた。

<VirtualHost *:80>
DocumentRoot "/home/foo/public_html"
ServerName foo.example.com
</VirtualHost>

って感じ?だとすると、たぶん SuEXEC としては UserDir としての
アクセスじゃないから動かないと思う。(確かめたわけじゃないが、
かなり厳密に動作環境をチェックしてたはずなので)

おおもとのホスト名が www.example.com だとして、
まず http://www.example.com/~foo/ で SuEXEC での動作を確認し
て、http://foo.example.com/http://www.example.com/~foo/
にリダイレクトなり ProxyPass & ProxyPassReverse なりしてやる
のがいいんでない?

注意点としては・・・
・本当にできるかどうかわからんw
・規模が大きくなるとパフォーマンスでないかもしれん
・ProxyPass つかうと VirtualHost側に想定するログが出ないかも
(全部アクセス元が127.0.0.1とか)
・同様にIPアドレスベースでアクセス制御考えてる場合は破綻するかも
などなど。まぁがんがれ。
0009名無しさん@お腹いっぱい。2008/10/07(火) 23:12:46
補足

>>7
> ログには何も書き出されないです。

ログが出ないことからしても、SuEXECなアクセスとして扱われてな
い可能性が高い気がするなぁ。マニュアルに SuEXEC としてアクセ
スするための条件とか書いてない?
0010名無しさん@お腹いっぱい。2008/10/07(火) 23:24:31
SuexecUserGroup
0011名無しさん@お腹いっぱい。2008/10/07(火) 23:34:45
>>10
> SuexecUserGroup
おお、これかw
http://httpd.apache.org/docs/2.2/suexec.html#usage

>>5
>>8 は忘れていいw
001252008/10/07(火) 23:45:49
うおおおおおおおおお!ありがとうございます!
まーさーにー、これだ!
というか、documentはスミからスミまで読みますスミマセンでした。

もうできなくてできなくて、仮想サーバを立ち上げてやろうかとか考えてました。
001352008/10/08(水) 10:07:14
一応、結果報告

できました!
まぁお約束のdirectory is writable by othersが出て、一瞬なんでよ?と
思いましたが、そりゃOtherが触れたらsuexec意味ねーじゃんと言うことで
755にして解決です。

ありがとうございました。
0014名無しさん@お腹いっぱい。2008/10/08(水) 21:37:29
mod_rewriteの[L]の動作について、質問させてください。

jpgはミラーサーバーへ飛ばして、xjpgはサーバー内のjpgを表示したいのですが、

RewriteRule ^(.+)\.xjpg$ /images/$1.jpg [L]
RewriteRule ^(.+)\.jpg$ http://www.mirror.xxx/images/$1.jpg

とやったら2行目まで処理されました。
[L]て、それ以上書き換えルールを適用しないおまじないじゃないんでしょうか。

xjpgはミラーになかったときに突っ返えされたやつなんで無限リダイレクト・・・
0015名無しさん@お腹いっぱい。2008/10/09(木) 12:36:28
レス付かないようだから素人から。

使わないから曖昧な知識なんだけど、リクエストされたURLパスと物理的な
実ファイルを紐付ける前に、リクエストのパスを書き換えるモジュールだよね?
ってことは、
xjpgでのリクエストはRewriteRule ^(.+)\.xjpg$ /images/$1.jpgに変換して
リクエストを処理。
変換されたリクエストはRewriteRule ^(.+)\.jpg$の条件にマッチするので
ミラーにないからxjpg突っ返されて無限リダイレクト。

1回のリクエストで2行目まで処理されてるんじゃなくて
都合2回分のリクエストが発生したため、2行目まで処理されてるって
ことになってるんじゃないかと素人は思う。
0016142008/10/09(木) 19:36:52
いやあ、そうならないように [L] をつけたわけで、
なのに評価が止まらないので質問しました。



でも自己解決したので報告します。
.htaccessでやってたからダメでした。httpd.confに移したらOK。

.htaccessだと、[L]でとめた後にまたディレクトリを読み込んで評価しちゃうんですね。


0017名無しさん@お腹いっぱい。2008/10/09(木) 23:50:41
http://pc11.2ch.net/test/read.cgi/mysv/1219482693/218
この質問だれか答えてください
0018名無しさん@お腹いっぱい。2008/10/10(金) 18:40:38
logresolve がまともに動かないんだが、
logresolve は、どのDNSを使っているのか?
設定するファイルも無いようなんだが。

そもそも、パソコンが使うDNSとは
一意に決まっているのか?

それはどこに設定されているの?
0019名無しさん@お腹いっぱい。2008/10/10(金) 22:31:58
logresolveは127.0.0.1をリゾルブしないって聞いたんだけど、本当?
0020名無しさん@お腹いっぱい。2008/10/11(土) 00:23:45
Windowsは板違い。
0021名無しさん@お腹いっぱい。2008/10/13(月) 18:30:35
マニュアルを調べたのですが自信がないので教えてください。

Allowoverride で Fileinfoを許可したいが、
CGIやPHP、SSI
を使用させたくない、というポリシーです。

phpに関してモジュールの使用を禁止するのは
モジュール自体をoffにするしか事実上不可、であってるでしょうか?

またCGI,SSIについては
optionsを禁止しておけば、Fileinfoが使えても使用できない、
ということであってるでしょうか?
0022名無しさん@お腹いっぱい。2008/10/13(月) 20:37:44
>>21
この質問における
>CGIやPHP、SSI
CGIとPHPの違いは何?

http://httpd.apache.org/docs/2.2/ja/howto/htaccess.html
http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride
http://httpd.apache.org/docs/2.2/ja/mod/core.html#options
ここらへんかなぁ

おまけw
http://ja.wikipedia.org/wiki/Common_Gateway_Interface
0023名無しさん@お腹いっぱい。2008/10/14(火) 01:44:25
>>22
wとかつけてるが、全然お前理解できてないだろw
Common_Gateway_Interface って覚えたてで使いたいのか?
0024名無しさん@お腹いっぱい。2008/10/14(火) 10:26:56
mod_cgiやmod_includeも殺したら良いかと
0025名無しさん@お腹いっぱい。2008/10/14(火) 22:38:19
0026名無しさん@お腹いっぱい。2008/10/29(水) 03:09:26
Ubuntu8でApache2を使用しています。

現在、Nameベースのバーチャルホスト設定して
異なるドメインのサイトを2つ運用しているのですが、
今度ここにもう一つサイトを追加することになりました。

そこで質問なのですが、Apacheを再起動せずに
バーチャルホストの設定を追加することは可能でしょうか?

目的は運用中のサイトを停止させずに新規サイトを追加することなので、
バーチャルホスト以外のやり方があるならばそれでも構いません。

何か良い方法があればご教示ください。
0027名無しさん@お腹いっぱい。2008/10/29(水) 07:20:00
graceful もだめなの?
0028名無しさん@お腹いっぱい。2008/10/29(水) 10:54:01
別プロセスで上げる、とか。

つーかさ、止めちゃだめなような作りにするなよ。
障害で落ちることもあるんだから。
0029262008/10/29(水) 15:21:35
>>27-28
どうもありがとうございます。
やはりgracefulが最善でしょうか。

さすがに別プロセスであげると管理がややこしくなるので
深夜などを狙ってgracefulで再起動することにします。
ありがとうございました。
0030名無しさん@お腹いっぱい。2008/10/29(水) 19:46:26
そういう用途のための graceful だからな。しっかし、再起動でも問題ないだろ
一瞬でも止められないサイトなら鯖を二重化するなりしとけw
0031名無しさん@お腹いっぱい。2008/11/01(土) 00:36:09
graceful-stop → start
ただのgracefulよりすっきりする
ただし忙しいサーバーだとstartのときに、bind出来ないって怒られることがある(バグ)
0032名無しさん@お腹いっぱい。2008/11/01(土) 00:43:28
mod_rewriteを<Directory>や.htaccessに入れるのは上級者向けなのに
初心者ほどやりたがるから困る
0033名無しさん@お腹いっぱい。2008/11/01(土) 08:42:39
Apacheのことが何でも載ってる、Apacheを極めたい人の究極の一冊となるとどんな本がお勧めですか?
0034名無しさん@お腹いっぱい。2008/11/01(土) 09:14:27
ソース
0035名無しさん@お腹いっぱい。2008/11/01(土) 19:41:47
>>31
ちょとまて、bind出来ないってそれマジか?
OSは?Apacheのバージョンは?
0036名無しさん@お腹いっぱい。2008/11/01(土) 20:48:14
apacheにsslを組み込んでインストールがしたいので、本の通り下記のコマンドを実行しました。
./configure --enable-rewrite=shared --enable-ssl=shared --prefix=/opt/www

するとエラーが出てきました。
configure: error: ... Error, SSL/TLS libraries were missing or unusable

解決策があれば教えてほしいです。
0037352008/11/01(土) 21:12:52
あぁ、ごめん
graceful-stop → start ね
タイミングによってはなるかもだね
graceful で起きるのかと勘違いしたw
0038名無しさん@お腹いっぱい。2008/11/02(日) 00:25:50
>>36
書いてあるとおりでしょ。
0039名無しさん@お腹いっぱい。2008/11/02(日) 08:47:51
>>36
ライブラリが見つけれないのかなと思って、/etc/ld.so.confにsslの
ライブラリがある場所を追記したんですけど、余り関係ないですか?

どなたかヒントをお願いします。
0040名無しさん@お腹いっぱい。2008/11/02(日) 11:02:58
>>36
openssl関連が入ってないんじゃないの?

たとえば・・・
http://oku.edu.mie-u.ac.jp/~okumura/linux/?Apache%202#m73dd07e

OSはなに?
linuxならわざわざソースから入れないでパッケージ使えば楽ジャン。
apt使用できるなら依存関係も含めてインストールしてくれるし( ・∀・)イイ!!
■ このスレッドは過去ログ倉庫に格納されています