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

Apache関連 Part11

レス数が950を超えています。1000を超えると書き込みができなくなります。
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/
0897名無しさん@お腹いっぱい。2012/07/19(木) 01:07:58.62
>>896
外部に公開するWebサイトならポートは変えないほうがいいです
変えるなら>>895さんが言うとおりkvmの方のポートですね
0898名無しさん@お腹いっぱい。2012/07/19(木) 01:52:13.78
困るといっても、困るのはどこかのキャリアの携帯電話くらいだろw
0899名無しさん@お腹いっぱい。2012/07/19(木) 03:04:31.46
だからー、kvmがワイルドカードでバインドしてるんだろ、
apacheはアドレス指定でバインドすればいい。
両方とも443で待てる。
0900名無しさん@お腹いっぱい。2012/07/29(日) 18:23:10.89
http://localhost/~username/
のチルダ抜きでのアクセスで
ln -s /home/username/public_html /var/www/username
で対処するのってまずいですか?
AliasMatch使ったほうがいいですか?
0901名無しさん@お腹いっぱい。2012/07/29(日) 19:07:41.98
まずいって、どういう事態を心配してるの?
0902名無しさん@お腹いっぱい。2012/07/29(日) 21:05:37.99
セキュリティ的にやばいとか
そんな感じのことってありますか?
0903名無しさん@お腹いっぱい。2012/07/29(日) 21:21:36.05
setuidがちゃんとされていればね
0904名無しさん@お腹いっぱい。2012/07/29(日) 21:26:18.47
わかりました
setuidにさえ気を付ければこのやり方固有の問題は無いってことですね
ありがとうございます
0905名無しさん@お腹いっぱい。2012/07/30(月) 01:15:17.02
ディレクトリのパーミッションとか
0906名無しさん@お腹いっぱい。2012/07/30(月) 02:49:11.92
それにも気を付けます
ありがとうございました
0907名無しさん@お腹いっぱい。2012/08/01(水) 12:42:37.17
httpdへの接続本数を監視したいのですが、
サーバー上からコマンドラインで取得するには、どうすればいいでしょうか?

apachectlを使ってみたところ、
 >apachectl status | grep -i "requests currently being processed"
  1 requests currently being processed, 7 idle workers
となって、httpで接続しても1 requestsのまま変わりません。

httpでアクセスすると接続本数が0→1になって、ページを閉じて、
KeepAliveTimeOutに設定した時間を過ぎると、1→0となってほしいのですが。
0908名無しさん@お腹いっぱい。2012/08/01(水) 14:05:16.84
netstatじゃだめ?
0909名無しさん@お腹いっぱい。2012/08/01(水) 14:38:29.00
apachectl status って、httpd に HTTP で接続して
情報を取得してるってことは理解してる?
その接続のぶんもカウントされるからゼロになることはないよ。
09109072012/08/01(水) 16:01:32.35
>>908
netstatでもできました。
$ netstat -an -p tcp | awk '{ if($4=="192.168.1.1.80" && $6=="ESTABLISHED") print($0)}' | wc -l

>>909
あ、なるほど。解説ありがとうございました。
KeepAliveTimeOutに設定した時間を過ぎると、2→1となることが確認できました。
0911名無しさん@お腹いっぱい。2012/08/01(水) 22:22:45.30
あるURLがリクエストされた場合に任意のHTTPステータスを返却したく、
module_rewriteを使って、
rewriteruleで[R=ステータスコード]とする方法を試しました。

3xx系はいけたんですが、4xx/5xx系のステータスコードを設定すると、
なぜかapacheが用意済み?の英語メッセージになります。
こういったやり方は駄目なんですか?

RewriteRule 元URL 遷移先URL [L,R=503]
※同一ステータスで異なる遷移先が必要なので、
 ErrorDocumentを使う方法はNGかなと考えてます。
0912名無しさん@お腹いっぱい。2012/08/02(木) 01:01:20.55
3xx以外はRedirectじゃないので、遷移するのはおかしい。
0913名無しさん@お腹いっぱい。2012/08/02(木) 02:26:19.12
その為のErrorDocumentなんだけどな
0914名無しさん@お腹いっぱい。2012/08/16(木) 17:27:11.84
mod_proxyでリバプロ作ろうとしててて、

ProxyPass /hoge/ http://a.b.c.d/hoge/

↑これはうまく動いてます
どうせならベーシック認証も同時に通すかと

ProxyPass /hoge/ http://id:pass@a.b.c.d/hoge/

