Паміж салатам аліўе і мандарынамі. Або навагоднія зацемкі з друпал-адысеі па пракачцы Талаша

Першыя навагоднія дні правёў, вывучаючы Друпал 8. У гэтым допісе я распавяду гісторыю, як адбывалася абнаўленне блога Талаша. Што атрымалася і што не, і канешне адкрыю, які функцыянал задуманы для наступнага апгрэйда блога. Наогул, падзялюся цікавосткамі, якія могуць быць карысны для пачынаючых блогераў, якія самастойна вырашылі даглядаць сваю айці-інфраструктуру.

Перш за усё апішам, якія функцыі дадаліся ў існуючым блозе:

  1. Перайшоў на іншую тэму bootstrap_clean_blog і аднавіў ядро друпал да версіі 8.2.4
  2. З’явілася падпіска па rss
  3. Падключаны модуль disqus, таму можна пакідаць каментары.
  4. Трохі развіў правілы карыстання кантэнтам на сайце.
  5. І дадаў старонку разметкі для новых пастоў, каб зрабіць больш чытабельнымі.
  6. Таксама падключаны ssl-сертыфікаты ад letsencrypt.

Што цікавага даведаўся пра Друпал 8

Першая цікававостка. У Друпал 8 усе наладкі з сервера распрацоўкі на прадакшн (так называецца сэрвер, на якім круціцца гатовая версія блога) можна пераносіць простым экспартам і імпартам файла наладак, якія рэалізаваны праз вэбінтэрфейс.

Другая цікавостка - гэта ўнікальны нумар кожнай інсталяцыі друпал 8. Таму, каб рабіць пераносы канфігурацый спачатку трэба назначыць новай інсталяцыі той жа нумар, што і інсталяцыі, з якой пераносяцца наладкі, або інсталяваць з канфіга першай інсталяцы.

Кампазітар і Друпал 8

На трэцяй знаходцы спынюся больш падрабязна - гэта ўтыліта Кампазітар (сomposer). Як пішуць на самім сайце Кампазітара:

“...гэта інструмент для кіравання залежнасцямі ў PHP. Ён дазваляе вам аб’яўляць бібліятэкі, ад якіх залежыць ваш праект. Таксама кампозер будзе кіраваць (усталёўваць і абнаўляць) іх для вашага праекта.”

На сайце падкрэсліваецца што гэта не пакетны мэнэджэр. Хаця Кампазітар і кіруе “пакетамі” (бібліятэкамі), ён гэта робіць на папраектнай аснове, устанаўліваючы у дырэкторыю vendor кожнага праекта, і не устанаўлівае адпаведную бібліятэку глабальна, як гэта звычайна робяць пакетныя мэнэджэры. Варта адзначыць, што Кампазітар можа наладжвацца і глабальна. Кампазітар, зручна прымяняць калі ваш праект залежыць ад шэрагу бібліятэк, якія часта таксама могуць залежыць ад іншых бібліятэк.

Праца кампазітара заключаецца у тым, што ён аб’яўляе залежныя бібліятэкі, у тым ліку кантралюе, каб падключаліся патрэбныя версіі бібліятэк, а пасля ўстанаўлівае іх.

Улічваючы, што ў аснове Друпал 8 сёння знаходзіцца фрэймварк Symfany, Кампазітар можа істотна палегчыць аднаўленне самого фрэймварка для бягучай інсталяцыі і залежных бібліятэк.

На што яшчэ варта звярнуць увагу

Чоткае размеркаванне доступаў - гэта залог сэканомленага часу. Пры інсталяцыі ўсплываюць падказкі, што і як неабходна зрабіць. Напрыклад, што варта звяртаць увагу на папкі sites/default/files (правы 0775, карыстальнік і група www-data), файлы sites/default/settings.php, таксама тэчку бэкапаў, якая павінна быць створана па-за межамі карнявой дарэкторыі вашага Друпал-праекта.

