Как включить / требовать файл из папки выше корня в Docker? - PullRequest
0 голосов
/ 24 сентября 2019

Я установил 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 и моделировать реальную живую среду веб-сервера, где непубличная папка находится за пределами html(public_html) папка?

1 Ответ

2 голосов
/ 24 сентября 2019

Это не связано с путём включения.__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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...