docker - 如何包含/需要 Docker 根目录以上文件夹中的文件?

标签 docker

我已经像这样安装了 php:

version: '3.3'
     services:
       web:
         image: php:7.3-apache
         container_name: php73
     volumes:
       - ./php:/var/www/html/
     ports:
       - 8000:80

并且它有效。

但是我想包含 html 文件夹之外的文件夹中的一些文件,但失败了。

我在根文件夹中的index.php 中包含的代码是require __DIR__ 。 '/../nonpublicfolder/includeme.php'; 但失败了。有错误:

Fatal error: require(): Failed opening required '/var/www/html/../nonpublicfolder/includeme.php' (include_path='.:/usr/local/lib/php') in /var/www/html/index.php on line 4

所以,我想我必须以某种方式将文档根目录设置为/var/www/html/,就像现在一样,但将 include_path 更改为/usr/local/lib/而不是/usr/local/库/php?

如何做到这一点,以便我可以包含 html 公共(public)目录之外的内容并模拟真实的网络服务器环境,其中非公共(public)文件夹位于 html (public_html) 文件夹之外?

最佳答案

与包含路径无关。 __DIR__ 。 '/../nonpublicfolder/includeme.php' 是一个完整路径,“相对”于脚本目录。您还需要安装 ./nonpublicfolder

这样的事情应该有效:

version: '3.3'
     services:
       web:
         image: php:7.3-apache
         container_name: php73
     volumes:
       - ./php:/var/www/html/
       - ./nonpublicfolder:/var/www//nonpublicfolder/
     ports:
       - 8000:80

关于docker - 如何包含/需要 Docker 根目录以上文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087357/

相关文章:

c++ - 为什么更改链接顺序可以修复一个系统上的一些链接错误?

node.js - Docker:使用图像,跳过(docker-compose)

python - 为什么pystan安装这么慢?

git - 无法连接到 github.com 端口 443 : Connection refused, 引导失败,Discourse Docker

docker - 为什么 POD 是部署的基本单位而不是容器?

docker - 在 docker build 期间在主机上执行命令

amazon-web-services - 将 s3 存储桶添加为 docker 卷

ruby-on-rails - 无法在Rails和Postgres Docker容器之间建立连接

docker - Prisma部署Docker错误 “Could not connect to server”

docker - 如何在Eureka中使用IP地址代替主机名?