やったこと

webサービスを作るときに考えたことを垂れ流します

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はマジ訴訟。