IBM Cloudのヘンテコ動作、デプロイするとデイレクトリが勝手に外に移動するゾ。
先日から「IBM Cloud」を使って開発してる。
お客さんがコードをそこへコミットしてくれというから、あまり深追いしたくないんだけど、仕方なくいろいろと調べながら開発してる。
無料会員登録をして借りた領域に、試しにPHPのテストコードをプッシュしてみると、いきなりエラーを吐いて動かなかった。
require_onceをしている箇所で「No such file or directory」となっていて、どうもディレクトリが見つからずにエラーしているみたい。
原因はドキュメントルートの下に作った「lib」というディレクトリが、本番環境にプッシュすると勝手にドキュメントルートの上に移動するからだった。
「require_once(__DIR__.'/lib/hoge.php')」などと書くところを「require_once(__DIR__.'/../lib/hoge.php」などと書き直すとやっと動いた。
たしかに普通は「lib」なんてディレクトリをドキュメントルートの下には作らないかもしれないけど、勝手に移動されちゃうなんてどういうことだろう。
自分が知らないだけで、こういう動作をするクラウドサービスってよくあるんだろうか・・?
ともあれこの原因を調べるのに一日費やしてしまったので、IBMはマジ訴訟。