сайт доступен только по пути site.ru/web при сборке компосером

Аватар пользователя svisch svisch 16 марта 2018 в 10:50

Продолжаю изучение компосера. Что я делаю не так?

0 Thanks

Лучший ответ

Аватар пользователя fairrandir fairrandir 16 марта 2018 в 11:45
svisch wrote:

подскажите пожалуйста где указать верную директорию

В настройках сервера уж. Apache или nginx?

Комментарии

Аватар пользователя svisch svisch 16 марта 2018 в 11:11

у меня после команд

composer create-project drupal/drupal my_site_name_dir
cd my_site_name_dir/web
../vendor/bin/drush site-install --db-url=mysql://{username}:{password}@Localhost/{database}

После этих действий у меня структура сайта отличается от структуры при обычной установке
в папке my_site_name_dir:
-config
-drush
-scripts
-vendor
-web
в веб лежит ядро. Так и должно быть?

Аватар пользователя fairrandir fairrandir 16 марта 2018 в 11:45
svisch wrote:

подскажите пожалуйста где указать верную директорию

В настройках сервера уж. Apache или nginx?

Аватар пользователя svisch svisch 16 марта 2018 в 13:19

Спасибо. файл config пока не нашел, жду ответ от хостера. В настройках isp manager если у этого домена указать индексную страницу '/web' то все работает, но алиас тогда у гдавной и других страниц соответственно site/web, что тоже не подходит.
Я скопировал из папки web в папку проекта .htaccess и в нем изменил строку
DirectoryIndex /web/index.php /web/index.html /web/index.htm
Все заработало. Скажите пожалуйста это решение корректное или лучшу сделать так, как вы сказали?

Аватар пользователя P.Selfin@drupal.org P.Selfin@drupal.org 16 марта 2018 в 14:16
1

Короче это специальная такая тема для бОльшей безопасности.
Я у себя на шареде для решения вопроса прописал симлинк на /веб, и работает нормально)
Здесь описано подробнее https://github.com/drupal-composer/drupal-project

Аватар пользователя gun_dose gun_dose 16 марта 2018 в 14:25

Да, симлинк на web - очень удобно. Но главное, чтобы корень проекта не был доступен из веба, как у автора было изначально.

Аватар пользователя svisch svisch 16 марта 2018 в 14:59

А как сделать его недоступным из веба! И на что влияет, если он доступен?

Аватар пользователя gun_dose gun_dose 16 марта 2018 в 16:27
1

Когда из веба доступна только директория web. То можно быть спокойным, что никто не будет смотреть ваши конфигурационные файлы, composer.json и т.д.
Чтобы корень проекта не был доступен из веба, достаточно, чтобы он не фигурировал в качестве корневой директории какого-либо из сайтов на вашем сервере. Т.е. в конфигах nginx или apache надо указывать в качестве директории сайта что-то вроде /блаблабла/кореньпроекта/web

Аватар пользователя bumble bumble 16 марта 2018 в 16:24
svisch wrote:

структура сайта отличается от структуры при обычной установке

Данная структура уже более обычна.

Правильный путь, как уже указали в комментариях - натравить сервер на директорию web, а не на корневую.

Аватар пользователя svisch svisch 16 марта 2018 в 16:44

На хостинге доступ к конфигурации сервера не дают. Перенаправить можно в пользовательском интерфейсе на папку web, но тогда алиас главной site.ru/web.
Интересно было бы услышать мнение насчёт копирования .htaccess и изменения DirectoryIndex - так у меня заработало, но не знаю правильно ли так делать.

Аватар пользователя bumble bumble 16 марта 2018 в 16:49
1
svisch wrote:

Перенаправить можно в пользовательском интерфейсе на папку web, но тогда алиас главной site.ru/web.

Ну... если перенаправление сработает - то не будет site.ru/web, а будет site.ru.

С .htaccess играться тоже пытался по началу. У меня не получилось (но я и не особо старался)...
Зачем городить костыли, когда система работает хорошо без них?

Аватар пользователя svisch svisch 16 марта 2018 в 16:59

Проверил сейчас ещё раз перенаправление - действительно адрес site.ru, а не site.ru/web. так тогда и оставлю. Спасибо всем за советы!

Аватар пользователя bumble bumble 16 марта 2018 в 17:23

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