😵 困ったとき
レンタルサーバで動かない
ローカルの Lampman 環境では稼働しているのに、FTPでレンタルサーバにアップロードなどすると、エラーになってしまう場合があります。
Dockerはあくまで擬似的なLinuxコンテナですので、ホストOS側のファイルシステムの違いなどが影響して本番サーバと異なる挙動をするケースが多々あります。Lampmanで動いてるから本番切り替えは1時間あれば十分だわーなどと思っていると、おおいにハマるのでご注意ください。
以下、ヒントです。
- .
htaccess
でそのサーバ専用の何かをしなくちゃいけない(PHPハンドラーの設定や、Optionsディレクティブの設定など) - PHPエラーで"クラスが見つからない"と出るのは、クラス名の大文字/小文字を間違っている可能性がある(Windowsホスト上だと大文字/小文字の区別無くてもエラーにならない模様)
- DB接続情報が正しいか再度確認を。サーバによっては
localhost
だとダメで、127.0.0.1
にする必要があるところもある。 - ajaxなどが304エラーを返す場合は、サーバ側セキュリティ設定でWAFが効いてる可能性があるので無効にするなど。
- ファイルアップロードの機能がある場合、パーミッション0600で保存されてしまうことがあるので、0644等になるように修正
- PHPのエラー表示設定が違う場合があり、これにより挙動が変わってくる場合もあります。
大事なのは、Dockerを過信しないことと、必ず原因を突き止められると信じる心です。