↑こうすると、リバプロとしては動きますがis:passのベーシック認証が通りません
リバースプロクシーにベーシック認証のid:passを書いて使う方法はないですか?

なんでここにid:passを書きたいかというと、リバプロで複数台ぐらいのWebサーバーを集約すると、
集約元の各サーバーのベーシック認証のid:passをブラウザが覚えてくれないからです
0915名無しさん@お腹いっぱい。2012/08/16(木) 17:52:37.32
Authname を変えたらいーんでね?
0916名無しさん@お腹いっぱい。2012/08/16(木) 18:14:24.15
Authname全部一緒なんですよ
パスワードは全部違うんですけど
0917名無しさん@お腹いっぱい。2012/08/16(木) 19:53:55.69
Authnameが違うと同じホスト名でも別のアカウント、パスワードを覚えてくれる
ブラウザもあるかもね
0918名無しさん@お腹いっぱい。2012/08/16(木) 20:11:53.62
かもね、じゃなくてそれが正しい実装なのでは。

AuthName で指定するのはダイアログに表示するメッセージではなく認証領域なので、
同じホストでも認証領域が違えば同じユーザ/パスワードは使えないという
前提で実装するのが正しい。そうでないならある認証領域に別の認証領域の
ユーザ情報を漏曳するというセキュリティホールになる。
0919名無しさん@お腹いっぱい。2012/08/16(木) 20:27:28.32
AuthName "ユーザー名とパスワードを入力してください"

どんなAuthNameだよww
0920名無しさん@お腹いっぱい。2012/08/16(木) 22:19:42.04
chromeもFirefoxもホスト単位でしかアカウント覚えないから、/A/、/B/、、、/Z/で別の認証領域つくっても
同じアカウントあると認証通るよ
0921名無しさん@お腹いっぱい。2012/08/16(木) 22:47:40.34
じゃ、すれち
0922名無しさん@お腹いっぱい。2012/08/16(木) 22:56:54.92
バカっぽい略語やめろよ。 >リバプロ
0923名無しさん@お腹いっぱい。2012/08/16(木) 23:04:10.28
こういう略語って職場とかで使ってるんだろうか。
それとも自分で勝手に考えてるんだろうか。
0924名無しさん@お腹いっぱい。2012/08/16(木) 23:04:58.18
何の略称か分からなかった
0925名無しさん@お腹いっぱい。2012/08/17(金) 10:17:32.94
Apacheはソースからインストールしてますか?
0926名無しさん@お腹いっぱい。2012/08/17(金) 12:49:54.82
場合による。
0927名無しさん@お腹いっぱい。2012/08/17(金) 20:24:57.05
ホリプロ
0928名無しさん@お腹いっぱい。2012/08/29(水) 01:50:26.67
mod_perl を有効にしたディレクトリで、DirectoryIndex が動作しない。
たとえば、index.cgiが 404 になる。
mod_perl が無効なディレクトリでは index が動作する。
なんででしょう?

ぐぐると、mod_rewrite との関係の話があったけど、mod_rewriteを無効にしても
結果は変わらんかった。

mod_perlの設定は以下のような。

<IfModule mod_perl.c>
Alias /cgi/ "/home/user/public_html/cgi/"
<Location "/cgi">
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
Allow from all
PerlSendHeader On
</Location>
</IfModule>
0929名無しさん@お腹いっぱい。2012/08/29(水) 07:20:11.63
こだし、あとだし乙
0930名無しさん@お腹いっぱい。2012/09/01(土) 01:15:29.87
>>928
http://marc.info/?l=apache-modperl&m=112805393100758&w=2
パッチが出てる
0931名無しさん@お腹いっぱい。2012/09/05(水) 00:49:55.15
KeepAliveの動作についてご存じの方、教えてください
KeepAlive中に400以降のステータスコードが出た場合、張っていたセッションは明示的に切られますか?それとも200同様にセッションは継続できますか?
検索したのですがtomcatとかなんかはヒットしたのですが、apacheの動作は見つけられませんでした
0932名無しさん@お腹いっぱい。2012/09/05(水) 00:55:26.80
telnet でつないで試してみればいいじゃん。
0933名無しさん@お腹いっぱい。2012/09/05(水) 05:29:56.13
>>931
異常系なのでソースでも読めば
0934名無しさん@お腹いっぱい。2012/10/23(火) 03:27:08.20
>>922
うちにもいるわw こういう略語使う馬鹿
ダブルクリックのことをダブクリとか

