Доброго времени суток. Подскажите с решением такой проблемы - на 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(/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.
Комментарии
Поправьте, если не прав, но разве недостаточно было того, что web переименовал в public_html и создал как раз ссылку с помощью ln -s public_html web?
Покажите вашу структуру каталогов
внутри папки проекта
А еще судя по
вы что-то напутали с настройкой виртуального хоста, раз сайт пытается выйти за пределы разрешенного каталога
В такие дебри настроек не лезли еще)) Пытались ставить на стоковую конфигурацию сервера с vestacp
Смотрите мой комментарий ниже
Должно быть так
/home/admin/my-project-site - это корень проекта
/home/admin/web - это каталог который является веб-рутом и прописан в настройках виртуального хоста
Нужно сделать симлинк /home/admin/my-project-site/web -> /home/admin/web
Не поделитесь толковой статьей, как правильно, настроить директории?
Статьи нет, но смотрите мой комментарий, там же всё написано. Корневая директория проекта должна быть не в веб-руте, как вы изначально делали, а рядом.
То есть перенести папку проекта в home/admin и из home/admin выполнить
ln -s my-project-site/web web ?
Я думал вы уже давно это сделали
Проставил такой симлинк, теперь ошибка htaccess выбивается, но это ладно. Другой тогда вопрос появился - если мне надо будет создать поддомен этого проекта, в панели управления при попытке добавления нового ресурса будет писаться ошибка, т.к. по умолчанию стоит добавление проекта в папку home/admin/web/ , но, если и это решить прописав в настройках DocumentRoot как просто папка в home/admin, как в таком случае второй сайт будет работать? Если для первого проекта у нас в структуре идет от web линк к папке первого проекта.
Какой именно поддомен вы имеете в виду? Только в рамках веб сервера или в рамках друпала?
Если первый случай, то поддомен должен быть отдельным хостом.
Опять таки, я не знаю как веста создает виртуальные хосты для сайтов, т.к. предпочитаю делать это вручную
Создавайте его как отдельный www домен.
Но лучше просто выкинуть панельку. У вас VDS, вы можете нормально конфигурировать ваше окружение. Это, на самом деле, немногим сложнее, и крайне полезно уметь. И настроить можно куда разумнее, чем предлагает вам сделать панелька.
Зачем вообще тут симлинки? Надо в настройках виртуального хоста сделать так, чтобы в open_basedir был корень проекта, а не webroot просто, и правильно указать webroot в настройках.