Apache統合スレ 12 (HTTPServer以外も含む)
HTTP ServerだけでなくAntやTomcatなどApache全般に関するスレだ!
■公式
Apache Software Foundation http://www.apache.org/
■HTTP Serverの最新Version
Apache/2.4.4
Apache/2.2.24
Apache/2.0.64
■前スレ
Apache統合スレ 11 (HTTPServer以外も含む)
http://engawa.2ch.net/test/read.cgi/mysv/1286137109/ すいません
遠い昔に書いたhostsがローカルに向けてありました....
出来ました。
スレ汚ごめんなさい 解決できたのはいいが、実在する(あるいはその可能性のある)ドメインを例示に使うのはやめれ
example.com(.net, .org)という例示用に予約されたものを使いなさい apacheのアクセスログに出力されるレスポンスタイムについて質問なのですが、
レスポンスタイムにはレスポンスが相手に届くまでの時間も含まれていますでしょうか?
レスポンスタイムを見るときにネットワークのレイテンシが関係あるのか気になって質問しました。 >>214
ググったんですが今一つよく分からず。。 >>216
IT用語辞典のサイトにターンアラウンドタイムは処理要求を送ってから結果の出力が終了するまで、レスポンスタイムは結果の出力が始まるまでと書いてあったので、
レスポンスタイムは結果の最初のパケットが届いたという応答がapacheに返ってくるまでの時間ということでしょうか。 >>217
時系列に事象を書いて、それのどこからどこまでか示してみ? >>218
BからIまででしょうか。217には最初のパケットが届いたという応答がapacheに返ってくるまでと書きましたが、
apacheがパケットに分割する処理まで制御してないと思ったのでIまでかと。
@ クライアントが処理を開始する
A クライアントから要求が届く
B apacheが処理を開始する
C apacheがレスポンスを作成し終わる
D apacheが応答を開始する
E 最初のパケットがクライアントに届く
F 最初のパケットが届いたという応答がクライアントから届く
G 最後のパケットがクライアントに届く
H 最後のパケットが届いたという応答がクライアントから届く
I apacheが処理を終了する >>219
ようやく話が見えてきた。
リクエスト発行側からみた
ターンアラウンドタイムってのは @ 〜 G
レスポンスタイムってのはA 〜 D
になる。
で、話の元にあったApacheのログの話なら
「リクエストを処理するのにかかった時間」だから B 〜 C >>220
なるほど、apacheが処理している時間なのですね。ありがとうございます。 うーん、やっぱりapacheのログの%Dにはクライアントにレスポンスが届くまでの時間も含まれているような気がしますね。
https://twitter.com/fujiwara/status/217269924727492608 @〜DとIがアプリケーション層の話なのに
E〜Hがトランスポート/セッション層っぽい話になってるからおかしくなってる
パケットがクライアントに届くとかそれの応答とかってのはTCP/IPが勝手にやる話
Apacheは send() で送信バッファにデーター渡したら終わり >>223
送信バッファより大きなデータやったらどうなるん? <Directory />と<Directory "/var/www/html">は何が違うんですか?
/var/www/htmlがドキュメントルートなので、これに漏れる設定って無いようなきがするんです <Directory /> は <Directory 〜>ディレクティブの終わりです <Directory "/">はフルパスの指定ですね
/home/usser/なんちゃらとか
ルート以外も設定できるでしょ、それのデフォルト UserDirとかVhostAliasとかその辺で動的にディレクトリを参照されたときに誤爆を防ぐw >>231
おお!おまじないみたいに最初に書いておけばいいな。 apacheではchmodの代わりに、Directory使うってイメージでOKですか
Directoryって物理パスと1対1になってるんでしょ?
だから、DocumentRootよりも上のディレクトリにも設定できる nphスクリプトをnph-始まりじゃない任意ファイル名で実現したかったらどうすれば出来ますか?
リバースプロキシ以外で何か方法があれば… ちょっと見てみたけど
Apacheのソース
modules/generators/mod_cgi.c
に埋め込んであるから、これいじるしか無いんじゃ? ApacheのSSIの質問はここでいいのかな
<!--#include virtual="foo/bar.html" -->のディレクティブを記入したんだけど
どうもan error occurred while processing this directiveがでちゃうみたいで・・・
ttp://www.tohoho-web.com/lng/199911/99110261.htm
ここと症状的には一緒なんだけど、解決策といった解決策がヒットしなくてこまってます
助け舟をお願いしたいです すみません。自己解決しました。
.htaccessで全アクセス拒否にしてました。。。
でもこれを消したら、インクルードファイルが直にアクセスされて困るような気もします foo/bar.html?fooで読んで、?fooが無いと中身が出ないようにするとかw 直にアクセスされて困るのにincludeだと問題ないなら
virtualじゃなくてfileにしたら fileだと上のディレクトリを読めないとかいう事情があるらしく
そういうのは面倒臭いのであくまでもvirtualでやりました
とりあえずこの問題も解決出来ました
ドキュメントルートにRewriteRuleとかを書いた.htaccessを置くと直アクだけ弾けるようです サーバー構成とか容量諸々の都合により、 Webサーバーとファイルサーバーを分けたのだけど、
ローカルにコンテンツがあった頃に比べて反応が鈍くなった気がする。
そこで mod_cache / mod_mem_cache / mod_disk_cache を使って頻繁にアクセスされる
静的ファイルをキャッシュさせてみようとした・・・のだけど、
このモジュールが Apache のかなり入り口の方で呼ばれるらしく、Deny Allow ディレクティブなどが
効かないし環境変数などを使った制御も効かない(とドキュメントに書いてある)。
これを解決するにはアクセス制御用の前段apache, コンテンツサーバー用の後段apacheの2段に
するしかない?
まぁ どっちか nginx でもいいんだけど。
ファイルを直接アクセスせずにKVSで擬似キャッシュみたいなのは余計重くなりそうだし。 domain.comとwww.domain.comの両方でwebサイトを見れるようにしています。
サブドメインなしの https://domain.com/〜 でアクセスしてきた場合に
「www」付きの https://www.domain.com/〜 にリダイレクトされるように
設定したいと思ってます。
サブドメインなしでアクセスできるwebコンテンツすべて(https://domain.com/~userも含む)に
反映されるように、
/etc/apache2/mods-available/ssl.confや
/etc/apache2/sites-available/default-ssl.confに
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(domain\.com)(:443)?
RewriteRule (.*) https://www.domain.com$1 [R=301]
</IfModule>
を追記して、Apacheを再起動したりしてますが、全く反映されません。
どのようにすれば反映されるのでしょうか?
なお、httpsではなく通常のhttpでの http://domain.com/〜 → http://www.domain.com/〜
については/etc/apache2/sites-available/000-default.confや
/etc/apache2/mods-available/userdir.confに上記を追加することで反映されています。
使用環境
Apacheバージョン:2.4.7
OS:Ubuntu 14.04.1 LTS
カーネル:Linux 2.6.32-042stab093.5 #1 SMP rewriteで思った動作とならないときは、ログ取るのが定番。
わかりやすいとはいえないログだけど、なんとなくどう処理してるのか分かると思う。 >>247
回答ありがとうございます。rewriteのログ取れるの初めて知りました。
結局、rewriteを使わずRedirectを使って解決しました。 へー
ttp://gigazine.net/news/20150219-http-2-major-update/ Apache2.6/3.0 は組み込み済みになる予定だって。
それ以前のはmodで対応かな 出先からスマホで会員限定サイトを見たいのですが、IP制限がかかっています。
【例】
アクセスするアドレス: http://(自宅のIP)/s01/hogehoge/1.avi
実際に見たいアドレス: http://s01.example.com/hogehoge/1.avi
そこで
ProxyPass /s01 http://s01.example.com
ProxyPassReserve /s01 http://s01.example.com
(実際にはs01〜s12まであります)
としたのですがうまくいきませんでした。
診断くんを同じ方法で見てみると「HTTP_X_FORWARDED_FOR」にスマホのIPが表示されていました。
どうすればこれらのヘッダーを消すことができるのでしょうか? mod_headersでヘッダーの書き換え、削除ができたと思うが apache2.confに
Header unset HTTP_X_FORWARDED_FOR
と記述したんですがダメでした。
もちろん、a2enmodでheaderを有効にしています。 > うまくいきませんでした。
具体的な症状くらい書けって話 生徒「わかりません」
先生「ふざけんな!俺の説明のどこがわからんというんだ!」
生徒「どこが分からないのかすらわかりません」
公立中学はこんな感じ。
中学受験できるかどうかの資金力の差で
学力に差がつき、さらに貧富の差が広がる。 期待:http://i.imgur.com/l0aDIRO.png
結果:http://i.imgur.com/NHoBNjB.png
こういう感じになっているのを直したいのですが、仰るとおりデバッグの仕方すらわかっておらず、
何がどうしてこうなっているのかすらわかっていないのが現状です。
公式のドキュメントを読んでも何が間違っているのかわからなかったレベルなので、
一から調べなおして自力で解決できるように頑張ります。
お騒がせして申し訳ないです。 どうせHostヘッダでも刺さりそうだからリバースプロキシでやらなければいいのにw ソース見るとわかるが食い込んでる
書き換えちゃえば Apache2の設定でAliasを使って
ローカルディスク上のパスとURLのマッピングをしています。
Alias /cake/ /path/to/cakephp/
で、cakephp2が.htaccessでmod_rewriteを使ってパスをかきえています。
RewiteRule (.*) app/webroot/$1 [L]
これだと、Apacheが /path/to/cakephp/app/webroot/を見に行ってNotFoundになってしまいます。
cakephpの.htaccessファイルは複数あるので手を加えたくありません。
httpd.conf等の修正で解決する方法がありましたら教えてください。 >>265
mod_rewrite で書き換えられた後のパスに実ファイルを持って行くのではダメですか? >>267
/path/to/cake/.htaccessに
RewriteBase /cake/
と追加したら、とりあえず
http://hogwhoge/cake/
のURLで見れるようになりましたが、
http://hogwhoge/cake/sample/
などのURLだと、あいかわらず
/path/to/cake/app/webroot/sample/
を見に行って404になってしまいます。
前述のようにcakephpの複数の.htaccess全てを修正することはあまりしたくないのですが、
良い解決方法はないでしょうか? cakephpのサイトを見たら、.htaccessにRewiteBaseを追加するのが正攻法のようですね。
Apacheというよりcakephpの話になってしまってすみません 自宅鯖を建てるため、StartSSLで認証書を取得して、SSLを有効にしてApacheを起動しようとしています。
OS:Windows8.1 Pro 64bit
パッケージ:xampp 5.6.3
秘密鍵と証明書をいただいたので、httpd-ssl.confに
--
ServerName hoge.hogehoge.link:443
ServerAdmin hostmaster@hogehoge.link
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"
SSLCertificateFile "C:/xampp/apache/conf/ssl/certs/hoge.hogehoge.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl/private/nopass_key.key"
--
と記述してApacheを起動しようとしたところ起動しませんでした。
nopass_key.keyはStartSSLのToolBoxからDecrypt Private Keyを選択して、秘密鍵のパスワードを外したものです。
eroorlogを見てみると、
key do not match
と出ていました。keyが合ってないとのことのようです。
何で合ってないんだろう?と思いつつ、再びStartSSLのToolBoxでKey Bug Checkerを選択して、
パスワードを外した秘密鍵とサーバー認証書のチェックをしたところ、両方とも
Key Check Success
と出て、キーには問題がないようです。
なぜkeyが合ってないぞごるぁ、とエラーが出るのでしょうか?
どなたか分かる方がいらっしゃったら教えていただけないでしょうか? 自分は正しい、間違っていない、キーには問題ない、という主張に終始していて
肝心の Apache のエラーメッセージの部分を端折っているあなたのその姿勢。 それは失礼しました。
今の状態でApacheを起動すると、次のようなメッセージがerror_logに出力されます。
--
[Fri Apr 17 05:43:36.017982 2015] [ssl:emerg] [pid 7644:tid 408] AH02565: Certificate and private key hoge.hogehoge.link:443:0 from
C:/xampp/apache/conf/ssl/certs/hoge.hogehoge.link.crt and C:/xampp/apache/conf/ssl/private/nopass_key.key do not match
AH00016: Configuration Failed
-- まずはパスフレーズ外してないやつで起動してみては? ☆ 日本の核ブ装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆ >>265
昨日悩んでいた事と類似の部分で悩んでいる人がいるもんだなあwww
Aliasっていくつも幾つも書いちゃって良いもんだろうか?
下手するとある階層からのディレクトリ全部読めません><になりかねんなあ Apache2.2.9(Fedora) で、アクセス規制(deny)を設定した場合
ファイルや下層ディレクトリーでは設定通りの403画面が出るのですが
ルートだけTestPageが表示されて困ってます
どう設定をしたらよいでしょうか…
DirectoryIndex index.php
ttp://example.com/ → TestPage
ttp://example.com/index.php → 403Forbidden
ttp://example.com/file.txt → 403Forbidden
ttp://example.com/test/ → 403Forbidden 川崎市の中学1年、上村遼太さんを殺害したとして少年3人の容疑者が逮捕されてから1週間がたち、
リーダー格とみられる18歳少年の素顔が明らかになってきた。友人の一人にあの有名な嶋崎亮介(東京電機大学中万引) さんと
妹の元 稲城市立向陽台小学校評判Y子=実名は結子とTDUに聞いた。JSふぇらで稼ぐSNS 新聞購読を止めて、月3000〜4000円、年間36000〜48000円の節約
新聞にそのような金を払う価値はない
ただでさえ要らない
なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ
それに金を払って購読することは自らの首を絞める自殺行為に等しい >>279
denyをどこにどんなふうに書いたのさ >>282
order allow,deny
allow from all
deny from example.com
繰り返しになるけど、ルート以外は期待通り どこに、がないけど、同じディレクトリにAllowの設定もあったりしない? そもそも、deny from の指定とそのサイトは同じなの? どこにが無いとは何だろう?files指定のこととか?
特定ファイルじゃなくてサイト全体の規制だからね。他のレンタルサーバーでは
ルートでも期待通りなんだけど、Fedoraだけの問題なんだろうか
285は意味がわかりません <Locate />とか <Directory />とかあるべ
同じ場所を複数書いてたら書く順番によって結果違うよ
で、サイトもdeny from も同じexample.com なんだけど、同じということを表したいのかって話 失礼、レンタルサーバーのいちユーザーなので.htaccessだけの話になります(なのでLocateもDirectoryもありません)
そして一番上に唯一置いてる .htaccess でサイト全体の規制をしています
example.comは実在しないドメイン、あくまで例示用としてですね
http://mysite/ とか
deny fromはfooでもbarでもいいです 試してみた。
もしかしてCentOSかな?
/etc/httpd/conf.d/welcome.conf
これの内容消してみて ってFedoraって書いてあったか。
元は同じだし似たような設定があると思われる
共用でいじれないなら、mod_rewriteとかで何とかするしかないのかなあ >>289
なんとなく、なるほどです…ありがとうございます
ルート( ttp://mysite/ )だけ、より上位の権限でErrorDocumentが既に設定されてる(強制されてる)イメージですね あ、あとちなみに例えの話だけど
example.com使うなら使うで別サイトを表すなら
a.example.com と b.example.com みたいに違うことを明確にしてって話ね、もう遅いか。 2,2.30/31 の mod_ssl 新機能入れすぎ
legacy branch なんだからバグフィックスとセキュリティフィックスだけにしてくれよ
2.4 からメンテナが個人的に欲しい機能バックポートしてたらキリが無いわー apacheにて、
最後のディレクトリ名が/pcsite/の時にスマホでアクセスした場合、/spsite/にジャンプする設定をしたいのです。ただし、spsiteに対になるファイルがある場合のみ動作したいのですが、どのようにやったらよいのでしょうか?
例)
http://example.com/hogehoge/pcsite/index.html
↓ ○spsite配下に対になるファイルがあるのでリダイレクトする
http://example.com/hogehoge/spsite/index.html
http://example.com/fuga/pcsite/xxx.html
↓ ×spsite配下に対になるファイルがないのでリダイレクトしない
http://example.com/fuga/spsite/ 以下にxxx.htmlが無い。
今のところ下記のようにしてるのですが、「対になるファイルがない場合はリダイレクトしない」と言う条件を、どのように書いたら良いのか分かりません。
RewriteCond %{REQUEST_URI} !^/spsite/.*$
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^(.*)/pcsite/(|.*\.html)$ $1/spsite/$2 [R=301,L]
環境は、Apache2.2.3 CentOS5 です。 つうかそれapache側でやるの?
言語レベルでやれば?
ていうかスマホとPCでURLかえんなよ -d とか -f 使って mod_reqriteでできそうな .
.
.
Σ(Д・;)"プチエンジェル事件"!(小学生売春事件)
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
プチエンジェル事件に隠された日本の闇を暴露する!
■実は、『女性皇族』の『男遊び』と、
女性皇族がおこなったハニートラップだった!!
■その『男遊び』と『トラップ』を誤魔化す為の、
『プチエンジェル事件』が真相だったのだ!!
■闇に包まれた真相を、私が『暴露』する!!
※知る覚悟はできていますか?
下記を『Google』か『Yahoo』で検索して下さい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
検索⇒『佳子様 真子さま kare氏』
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※上記で検索しますと、1ページ目の5番目以内に、
【懇約〕秋篠宮家の佳子様と・・・・・・・
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑が表示されます。
※世の中、知らない方が良い事もあるんです・・・。
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
.
.
. apache2の名前ベースのVirtualHostを使いたいのですが、ServerNameはDNSで紐付けが必要なんですか? 必須ではないよ、アクセスする側が認識してればhotsだっていい hots、、、hostsね
要はその名前でアドレスが引ければ手段はなんでもいい
もしくはhttp自分で書いてるなら、ヘッダで指定してもいいし /etc/hosts にIPアドレスとServerName書けばOKですか?
クライアント側はそれでアドレス引けるということでしょうか
http自分で書いててヘッダ指定...はちょっとわからないです
PHPのheader()とかですか? そう、unix系なら/etc/hostsだね
PHPはサーバ側じゃない
ブラウザがURLをヘッダに入れる(HTTP1.1)とVirtualServer効くからさ
自前のブラウザとかなら可能ということね あ、へぇ〜自作ブラウザの話しですか
ブラウザは作ったことないですね
それだとunix系コマンドのwgetとかcurlでもヘッダを弄れればいけるっぽいですかね