は?って聞き返してしまった
0935名無しさん@お腹いっぱい。2012/10/29(月) 14:13:20.27
TRACEコマンド投げたときに冒頭に出力される 4f とかの
16進のコードは何を意味してるの?
0936名無しさん@お腹いっぱい。2012/10/29(月) 14:59:31.45
>>935
HTTP/1.1のchunked encoding?
0937名無しさん@お腹いっぱい。2012/11/03(土) 13:10:53.50
文字列の長さだったわ
0938名無しさん@お腹いっぱい。2012/12/27(木) 15:02:41.96
環境は Ubuntu Server 12.04.1 LTS amd64 です。

apache2 で WebDAV を使いたくて、apache2 のインストール時?に、
一緒にインストールされるサンプル
/usr/share/doc/apache2/examples/apache2/extra/httpd-dav.conf
を参考にしているのですが、このサンプルの中身の記述のせいで戸惑っています。

このサンプルには、次のようなコメントがあります。

# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
# mod_auth_digest, mod_authn_file

しかしこれらのモジュール名は、apache の、
たぶんもっと古いバージョンの時代に用いられていたもののはずで、
現在の apache2.2 ではすでに廃止されているものかと思います。

現在の apache2.2 で WebDAV を使うのに必要なモジュールというのは、
正確には何でしょう?以下の4つで良いのでしょうか?

/etc/apache2/mods-available/dav_fs.conf
/etc/apache2/mods-available/dav_fs.load
/etc/apache2/mods-available/dav.load
/etc/apache2/mods-available/dav_lock.load
0939名無しさん@お腹いっぱい。2012/12/27(木) 15:05:17.94
>>938
その辺はディストリ依存の話だからLinux板へ。
0940名無しさん@お腹いっぱい。2012/12/27(木) 15:28:19.62
>>939 そうでしたか。了解。失礼いたしました。
0941名無しさん@お腹いっぱい。2013/01/17(木) 10:08:49.97
Ubuntu スレから移動してきました。

環境は Ubuntu Server 12.0.4.1 LTS amd64 です。
apache2.2 で rep2 鯖にしようと思ってます。
この書き込み自体がその環境からのもので、つまり既に動いてます。

ただ apache の使用ポートをデフォルトの 80 から任意のもの(例えば81)に変更したくて、
/etc/apache2/ports.conf をそのように書き換え、 # service apache2 restart したんですが、
NameVirtualHost *:81 has no VirtualHosts と言われてサービスを正しく起動出来ません。

apache2 自体が起動しなくなります。

任意のポートで正しく apache2 を起動させるには、何処をいじる必要がありますか?
ディストリビューション固有の問題は自分で調べるとして、
apache2.2で特定ポートを使用する場合にせねばならない一般的なことに関して、
どなたかアドバイスをいただけないでしょうか。

よろしくお願いいたします。
0942名無しさん@お腹いっぱい。2013/01/17(木) 12:10:06.88
日本語マニュアルが提供されてるのにそれを読みたくないなら業者に頼みなよ。
0943名無しさん@お腹いっぱい。2013/01/17(木) 12:31:59.25
>>941
VirtualHostsは使ってる?
使ってないのならListenだけ81にしてVirtualHostは80のままだと起動する 今12.10で確認した
0944名無しさん@お腹いっぱい。2013/01/17(木) 12:59:10.99
>>943 なるほど。と思ってそうしてみたら確かに起動はしました。

しかし htttp://ubuntu.local.ip.address:81/ にアクセスしても「そんなん無い」って言われて、
元の /var/www/index.html を読みに行けませんでした。

おかしいと思って /etc/apache2/sites-available/default を見たら、
そこに VirtualHost の定義があったので、/etc/apache2/ports.conf の設定共々、
VirtualHost *:81 にしてやったら普通に起動し、
かつ、/var/www/index.html も読みに行ってくれました。

というわけで今回のこの投稿は htttp://ubuntu.local.ip.address:81/rep2/ からとなります。
ありがとうございました。
0945名無しさん@お腹いっぱい。2013/01/19(土) 09:10:33.75
>>941
ポート番号は任意のものが使えるわけではない
0946名無しさん@お腹いっぱい。2013/01/19(土) 14:47:15.02
でも >>944 の通り、任意のものが使えているのですが。。。
0947名無しさん@お腹いっぱい。2013/01/19(土) 16:44:33.03
何が任意なのか本当にわかってるのかコイツは・・・

Listenしてるポートを変更してVirtualHost側の定義も合わせたからだろ
httpdはListenで指定されたポートを開き
VirtualHostが指定されている場合はその中から選択できるってだけの話

こんな事くらいドキュメント読めや

ttp://httpd.apache.org/docs/2.2/bind.html#virtualhost
ttp://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen

