如何从Docker根目录上方的文件夹中包含/获取文件?

时间:2019-09-24 19:58:08

标签: 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 / lib / php吗?

该怎么做,因此我可以从html公共目录之外包含内容,并模拟真实的实时网络服务器环境,其中nonpublic文件夹不在html(public_html)文件夹之外?

1 个答案:

答案 0 :(得分:2)

它与包含路径无关。 __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
相关问题