Установка Drupal+Composer на Виртуальном хостинге
Что рассмотрим:
Лирическое отступление – почему и зачем.
Как установить composer+ Drupal на локальный OpenServer.
Предпочтительный Ssh клиент, настройка алиасов и быстрых команд.
Установка composer+ Drupal на хостинг и нюансики.
Лирическое отступление
В длинные выходные по возможности верстал и настраивал проектик на локалке и периодически закидывал на тестовый домен (на хостинг) готовые страницы. Краем глаза стараюсь почитывать друпальные телеги, дискорды, форумы и проникаюсь холиварами по поводу композера, его нужности и обязательности. В свое время, с появлением Drush, наблюдал подобную истерию, но поскольку на виртуальных хостингах долгое время о ssh можно было и не мечтать, не обращал на него особого внимания. Ленился и противился новому в общем. Но нынешняя обрушившая все и вся, обновка Drupal 9.3 и глюк Chrome, zip и невнимательность поменяли мое отношение к теме на до и после. Да и на любимом хостинге появилась возможность подключать ssh. Совпало.
С новой для себя темой разбираться было напряжно в связи уже наболевшими проблемами русскоязычного сообщества. Многие простые и очевидные для гуру и официальной документации моменты описаны вскользь, а при наивно заданном вопросе могут и послать. Не все, но могут.
Как установить composer+ Drupal на локальный OpenServer
Начать стоит не столько с Composer сколько с подготовки окружения.
Напомним очевидный и состоявшийся факт. Продвинутое сообщество и composer при установке и работе с drupal 8-9+ рекомендует новую структуру каталогов.
В связи с этим старт движка, после копирования через консоль, предполагается через каталог web. В OpenServer web-root папки домена делается безболезненно на уже скопированном проекте, но к хорошему лучше не привыкать.
В настройках выбрать вкладку Домены, выбрать ручное управление и к домену выбрать папку старта.
Да Composer не даст установить проект в непустую папку домена, но OpenServer знать про это необязательно.
Composer установлен в OpenServer из коробки и здесь танцы и бубны не пригодятся. Команды для установки в официальной документации (тыщ)
composer create-project drupal/recommended-project my_site_name_dir
Предпочтительный Ssh клиент, настройка алиасов и быстрых команд.
Для подключения к консоли по ssh традиционно предлагается использовать PuTTY – софтина простая как валенок и актуальная.
Но есть ньюансики:
- Я неуверенный тормоз в новой и непонятной для меня ситуации – и пока до меня дойдет, что и куда нужно копировать, со звуками психующего пингвина сессия благополучно заканчивается.
- Я забываю команды. Конечно, лучший способ что-то запомнить — это многократное повторение. Но лень, и, если можно автоматизировать, лучше автоматизировать.
Не буду здесь приводить все возможные варианты клиентов. Буду хвалить тот, на котором остановился.
Tabby (тыщ)
– запоминает сессии и не дисконектится;
- красивый (=
- Можно запоминать пароли. Хотя это, наверное, минус. Пароли лучше нигде не хранить. Привет паранойя.
- есть расширения для сессий с шаблонами команд и алиасов, и на эти команды можно назначить кнопки в интерфейсе (может можно и хоткеи сделать, я не углублялся. Хватило и кнопок)
Алиасы – в нашем контексте, псевдонимы пути и сокращения длинных команд. И в случае с виртуальным хостингом - это алиасы «временные» – то есть запускаются только внутри сессии. Да мы пропишем их файл, но поскольку в основные файлы настроек сервера нам путь заказан, будем вызывать их настроенным вызовом через консоль (Tabby).
В корне доступного нам на хостинге файлового менеджера создадим файл .bashrc
alias tbn="cd www/test.borchun.name"
alias php="/opt/php74/bin/php"
alias drush="/opt/php74/bin/php vendor/bin/drush"
alias composer="/opt/php74/bin/php composer.phar"
Это те команды, которые были необходимы лично мне. Просто так к Composer без прямого обращения к версии php было не пробиться. И Drush запускать стало проще.
Теперь как запускать все это через Tabby. В каждой новой сессии запускаем команду
source ~/.bashrc
или назначаем ее на быструю команду (кнопку).
В настройках -> Plugins - > elastic-quick-commands
Здесь назначаем шаблон подключения и подцепляем нашу команду. С алиасам по идее можно было бы и не заморачиваться, но я их сделал на хостинге раньше, чем поставил Tabby пока разбирался как оно все внутре работает.
Установка composer+Drupal на хостинг и нюансики
Помним про новую структуру каталогов и как легко назначить web-root в OpenServer? Сказка – как легко.
В случае с RigWeb это немного боль, не критичная, но неудобная. Хостинг использует панель ISPManager в которой корневую папку можно указать только на момент создания домена. В уже существующую структуру прописать ее на стороне клиента невозможно. Гугление показало, что другие панели позволяют в переназначение. Экспериментально выявил, что оставить существующий каталог в структуре файлов и пересоздать домен без удаления папок можно, но сайт будет глючить. С чем это связано и выяснять как побеждать желания и сил уже не было.
Слава богам, вся процедура осуществлялась теста ради. Но перестройка уже существующих проектов займет больше времени с переустановками, пересозданием доменов и прочими сопутствующими моментами.
Установим composer. (тыщ) В командной строке пропишем:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
В папку откуда была вызвана команда установится скрипт composer.phar Его выполнение прописано в алиасах выше. Без оного вызывается собственно, например так
composer.phar -V
теперь можно переходить к установке актуальных версий и тестам. Не знаю на сколько это правильно, но мне показалось логичным сохранить composer.phar и вызывать установку на уровень выше доменной папки.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.