PHPの勉強中です。
以下のサイトで作成したDocker環境で
https://zenn.dev/garyuten/articles/85c7fe9cc00a5d
index.phpでrequire_once('./apps/Config.php');をすると、
error
1Warning: require_once(./apps/Config.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 9
というエラーが出ます。
何も指定していないのにvar/wwwというフォルダを参照してエラーになります。
どうすれば、require_once('./apps/Config.php');でconfigファイルにアクセスできるのでしょうか?
apps/Config.phpは存在しますか?
確かに存在します。
絶対パスは/var/www/html/apps/Config.phpで正しいですか?
絶対パスにvar/wwwは無いのです。
require_once('./apps/Config.php');すると、そういうエラーが出るのです。
では、実行しているindex.phpはどこにあるのですか?
htmlフォルダの直下です。
質問内容のdockerの構築にはhtmlしかありませんでした。
var/wwwという記述は、
docker-compose.ymlに以下の一文があります。
- ./html:/var/www/html
同じフォルダにして、
require_once('./Config.php');
とすると、エラーになりません。
> htmlフォルダの直下です。
appフォルダは「その中」に作りましたか?
いいえ、appフォルダはhtmlフォルダと同じレベルにつくりました。
なので、require_once(__DIR__ . '/../apps/Config.php');一つ上から降りてます。
appフォルダ内にはDBのパスワードなどをおく場合もあるので、publicフォルダに置くのは望ましくないと思いました。
でしたら、そのフォルダもDocker内で見られるようにvolumeを設定してください。
ハードルが高いので、htmlの下にまとめるとします。

回答1件
あなたの回答
tips
プレビュー