-
最近の投稿
最近のコメント
- mscorsvw.exe がCPUを100%占拠する に takasan より
- USBデバイスサーバ BUFFALO LDV-2UH に つばめのしっぽ より
- USBデバイスサーバ BUFFALO LDV-2UH に wp_rutake より
- USBデバイスサーバ BUFFALO LDV-2UH に つばめのしっぽ より
- CPU100%で張り付きがちなmscorsvw.exe とは何か調べてみた に wp_rutake より
アーカイブ
- 2012年5月
- 2012年4月
- 2012年3月
- 2012年2月
- 2012年1月
- 2011年12月
- 2011年11月
- 2011年10月
- 2011年9月
- 2011年8月
- 2011年7月
- 2011年6月
- 2011年5月
- 2011年4月
- 2011年3月
- 2011年2月
- 2011年1月
- 2010年12月
- 2010年9月
- 2010年8月
- 2010年7月
- 2010年6月
- 2010年5月
- 2010年4月
- 2009年10月
- 2009年9月
- 2009年8月
- 2009年7月
- 2009年6月
- 2009年5月
- 2009年4月
- 2009年3月
- 2009年2月
- 2009年1月
- 2008年12月
- 2008年11月
- 2008年10月
- 2008年9月
- 2008年8月
- 2008年7月
- 2008年6月
- 2008年5月
- 2008年2月
- 2007年11月
- 2007年10月
- 2007年9月
- 2007年8月
- 2007年7月
- 2007年6月
- 2007年5月
- 2006年11月
- 2006年10月
- 2006年9月
- 2006年4月
- 2006年2月
- 2006年1月
- 2005年12月
- 2005年11月
- 2005年10月
カテゴリー
- Android
- Apache
- AppServer
- CakePHP
- CentOS
- CF-R3
- Database
- DiscWizard
- eclipse
- English
- English Post
- freesoft
- Hardware
- IdeaPad Tablet A1
- Java
- JavaScript
- Linux
- Mac
- Mobile
- MySQL
- Office
- Oracle
- Oracle
- OS
- perl
- PHP
- plugin
- Programming
- pukiwiki
- R40e
- SA76G2V2
- Scientific Linux
- Seasar2
- SELinux
- SEO
- soft
- ThinkPad
- Tomcat
- Ubuntu
- Ubuntu
- VBA
- VMWare
- VNC
- WebApp
- Windows
- WordPress
- X40
- XAMPP
- XS35
- さくらのVPS
- つぶやき
- コマンド
- コマンド
- サーバ管理
- ハードウェア
- マルチブート
- 人気記事
- 仮想化
- 便利なコマンド
- 小技
- 書籍
- 未分類
- 注目キーワード
- 統計情報
- 自作PC
- Struts
メタ情報
カテゴリー別アーカイブ: Apache
PHP5 .htaccessによるBASIC認証のときのユーザ名取得には$_SERVER['REMOTE_USER']を使う
うーんサーバ移行ではまった。 以前のプログラムではBASIC認証が行われていないと、認証ダイアログを出してサイドアクセスを要求するつくりになっていた。サーバが変わってもこんな単純なものすぐ動くだろうと思ったが、何度やっても認証にパスしない。 if (!isset($_SERVER['PHP_AUTH_USER'])) { header(“WWW-Authenticate: Basic realm=\”INPUT ID AND PASSWORD\”"); header(“HTTP/1.0 401 Unauthorized”); exit; } 調べてみるとPHP_AUTH_USERが空白となり取得できていない。 なんで!!と調べてみたところこのサーバ移行先では諸所の事情により.htaccessによる認証をかけていた。その場合はREMOTE_USERというもので取得できるそうな。 echo $_SERVER['PHP_AUTH_USER']; echo $_SERVER['REMOTE_USER']; このコードで試してみたら、確かに下段の記述でユーザ名を取得可能なのであった!細かい違いにびっくり
Apacheで静的コンテンツ文字化け対策
CentOSのhttpdパッケージではデフォルトでHTMLページに強制的にUTF-8のレスポンスヘッダーがつけられてしまう。動的ページばかりやっていたので気づくのが遅れた。 UTF-8以外のコンテンツを利用している人にとってははた迷惑な設定なので/etc/httpd/conf/httpd.confの以下の記述をコメントアウトしよう。 # AddDefaultCharset UTF-8 コメントアウトしたらhttpd再起動 /etc/init.d/httpd restart あとはブラウザのキャッシュが残っていると文字化け直らない場合があったので、キャッシュを消して再度アクセスする。
favicon.icoをApacheのアクセスログに記録しない
favicon.icoとはお気に入りに登録したときの小さいアイコン画像。 ブラウザがアクセス時に探しに行くので、用意していないと404のエラーが発生する。それをエラーログに出力していると他のエラーが埋もれてしまうのでエラーログに出力しないようにしよう。 httpd.confに以下のように記述して再起… 続きを読む
mod_proxyでoracleの管理ツールを外部公開 企画倒れ編
mod_proxyでリバースプロキシをつくり、OracleExpressEditionのapexを外から利用しようという魂胆 設定自体はmod_proxyがすでにロードされていれば、下記の内容を追記するだけ(ただしこのままだとどこからでもアクセス可能なので注意) ProxyRequests Off … 続きを読む
mod_proxy_ajpでApache Tomcat連携
前のエントリーに続きCentOSでJava環境構築シリーズ Apache2.2になってmod_proxy_ajpを使うようになり、mod_jk(もはや非推奨)の時代より格段に楽になった。 通常CentOSのApache2.2にはモジュールがすでにインストールされた状態なので後はTomcatのインスト… 続きを読む
ApacheバージョンやOSなどの情報を隠す
エラードキュメントの設定が適切にされていないところがほとんどの現状では必然的にApacheのバージョンやOSや付随する情報(PHPやOpenSSLのバージョン)が野ざらしになっているケースが多い。 実際問題エラーページについてデフォルトのまま放置しているようなサイトはバージョンを隠すような細かい設定ができる管理者がいないのだろうけども、簡単に対応できるので隠すのが望ましい。 httpd.confの以下の行を編集 ServerSignature Off ServerTokens ProductOnly ほとんどのバイナリではApacheとOSのバージョンまで見えてしまう設定になっている。
Apacheのアクセスログからロボットのログを分離
一昔前にはワームが飛び交っていたのでそれを分離する設定が重宝した。 今は新規のロボットエンジンがスパムのごとくアクセスログを埋めてくれるのでロボットはロボットで別のログにまとめる必要に迫られる。 でhttpd.confに以下のようにCustomLogの設定を入れる #主要なロボットと(迷惑な)新規ロボットをひとまとめに別ログにする SetEnvIf User-Agent “(Googlebot)|(Slurp)|(Baiduspider)|(msnbot)|(Yeti)|(psbot)|(Ask Jeeves)|(Twiceler-0.9)” robots nolog CustomLog logs/robot_log combined env=robots CustomLog logs/access_log combined env=!nolog 終わったらapache再起動するべし。 新しいロボットがきたら |(ロボットのUserAgent名) 組み合わせを増やしていけばいい。 正直いって現状ロボットアクセスが通常の2倍ぐらいありますです。うーむもっとがんばらねば!
DNSなしでNameVirtualHostの設定を確認する
ドメイン名によってドキュメントルートを切替えるApacheのNameVirtualHost レンタルサーバーなどではよく使われている手法である。これで問題となるのがテストしたいときにDNS登録されていないとhttpd.conf一番上にある設定が使われてしまうことである。 普通はDNSに登録されているものだが、既存で動いているサイトの設定変更のテストなどをやりたい場合にわざわざDNSを書き換えることなどできないだろう。そんな時に役立つテクニックを紹介する。 答えは簡単で、windowsでもlinuxでもデフォルトではhostsファイルの設定がDNSより優先されるのでhostsファイルに書き換えればいいのだ。 #LAN内からNameVirtualHostの設定を確認する 192.168.x.x www.myserver.com 192.168.x.x www2.myserver.com 192.168.x.x www.hoge.com こんな感じでNameVirtualHostのServerNameに設定したドメインをIPと対応させればいいだろう。なおDNSはキャッシュされるので(特にWindowsはすぐに反映されない)すぐに変わらないからといって失敗と決め込んではいけない。 自分がレンタルサーバーを利用していてIPアドレスで打ち込んだときとドメイン名で打ち込んだときに違うドキュメントが表示されたらそれはNameVirtualHostの設定で共有されていると考えていい。