У меня ОС Ubuntu 18.04 и на ней стоит LAMP (Linux, Apache, MySQL, PHP)
Я создал папку моего Drupal 9 проекта по адресу /home/NameUser/Projects/drupal9doc1
и скачал в в эту папку Docker-based Drupal stack - где собраны необходимые образы для локального подъема Drupal сайта, а именно: образ ngnix, Apache, MariaDB, PHP и другие.
В видео уроке автор розкоментировал в файле docker-compose.yml
код возле ngnix
и mariadb
, и возле других блоков отвечающих за другие образы. И файле .env
прописал такое:
PROJECT_BASE_URL=drupal9doc1.localhost // у автора видео drupal8.localhost
А потом запустил образы:
docker-compose up -d
Я сделал аналогично.
И у меня запустились такие образы:
new_drupal9doc1_php
new_drupal9doc1_mariadb
new_drupal9doc1_pma
new_drupal9doc1_mailhog
new_drupal9doc1_crond
new_drupal9doc1_traefik
Но когда я в url написал:
drupal9doc1.localhost:8080
У меня:
А должно быть file not found:
Так как пока у меня нет файла index.php. Но он будет, когда добавлю в папку с проектом папку drupal9
Возможно это происходит потому, что на моем компьютере нет установленных ngnix и MariaDB? И мне нужно установить MariaDB на свою Ubuntu а вместо ngnix в файле docker-compose.yml
розкоментировать код для запуска образа Apache?
Комментарии
Смысл докера как раз в том, чтобы не устанавливать и не настраивать ничего в своей ОС, потому что всё уже будет установлено и настроено внутри контейнеров
а в Dockerfile должна быть прописана установка ngnix и MariaDB возле RUN? Или достаточно кода написаного в docker-compose. yml?
ngnix:
И MariaDB:
Его нужно создать хотя бы с
<?php
echo "123";
?>
Проблема с This site can't be reached решена. Нужно было написать после двоиточия написать порт 8000 а не 8080. И сейчас у меня на странице отображает File not found.
Я создал php файл. Но все равно на странице File not found. Подскажите пожалуйста, почему docker(ну или ngnix) не видит php файл?
Файл лежит по пути /var/www/html/index.php?
Файл лежит по пути /home/my_username/Project/drupal9doc1/index.php Куда я и буду помещять скачаную папку drupal проекта.
Точно так само у автора видео по которому я поднимаю сайт на docker. Но у него php файл запускается в браузере а у меня file not found.
Возможно что-то нужно поменять в файле docker-compose.yml возле кода ngnix и MariaDB?
А изнутри контейнера файл видно?
А как посмотреть видно ли файл изнутри контейнера? Или о чем вы?
Зайти в контейнер и посмотреть вокруг))
Например
ls -l
ls -l web
Когда написал команды в том же порядке что вы написали:
А потом еще написал
exit
и написал находясь в папке моего проектаls -l
то вот такое показало:Есть у вас какие-то предположения почему File not found?
В docker-compose.yml должно быть
NGINX_SERVER_ROOT: /var/www/html/web
а у Вас что?
У меня в
NGINX_SERVER_ROOT: /var/www/html
В документации к docker4drupal пишет что
/var/www/html/web
нужно писать для composer-based projects where Drupal is in web subdirectory Но у меня не будет установлен друпал с помощью Друпала. Я скачаю друпал с drupal.org в архиве! И самое главное! Я еще даже не дошел до стадии загрузки / установки Drupal. На данный момент я просто тестирую, как работают мои запущение контейнеры. И я это проверяю, создав файл index.php, который должен просто отобразить версию PHP, потому что в нем есть написанная функция phpinfo();Тогда положите index.php в
/var/www/html
и посмотрите, что получиться.Вот только Drupal с такими настройками, Вы не установите.
Решение: Нужно УДАЛИТЬ файл docker-compose-override.yml из папки проекта и все заработает.
Вообще, нужно посмотреть что там переопределяется и настроить под себя. Если ничего подстраивать под себя не нужно, то можно и удалить
Там можно удалять, не глядя))
Согласно инструкции
docker-compose.override.yml
надо удалить, если не собираетесь устанавливать vanilla Drupal.Подозреваю, после этого содержимое папки
/var/www/html
изменилось, или нет?При удалении этого файла эта папка монтируется на хост-машину и в ней лежит всё, что лежит в папке проекта