docker4drupal: 404 несмотря на наличие index.php

9 ноября 2022 в 12:37
Аватар пользователя Никки Никки 0 22 Решено

Всем привет.
Пытаюсь настроить окружение для локальной разработки. И что-то не получается
Помогите, плиз, разобраться.

Что есть:
Убунту 22.04, docker, docker comose, docker4drupal - всё работает, контейнеры запускаются, ошибок нет.
Файл docker-compose.override.yml удален
Файлы docker4drupal лежат в /home/username/project/testdocker
index.php лежит в /home/username/project/testdocker/web
.env

PROJECT_NAME=testdocker
PROJECT_BASE_URL=testdocker.local
PROJECT_PORT=80

docker-compose.yml настройки все по умолчанию. В контейнере nginx
NGINX_SERVER_ROOT: /var/www/html/web

Единственная особенность - всё это крутится на удаленном сервере. Доступ к которому через ssh с локальной машины. fw отключен. И вот в браузере (хром) этой локальной машины по адресу http://testdocker.local - вообще ничего (Не удается получить доступ к сайту). По http://ip_сервера удается получить 404 page not found. Но индекс-то имеется.

Что тут может быть не так?

Комментарии

Этот набор заточен для локальной разработки, так что "как есть" использовать его не получится в таком сценарии.

Тут есть две вещи, которые нужно сделать по меньшей мере:
Чтобы резольвился правильно testdocker.local в браузере, надо добавить в hosts на локальной машине:
testdocker.local ip_удалённого_сервера

Чтобы удалённый сервер отдавал то, что нужно, надо там настроить проксирование запросов к этому домену на 127.0.0.1:8000. Как именно это сделать, зависит от веб сервера установленного на сервере.

Но лучше разобраться как это всё работает, чтобы таких вопросов не возникало. Или пользоваться другими методами развёртывания окружения.

9 ноября 2022 в 14:26

Чтобы удалённый сервер отдавал то, что нужно, надо там настроить проксирование запросов к этому домену на 127.0.0.1:8000. Как именно это сделать, зависит от веб сервера установленного на сервере.

А это в принципе где делается? В конфигах d4d или где-то еще? Сервер - nginx.

9 ноября 2022 в 17:12

Чтобы резольвился правильно testdocker.local в браузере, надо добавить в hosts на локальной машине:
testdocker.local ip_удалённого_сервера

Это сработало. Больше ничего не пришлось делать. Спасибо.

11 ноября 2022 в 9:31

Никк wrote: Единственная особенность - всё это крутится на удаленном сервере.

Мы для такого сценария docksal используем. Всё само проксируется, нужно только добавить один параметр в конфиг, чтобы из вне можно было подключаться

9 ноября 2022 в 14:29

Доксал обновляемый проект? Там друпал 9 есть? А то на сайте по ссылке в примерах везде друпал 8.
Если не заведу с d4d буду пробовать этот вариант. Весь прежний опыт - openserver. Так что на данный момент очень актуален простой вариант докера для чайников.

нужно только добавить один параметр в конфиг, чтобы из вне можно было подключаться

а что именно? Напишите, пожалуйста, сразу. Чтобы не возвращаться к этому, если этот вариант буду пробовать.

9 ноября 2022 в 15:08

Никк wrote: Там друпал 9 есть?

Доксал это докер окружение, как и d4d. Какой сайт установите, такой и будет.

Никк wrote: простой вариант докера для чайников.

Доксал намного дружелюбнее d4d, имхо

Никк wrote: а что именно? Напишите, пожалуйста, сразу.

DOCKSAL_VHOST_PROXY_IP="0.0.0.0" нужно будет добавить в файл ~/.docksal/docksal.env

9 ноября 2022 в 16:07

Спасибо!
читаю вашу статью тут на форуме про Доксал . Пока есть свободное от проектов время надо будет попробовать все эти варианты и выбрать.

9 ноября 2022 в 17:16

И не заработает, т.к. на сервере уже есть кому слушать 80/443. Или придётся как для d4d писать конфиг nginx.
Лучше изучить docker и свои делать наборы контейнеров, понимая, что делаешь, чем лезть в эти чёрные ящики, к тому же применяя их не по прямому назначению...

9 ноября 2022 в 22:35

Лучше изучить docker и свои делать наборы контейнеров

Конечно лучше. А заодно разобраться с администрированием серверов, хорошенько изучить линукс...Что бы уж совсем надежно Smile
Проблема только в том, что на это уйдут месяцы. Сейчас мне нужно максимально быстро поднять сервер. Чтобы для начала просто попробовать как будет крутиться 9-ый друпал под линуксом. На моей винде еле ворочается.
Поэтому если религия позволяет - просто скажите конкретно, что и куда вписать. Нет так нет. В любом случае спасибо за попытку помочь.

10 ноября 2022 в 9:42

Вообще-то я и написал выше всё что нужно сделать, по крайне мере то, что можно было написать при ваших вводных данных.

И изучать docker всяко полезнее чем разные docksal/ddev и.т.п., об этом именно было написано. Потому, что именно это тот инструмент которым вы пользуетесь. А изучать обёртки над ним это путь в никуда - время тоже будет потрачено, но при любой проблеме придётся тупо гуглить в надежде, что на грабли кто-то уже наступил, вместо понимания того, где проблема.

Ну и для поднятия продакшен окружения, ни d4d, ни docksal не годятся совсем, так на всякий случай.

12 ноября 2022 в 23:51

пробую docksal
после запуска fin init получаю сообщение: Project URL: http://testdocker.docksal
Но открытие этого адреса в браузере выдает: Не удается получить доступ к сайту.
Вписываю DOCKSAL_VHOST_PROXY_IP="0.0.0.0" в ~/.docksal/docksal.env
Все равно нет доступа к сайту (

25 ноября 2022 в 11:45

видимо нет. Так показалось, потому что внезапно на другой машине заработало. Но потом заработало везде. Но в любом случае "заработало" - на самом деле вовсе не заработало Smile

10 ноября 2022 в 9:49

Как выше советовали:
testdocker.local ip_удалённого_сервера
Прописать это в файл hosts на том компьютере, с которого пытаетесь открыть сайт.

10 ноября 2022 в 17:58