Установка Drupal 8 с помощью composer на VDS

Главные вкладки

Аватар пользователя DarthOlolo DarthOlolo 16 марта 2020 в 13:47

Доброго времени суток. Подскажите с решением такой проблемы - на VDS хостинге попытались поставить Drupal 8 серсии - из папки web (где лежат в свою очередь папки непосредственно с сайтами) - composer create-project drupal/recommended-project my-project-site в папке сайта my-project-site скачались и распаковались файлы для работы composer и движка друпала.

По аналогии с обычным хостингом переименовал внутри папки проекта папку web в public_html и выполнил команду ln -s public_html web дабы шел переход с web на стандартную папку с файлами сайта. На обычных хостингах этого было достаточно для уже запуска работы, но на VDS постоянно 505 ошибка отдается и пишется ошибка в логах

PHP Warning: require(): open_basedir restriction in effect. File(/home/admin/web/my-project-site/vendor/autoload.php) is not within the allowed path(s): (/home/admin/web/my-project-site/public_html:/home/admin/tmp) in /home/admin/web/my-project-site/public_html/autoload.php on line 16

PHP Warning: require(/home/admin/web/my-project-site/vendor/autoload.php): failed to open stream: Operation not permitted in /home/admin/web/my-project-site/public_html/autoload.php on line 16

PHP Fatal error: require(): Failed opening required '/home/admin/web/my-project-site/public_html/../vendor/autoload.php' (include_path='.:/usr/share/php') in /home/admin/web/my-project-site/public_ht

Из текста ошибок понимаю, что не нравится структура папок и вложенность. В оригинальных архивах с друпалом действительно файлы composer и папка vendor находились внутри директории сайта public_html, но на шаред хостинге почему то до этого композером ставилось всё нормально. Все операции проводились на timeweb.

Комментарии

Аватар пользователя DarthOlolo DarthOlolo 16 марта 2020 в 13:57

Поправьте, если не прав, но разве недостаточно было того, что web переименовал в public_html и создал как раз ссылку с помощью ln -s public_html web?

Аватар пользователя ivnish ivnish 16 марта 2020 в 13:58

А еще судя по

open_basedir restriction in effect

вы что-то напутали с настройкой виртуального хоста, раз сайт пытается выйти за пределы разрешенного каталога

Аватар пользователя ivnish ivnish 16 марта 2020 в 14:02

Должно быть так

/home/admin/my-project-site - это корень проекта
/home/admin/web - это каталог который является веб-рутом и прописан в настройках виртуального хоста
Нужно сделать симлинк /home/admin/my-project-site/web -> /home/admin/web

Аватар пользователя ivnish ivnish 16 марта 2020 в 14:40

Статьи нет, но смотрите мой комментарий, там же всё написано. Корневая директория проекта должна быть не в веб-руте, как вы изначально делали, а рядом.

Аватар пользователя DarthOlolo DarthOlolo 16 марта 2020 в 15:32

Проставил такой симлинк, теперь ошибка htaccess выбивается, но это ладно. Другой тогда вопрос появился - если мне надо будет создать поддомен этого проекта, в панели управления при попытке добавления нового ресурса будет писаться ошибка, т.к. по умолчанию стоит добавление проекта в папку home/admin/web/ , но, если и это решить прописав в настройках DocumentRoot как просто папка в home/admin, как в таком случае второй сайт будет работать? Если для первого проекта у нас в структуре идет от web линк к папке первого проекта.

Аватар пользователя ivnish ivnish 16 марта 2020 в 15:39

Какой именно поддомен вы имеете в виду? Только в рамках веб сервера или в рамках друпала?

Если первый случай, то поддомен должен быть отдельным хостом.

Опять таки, я не знаю как веста создает виртуальные хосты для сайтов, т.к. предпочитаю делать это вручную

Аватар пользователя bsyomov bsyomov 16 марта 2020 в 17:16

Создавайте его как отдельный www домен.
Но лучше просто выкинуть панельку. У вас VDS, вы можете нормально конфигурировать ваше окружение. Это, на самом деле, немногим сложнее, и крайне полезно уметь. И настроить можно куда разумнее, чем предлагает вам сделать панелька.

Аватар пользователя bsyomov bsyomov 16 марта 2020 в 17:12

Зачем вообще тут симлинки? Надо в настройках виртуального хоста сделать так, чтобы в open_basedir был корень проекта, а не webroot просто, и правильно указать webroot в настройках.