あとUbuntu固有の設定ファイルの話されても知ったこっちゃねーぞ
ビルド者のオナニー設定について質問したいならUbuntuのスレでやれ
0948名無しさん@お腹いっぱい。2013/01/19(土) 19:08:14.31
てことはDebianでApache使ってる奴も質問禁止か
ごめんねオレオレツールで本家に迷惑かけてるディストリビューション使ってて
0949名無しさん@お腹いっぱい。2013/01/19(土) 21:29:47.52
自前でビルドすりゃ問題ないな
0950名無しさん@お腹いっぱい。2013/01/19(土) 21:30:47.98
みなさんに質問です。
Apacheを次のどちらにインストールしていますか?
  1。物理マシン
  2。仮想マシン(VMWare Player、VirtualBoxなど)
0951名無しさん@お腹いっぱい。2013/01/19(土) 21:57:51.30
全角数字+句点で聞く奴には教えてやらない。
0952名無しさん@お腹いっぱい。2013/01/19(土) 22:03:28.14
みなさんに質問です。
Apacheを次のどちらにインストールしていますか?
  1. 物理マシン
  2. 仮想マシン(VMWare Player、VirtualBoxなど)
0953名無しさん@お腹いっぱい。2013/01/19(土) 22:23:54.20
1
0954名無しさん@お腹いっぱい。2013/01/19(土) 23:55:43.32
両方
0955名無しさん@お腹いっぱい。2013/01/20(日) 09:38:33.03
仕事で200台以上面倒見ているけど両方。
VM環境が増えてきたから、普段は意識していないけど
0956名無しさん@お腹いっぱい。2013/01/22(火) 23:43:49.90
PerlのCGIが複数動いているんですが、平均でどれが一番負荷がかかってるか
調べる方法ってどんなんがありますかね・・・?
CPUを専有してるやつを別鯖に分離したいんですが。
0957名無しさん@お腹いっぱい。2013/01/23(水) 00:25:48.32
プロセス一覧で
0958名無しさん@お腹いっぱい。2013/01/23(水) 08:52:16.69
psだとその時点でのしか見えないんでは?
0959名無しさん@お腹いっぱい。2013/01/23(水) 10:25:36.37
topで
0960名無しさん@お腹いっぱい。2013/01/23(水) 16:07:08.59
perlを
#!/bin/sh
time perl.bin "$@"

というwrapperに入れ替える。
CGI以外からの実行に対して何等かの小細工が必要だけど。
0961名無しさん@お腹いっぱい。2013/01/23(水) 16:25:59.88
別な場所に分離できる権限があるならtimesを仕込むこともできそうだが。
0962名無しさん@お腹いっぱい。2013/01/25(金) 22:43:45.53
>>946
0-9000まで調べた?
0963名無しさん@お腹いっぱい。2013/02/11(月) 15:06:08.56
.htaccess に指定する mod_rewrite について
いまいち意味が分からないので質問させて下さい。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L] ← これはどういう意味ですか?
</IfModule>
0964名無しさん@お腹いっぱい。2013/02/11(月) 18:43:06.86
>>963
[ ] 内の話なら↓。
http://httpd.apache.org/docs/2.2/rewrite/flags.html
0965名無しさん@お腹いっぱい。2013/02/25(月) 13:48:33.44
エラーログに
[client ::] client denied by server configuration:
と出力されるのですが、何が原因でしょうか?
Directoryタグ内でアクセス制限をかけていますが、同じページでも表示されたりされなかったりばらばらです
0966名無しさん@お腹いっぱい。2013/02/26(火) 14:51:44.23
何が原因でしょうって、ここに書いてあるじゃん。
> client denied by server configuration:
あんたが拒絶するように設定したからだよ。
0967名無しさん@お腹いっぱい。2013/02/26(火) 16:40:41.25
でもIPv6の::がクライアントになっているのが謎過ぎるよねw
09689652013/02/27(水) 09:28:24.33
たしかに、
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
と設定しているのですが、許可されたセグメントからアクセスしているにもかかわらず、上のログが出力されているので、質問しました
Allow from 192.168.1.0/24 ::
とすることで、一応はエラーが出なくなったようですが、やはり気持ち悪いです
0969名無しさん@お腹いっぱい。2013/03/09(土) 20:55:56.90
apachee2.2系から挙動がおかしくなってる気がする
0970名無しさん@お腹いっぱい。2013/03/13(水) 03:26:42.91
Centos6.2+apache2.2環境でロードアベレージは低いのに、apacheの子プロセス数が
どんどん減っていき、しまいには一桁になってしまいサイト表示が出来なくなるとい
う症状が出ています。