Пэўны час таксама заграбае наладка так званых “чыстых спасылак” (clean url). Стандартная старонка, закліканая дапамагчы, можа не ўтрымліваць адказу. Мне атрымалася разабрацца з гэтай задачай толькі праз наладкі канфіга сэрвера apache, які звычайна ляжыць тут /etc/apache2/apache2.conf Вось так павінны выглядаць дарэкторыя з вашымі хастамі для чыстых спасылак:

<Directory /var/www/>
      Options Indexes FollowSymLinks
#       Так было AllowOverride None, а так стала
         AllowOverride All
         Require all granted
</Directory>

Яшчэ трохі сервернага. Калі вы набываеце VPS, там можа быць нулявой swap памяць. Таму варта дадаць свэп памяці, напрыклад, на 1 гігабайт рэальнай 1 гігабайт свэп. Гэта памяць задзейнічаецца, калі рэальная перапоўнена. Добрыя парады па яе наладцы тут.

Наогул, калі вы ўжо паставілі свой Друпал-праект на прадакш вельмі рэкамендуецца прайсці праз старонку “Справаздача стану” https://talash.by/admin/reports/status Яна пакажа найбольш слабыя месцы сістэмы, якія вырашаюцца з дапамогай правільных наладак. Напрыклад, паставіць доступы на файл sites/default/settings.php), або назначыць давераныя хасты.

Якія былі цяжкасці падчас разгортвання?

Зараз праект ляжыць на гітхабе (пакуль без баз даных). Недакладны пералік выключэнняў ў файле .gitignore стварыў праблему таго, што былі згублены некаторыя файлы патрэбныя для нармальнага функцыянавання блога пры аперацыях пераносу..

Як вядома файл .gitignore дазваляе абмежаваць індэксацыю рэпазіторыя праграмай гіт (git) у працоўнай тэчцы. Напрыклад, гэта могуць быць розныя канфігі, часовыя, кэш файлы, якія актуальныя толькі для канкрэтнага сэрвера, але не патрэбны для прадакшна. Таму пазначэнне шляхоў да тэчак, файлаў, або саміх файлах. Павінна быць максімальна дакладным, напрыклад, радок cache будзе перакрываць усе файлы і папкі, якія маюць у назве cache , але вось sites/default/*/cache будзе кранацца забароны на індэксацыю толькі ў патрэбнай дырэкторыі - sites/default/.

Што не асіліў за час гэтага сеанса працы - гэта вывад памылак у Друпал 8 менавіта на экран брацузера пры працы з праектам. Атрымалася праглядаць памылкі толькі праз апач лог /var/log/apache2/error.log, і калі перанёс блог на новы сервер, такая магчымасць з’явілася на старонцы Друпал admin/reports/dblog

Што далей?

Напрыканцы допіса падзялюся задумамі, якія планую зрабіць на наступны этапе абнаўлення блогу:

  1. Аптымізаваць працу сістэмы кіравання базай дадзеных.
  2. Адладзіць аўтаматычнае аднаўленне ssl-сертыфікатаў і бэкапаў праз крон.
  3. Перакласці інтерфэйс блога на беларускую мову.
  4. Абкатаць функцыю параграфаў, якая дасць магчымасць прычосваць кантэнт рознымі спосабамі і захоўваць яго адаптыўнасць пад розныя фарматы экранаў яшчэ больш гнутка чым зараз.
  5. Падтрымка мікрафарматаў для паляпшэння пошука і для зручнага шарынга кантэнта блога ў сацыяльных сетках.
  6. Закачка фотак у адмінцы са зручным інлайн або драг-эн-дроп інтэрфэйсам.
  7. Адаптаваны вывад даты ў шапцы адразу пад назвай.
  8. Дадам кнопкі шэрынга на старонку паста.
  9. Апошняе, але не менш значнае, гэта новая рубрыка - “Удзельнічай”, дзе апішу, як можна ўдзельнічаць у блозе Талаша.

На гэтым завяршаю гэты гік допіс. Тэ - значыць, Талаш.

 

ps

Фоты у шапцы - Лагатып сістэмы кіравання сайтамі Друпал