2018年8月26日の日記を表示中

2018年 8月26日 (日)

HTTPD

手元のPCだと、PHPでhttpのヘッダとして Last-Modified を返す際、明示的に指定した日時ではなく、何故か常に現在時刻が返ってしまうという問題に直面。色々試した結果、引数をGMTにする(gmdate関数の戻り値を使う)と、ちゃんと指定した時刻が返るけど、date関数とかの「Sun, 26 Aug 2018 08:30:10 +0900」とかついてる値を使うとダメということが判明。ただ、ここのサーバだと、date関数の戻り値でも、指定の時刻がLast-Modifiedで返るんだよなぁ。その差は何・・・

というわけで、差分を調べてみたら、php.iniでのtimezone設定に辿り着きました。どうも、timezoneが「Asia/Tokyo」などに設定されている場合に、引数をGMTにしないとLast-Modifiedの値が現在時刻に置き換わってしまう模様。timezoneを未設定にしておくと、非GMTを与えても、ちゃんと指定の時間がLast-Modifiedとして出ていきます。うーん、ほんとかよ。というわけで、php.iniで正しくtimezoneを設定した上で、PHP側ではgmdate関数を使ってLast-Modifiedの値を生成する形で決着。はぁ。

ちなみに、最初、この辺の設定との関係をFirefoxで確認してたんですが、キャッシュが効いてしまい、大混乱。かと言ってtelnetでいちいちHEADとか打つのも面倒だし・・・って、ncコマンドでこうすりゃいいのか。またすぐ忘れそうなので記録に残しておこうw

echo -en "HEAD /~nosuke/diary/ HTTP/1.0\r\n\r\n" | nc localhost 80

2018年8月26日の日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2018年8月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