====== PHP realpath() でハマり道 ====== お客様ご指定の環境 Apache2.4 + PHP8.0.14 にて realpath() 挙動の沼にハマったのでご紹介。 Apache 経由でのリクエストにおいて、実在するパスを realpath("/var/tmp/hoge") とすると、空文字が帰ってくる。 CLI では問題ない。。。 どうやら realpath() はキャッシュを持つ様で、Apache との組み合わせでは解決するのは、特にシンボリックリンクが絡むと結構面倒らしい。。 * https://www.klab.com/jp/blog/tech/2016/1062120304.html * https://ngyuki.hatenablog.com/entry/2017/07/25/082825 今回はシンボリックリンクは絡んでいないにも関わらず、Apache を再起動してもマシン本体を再起動しても治らないので、/var/tmp2/hoge とすることで回避した。後味が悪い。。。