この状態に陥ったときは、apacheをrestartしても直ぐに症状が再発しまい、サーバー
をリブートしないと改善しないので困り果てています。
また、apacheのエラーログやmessagesにはこの件に関係するログは何も出力されて
いません。

どなたか同じような症状を経験されて、対応出来た方アドバイスを頂けないでしょ
うか。
09719702013/03/13(水) 03:28:19.73
■状況
サイトが表示出来ていない事を確認し、/etc/init.d/httpd restartをするも
Address already in use: make_sock: could not bind to addressと出る

killall httpdとし、その後/etc/init.d/httpd startをすると正常にapacheが起動
するも、apache start後、直ぐにapacheのプロセス数が1001まで一気に上昇しその後
一気にプロセス数が下がっていく。秒間およそ200プロセス位が減っていたと思います。

apache start後のプロセス数上昇中はサイト表示が出来ているが、一気にプロセス数
が減少しはじめた段階でサイト表示は出来ていない。

普段は同様の時間帯でapacheのプロセス数は400程度。

apacheはprefork
MaxClientやServerLimitなどは以下のとおりです。

StartServers 8
MinSpareServers 5
MaxSpareServers 50
ServerLimit 1500
MaxClients 1500
MaxRequestsPerChild 2000

尚、KeepAliveはoffです。

どなたかアドバイス頂けないでしょうか。宜しくお願いします。
0972名無しさん@お腹いっぱい。2013/03/13(水) 10:44:38.69
Linux板で聞いた方がいいんじゃね。
09739702013/03/13(水) 10:47:32.26
>> 972

たしかにw
書き込んでから気づきました、そうしますw
0974名無しさん@お腹いっぱい。2013/03/14(木) 16:12:24.89
ブラウザがwebpに対応しているかはどうやったら分かりますか?
0975名無しさん@お腹いっぱい。2013/05/06(月) 22:24:55.20
ServerNameディレクティブはVirtualHost使わないと、
ほとんど使わないって認識であってますか
0976名無しさん@お腹いっぱい。2013/05/24(金) 06:44:27.23
多分そう
俺はいつもlocalhostって書いちゃう
0977名無しさん@お腹いっぱい。2013/05/24(金) 08:52:48.33
サーバーネームを鯖読む
0978名無しさん@お腹いっぱい。2013/05/24(金) 09:14:13.62
>>975
/hoge がディレクトリだったときに /hoge/ にリダイレクトするのに
UseCanonicalName の設定によっては ServerName の値が使われることがある。
0979名無しさん@お腹いっぱい。2013/05/25(土) 00:55:47.73
cgiとかで環境変数経由でホスト名を取得する時とか便利よ
テストと公開版の切り替えとかね
0980名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
jenkinsをインストールしてドメイン:8080でアクセスできるようにはなったのですが
ttp://zuqqhi2.com/?p=182 こちらのサイトを参考にドメイン/jenkinsでアクセスするようにしようとしたら
既に<VirtualHost *:80>内にvar/www/htmlの設定が記述されていました
ホームページも作って置いてあるのでアクセスできるようにしつつ、jenkinsにもアクセスできるようにするには
<VirtualHost *:80>の項目を2つ作成すればいいということですか?それとも<VirtualHost *:80>タグ内の
既存の項目の下に追記すればよいのでしょうか
0981名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>980
何言ってんのかよくわからんけどこの辺の話?
http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias
http://httpd.apache.org/docs/2.4/vhosts/
0982名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
      ,-――――――-.
      /           |
     /           |
     /             |
    l"ジェンキン寿司   l
   ,、_lー-―――――‐--、/l
   i ト、ミミ ,r‐- 、``'ニ=‐、.彡リ.
   ヾ,iハ゛.´ _,,、_  i.; _,. ` 彡'i)
    `、j,'  `゚''´:.ノ i::<・ゝ) .ハン       へいらっしゃい!!
     i,   ` ,、/ i_ `` ,r'
   ,r〃'i  ,r'ヽ、 _,〉  /.
   /i:ト、;;i,  ミ=_‐_-, 'i /ヽ__
r-‐'´i::::ハ;;ヾ、‐‐-、  ノ´/i:::'i`i‐- 、_
::i' .l:i 'i::::i ヾ;;`‐---‐'i':/ i、 'i::! i::::i `
:i' i:| !:::l _,r.、;;;;;,r''´ヽi. ll::i i::i l:::'i
レス数が950を超えています。1000を超えると書き込みができなくなります。