2005年04月10日

Mac OS X Server の Apache のパフォーマンスキャッシュの副作用

PHPというよりApacheの話題ですが、Mac OS X Server (10.3.4で確認) で Apache のパフォーマンスキャッシュが on (=デフォルト) になっていると、$_SERVER['REMOTE_ADDR'] の値がサーバのIPアドレスになってしまいます。

関連情報 Apple Tech Info Library
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=107017

これを避けるには、「サーバ管理」アプリケーションで、Apache のパフォーマンスキャッシュを off にして Apache を再起動するか、PHPのスクリプトで $_SERVER['REMOTE_ADDR'] の代わりに $_SERVER['HTTP_PC_REMOTE_ADDR'] を使用します。

ただし $_SERVER['HTTP_PC_REMOTE_ADDR'] はパフォーマンスキャッシュが on のときにしか使えません。面倒ですね。

[2005-05-02 追記]

「FMS Web お読みください.pdf (2004年9月10日付)」によると、
2.1. Mac OS: Web 公開エンジンまたは Web サーバーモジュールが Mac OS X Server にインストールされている場合、Server Admin またはサーバ設定で [パフォーマンスキャッシュ] をオフにしてください。[パフォーマンスキャッシュ] が有効な場合、データが正しく更新されないことがあります。

とありますので、FileMaker Server 7 Advanced の Web 公開エンジンまたは Web サーバーモジュールを FX.php の動く web サーバに同居させる場合は、いずれにせよパフォーマンスキャッシュはオフにしなければなりません。


posted by Kojima at 18:55| Comment(3) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
これってもしかして
http://macocci7.exblog.jp/6071008/
と関係あります?
FileMaker + XSLT でクライアントのIPアドレスを取ろうと思い、$client-ip を使ったのですが、ウェブサーバのアドレスになってしまいます。
Posted by まこっち at 2006年11月22日 13:05
まこっちさん、

サーバは Mac OS X Server ですか?それなら上記のパフォーマンスキャッシュの可能性が考えられます。Server版でなければ、別の原因だと思います。
Posted by Kojima at 2006年11月22日 14:08
サーバOSは Mac OS 10.4.3 です。
ウェブサーバはApache/1.3.33 です。
ほか、FileMaker Server 8 Advanced (8.0v4)
Web公開エンジン(8.1.27)
となっています。
Apacheのパフォーマンスキャッシュをオフにし、OSごと再起動かけましたが変化はありませんでした。
FileMaker Serverの方もOSごと再起動かけましたが変化はありませんでした。
本件はパフォーマンスキャッシュとは別問題かもしれません。
Posted by まこっち at 2006年11月24日 16:14
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック