Как стать автором
Обновить
0

Drupal *

Система управления сайтом

Сначала показывать
Порог рейтинга
Уровень сложности

Создание шаблона VPS с Drupal 9 на Centos 8

Время на прочтение7 мин
Количество просмотров3.4K
Мы продолжаем расширять наш маркетплейс. Недавно мы рассказывали, как сделали образ Gitlab, а на этой неделе в нашем маркетплейсе появился Drupal.

Рассказываем, почему выбрали именно его и как создавался образ.



Drupal — удобная и мощная платформа для создания любых типов сайтов: от микросайтов и блогов до крупных социальных проектов, используемая также как основа для веб-приложений, написанная на языке PHP и использующая в качестве хранилища данных реляционные базы данных.

Drupal 9 включает в себя все особенности реализованные в версии 8.9. Ключевое отличие версии 9 от версии 8 состоит в том, что для платформы будут выпускаться обновления и исправления безопасности и после ноября 2021 года. Также в версии 9 упростили процесс обновления, делая процесс обновления с версии 8 еще проще.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии5

Новости

Обзор CMS DRUPAL 9

Время на прочтение14 мин
Количество просмотров24K

В этой статье я решил поговорить о создании сайтов на базе CMS Drupal. Работаю я с этой системой давно и считаю ее одной из лучших среди существующих «движков» сайтов. За исключением случаев, когда действительно необходимы какие-то узкоспециализированные решения эту CMS я рекомендую и своим клиентам.

Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии32

50 оттенков безопасности Друпала

Время на прочтение5 мин
Количество просмотров8.9K
  1. Для хеширования паролей используется модифицированная версия phpass, от которой на официальном сайте открестились. Но менять механизм не спешат [#1845004].
  2. Не желают даже предоставить возможность выбора механизма хеширования [#2939888].
  3. Число итераций для стойкости хеширования не обновлялось больше 7 лет [#1850638], хотя предполагалось увеличение итераций не реже чем в 2 года [#1203852].
  4. При использовании PostgreSQL хеши паролей сравниваются без учёта регистра [#2475539].
  5. Также с PostgreSQL есть проблемы с поддержкой SSL [#850600].
  6. Минимально допустимая версия PostgreSQL 9.2, которая уже давно без поддержки безопасности [#2846994].

Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии21

Drupal 8 + Varnish: Кешируем HTML правильно

Время на прочтение8 мин
Количество просмотров10K
Drupal 8 – это самый свежий релиз CMS Drupal. Varnish – это HTTP reverse proxy cache, надстройка над вебприложением, которая позволяет кешировать HTTP ответы в ОЗУ сервера.

Когда мы ставим Varnish перед Drupal’ом (либо любым другим вебприложением), схема обработки входящего HTTP запроса трансформируется следующим образом.

image

Еще во времена Drupal 6 и 7 с помощью Varnish’а было очень удобно кешировать статические ресурсы (рисунки, CSS, JavaScript файлы). Но были пробемы с кешированием HTML страниц – не существовало удобного механизма выборочной инвалидации кеша. Оставалось только либо сознательно отдавать устаревший кеш, либо полностью очищать кеш в Varnish при каких-либо изменениях в Drupal. Оба подхода имели свои недостатки.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

Истории

Migrate API и с чем его едят. На примере миграции форума Drupal 7. Часть 1

Время на прочтение14 мин
Количество просмотров6.3K
Migrate API и с чем его едят. На примере миграции форума по Drupal 7. Часть 1
Данное руководство является переводом статьи.

Хотелось бы поделиться своим опытом миграции форума с Drupal 7 на Drupal 8, а также рассказать о проблемах, с которым пришлось столкнуться во время этого процесса, а также об инструментах, которые я использовал. Кроме этого я расскажу о подводных камнях, которые встретились при миграции форума и терминов к нему.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии7

Drupal и WordPress — сравнение, аналогии, сходства, различия

Время на прочтение18 мин
Количество просмотров45K
Целью данной публикации является сравнение возможностей двух популярных CMS — Drupal 7 и WordPress (последней на данный момент версии 4.6). Ставилась цель рассмотреть CMS с точки зрения программиста и сравнить основные API обеих систем, провести аналогии, сделать выводы о том, какая система лучше подходит для каких задач. Публикация не претендует на полноту изложения всех возможностей CMS, а автор будет благодарен за коррективы и дополнения.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии68

Drupal Composer рецепты

Время на прочтение5 мин
Количество просмотров14K
В этом посте мы хотим поделиться некоторыми рецептами использования Composer, которые мы накопили работая с Drupal проектами созданными с помощью Drupal Composer template. Так же мы рассмотрим как перевести существующий Drupal проект на Composer.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии13

Критические уязвимости в Drupal: подробности и эксплоиты

Время на прочтение3 мин
Количество просмотров10K
image

Команда безопасности проекта Drupal опубликовала исправления для целого ряда критических уязвимостей. Ошибки безопасности затрагивают как популярные плагины, так и ядро системы.

Уязвимости обнаружены в модулях RESTful Web Services (используется для предоставления REST API к функциям Drupal), Coder (модуль анализа кода и миграции для старых версий) и Webform Multiple File Upload (добавляет компонент формы для загрузки пользовательских файлов). В ядре исправлена уязвимость httpoxy, о которой мы уже писали в блоге.

Согласно бюллетеню безопасности PSA-2016-001 уязвимости затрагивают до 10000 сайтов, на которых установлены указанные модули. Бюллетень PSA-2016-002 подтверждает наличие уязвимости httpoxy в восьмой ветке Drupal, где используется сторонняя библиотека Guzzle для осуществления HTTP-запросов, при этом более ранние версии Drupal 7.x не подвержены данной уязвимости.

В сети уже опубликованы эксплоиты, использующие данные уязвимости. В нашем сегодняшнем материале — их более подробное описание.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии3

Опыт перехода сайта на Single Page Application с упором на SEO

Время на прочтение5 мин
Количество просмотров55K

Привет всем.


Мы классический web 2.0 сайт сделаный на Drupal. Можно сказать, что мы медиа сайт, т.к. у нас очень много всевозможных статей, и постоянно выходят новые. Мы уделяем много внимания SEO. У нас для этого даже есть специально обученные люди, которые работают полный рабочий день.


К нам заходит более 400k уникальных пользователей в месяц. Из них 90% приходит из поиска Google.


И вот уже почти полгода мы разрабатывали Single Page Application версию нашего сайта.


Как вы уже наверное знаете, JS это вечная боль сеошников. И нельзя просто так взять и сделать сайт на JS.


Перед тем как начать разработку мы начали исследовать этот вопрос.
И выяснили, что общепринятым способом является отдача google боту уже отрисованой версии страницы.
Making AJAX applications crawlable


Также выяснилось, что этот способ более не рекомендуется Google и они уверяют, что их бот умеет открывать js сайты, не хуже современных браузеров.


We are generally able to render and understand your web pages like modern browsers.

Т.к. на момент принятия нашего решения Google только-только отказались от подобного метода, и еще никто не успел проверить как Google Crawler на самом деле индексирует сайты сделаные на JS. Мы решили рискнуть и сделать SPA сайт без дополнительной отрисовки страниц для ботов.

Читать дальше →
Всего голосов 61: ↑50 и ↓11+39
Комментарии93

Drupal: ajax_facets и history API

Время на прочтение5 мин
Количество просмотров5.5K
Наверное, каждый веб разработчик сталкивался с необходимостью в реализации поиска на сайте. Довольно распространенное решение — Apache Solr. В мире Drupal разработки это не исключение. Для интеграции Solr с Drupal и реализации фасетного поиска существуют модули search_api, search_api_solr и facetapi. Но в большинстве случаев нам бы хотелось, чтобы результаты поиска и фасетные фильтры обновлялись без перезагрузки страницы, то есть ajax'ом. И, как обычно в мире Drupal, на d.org найдется какой-нибудь проверенный временем и пользователями модуль (а может и не проверенный, как повезет), который делает то, что нам нужно. В данном случае это ajax_facets.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии1

Анализ подходов для создания лендингов и лонгридов в Drupal

Время на прочтение15 мин
Количество просмотров14K

image


В статье сравниваются актуальные решения для создания неоднородных публикаций и лэндингов, а также лонгридов в административном интерфейсе CMS Drupal. Под неоднородностью понимается возможность для внедрения в текст в произвольном месте произвольных интерактивных элементов, таких как медиа-врезок, списков релевантных материалов, опросников и прочих нетекстовых элементов. Приведен авторский топ на основе анализа 16 критичных параметров.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии21

Что случилось с hook_menu в Drupal 8?

Время на прочтение8 мин
Количество просмотров7.9K


В связи с недавним выходом стабильной версии Drupal 8, решил внести свой небольшой вклад, и перевести небольшую статью. Это очень вольный перевод статьи What Happened to Hook_Menu in Drupal 8? от Lullabot'ов. Надеюсь, что кому-нибудь пригодится.

В Drupal 7 и более ранних версиях, hook_menu был как швейцарский нож. Он отвечал практически за все: пути страниц, обработчики меню, вкладки и локальные задачи, контекстные ссылки, управление доступом, аргументы и параметры, обработчики форм, и даже устанавливал пункты меню. В моей книге, это самый часто используемый hook из всех. Я не знаю, ни одного модуля в котором, я не реализовывал бы hook_menu.

Но, в Drupal 8 все изменилось. Этого очень важного hook'a больше нет, и теперь все эти задачи решаются отдельно, используя систему YAML файлов, в которых нужно описать метаданные о каждом элементе и соответствующие ему PHP классы, которые обеспечивают логику.

В новой системе есть смысл, но она может показаться запутанной, тем более что API менялся несколько раз, в течении длительной разработки Drupal 8, и документация в настоящее время, не соответствует действительности. В этой статье будет рассказано как работает новая система.

Так же я хочу рассказать о ситуациях с которыми я столкнулся, во время переноса своего модуля с Drupal 7 на Drupal 8 и приведу примеры кода, до и после переноса.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Вышел Drupal 8 — критический взгляд

Время на прочтение3 мин
Количество просмотров39K

После четырёх лет разработки наконец вышла стабильная версия Drupal 8. При этом реакция сообщества оказалась довольно разделенной, одни считают, что этот релиз имеет все шансы полностью свергнуть и заменить Wordpress, другие, что после стольких лет Drupal растерял большинство пользовательской базы и вряд ли соберет ее обратно. Вся причина в иной идеологии чем в других CMS, Drupal 8 делает упор на расширяемость и удобство разработки вместо просто редактирования контента. Как результат по-настоящему оценить его можно будет только года через два, когда уже наполнится база модулей. Но раз он уже вышел, то попробуем посмотреть на ту функциональность, какая есть с точки зрения разработки уже сегодня.
Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии51

Ближайшие события

Вышел Drupal 8

Время на прочтение1 мин
Количество просмотров16K


Сегодня, после почти 5 лет разработки, вышел Drupal 8, новая версия популярной системы управления сайтом. Это самое крупное обновление за всю историю Drupal. Вот список нескольких изменений из почти сотни улучшений в Drupal 8:
Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии22

Кэш в Drupal от А до Я

Время на прочтение10 мин
Количество просмотров24K
Введение

Страницы сайтов становятся всё больше по размеру, и встаёт вопрос асинхронной загрузки контента на них. Но если для изображений существует библиотека для их простой загрузки после загрузки основной страницы, то с асинхронной загрузкой HTML частей страницы (блоков), всё намного сложней. Например: для реализации асинхронной загрузки блоков в Drupal без потери производительности сайта необходимо понимать, как работает кэширование, как его использовать и как оптимизировать. А уже после реализовать по намеченному плану «Lazy Loading» загрузку блоков сайта.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии8

Дайджест интересных материалов из мира Drupal #14

Время на прочтение5 мин
Количество просмотров9.2K
Мы собираем полезные статьи и свежие новости из мира Drupal и делимся с вами раз в месяц. Встречайте октябрьский выпуск!



По-русски


  1. Никита Малышев активно делится своим опытом работы с Drupal 8. Самая свежая заметка на данный момент: Drupal 8 Block Plugin API. Стоит обратить внимание, ведь уже вышел релиз Drupal 8 rc2.
  2. Неплохо поживает и форк друпала Backdrop. Егор Марценюк поделился портом темы Bootstrap на Backdrop CMS.
  3. Для тех, кто ещё не печатает команды драша на автомате, будет полезна заметка Автодополнение команд Drush.
  4. Возвращаясь непосредственно к друпалу, вечно актуальная тема создания сущностей из кода в блоге nightdevel.
  5. Там же вышла заметка о том, как реализовать выбор цвета из палитры в своей форме.
  6. Кажется, синее сердце скоро снова зажжётся на территории России: сибирское друпал-сообщество запланировало DrupalCamp Siberia в Новосибирске. Пока детали уточняются, вы можете отправить предварительную заявку со своими пожеланиями.


Drupal Lite


  1. В лучшей книге про Drupal 7 уже написано 6 глав. Очень рекомендуем!
  2. Ещё один проект на GitBook: набор полезных рекомендаций для разработчиков Drupal Organised.
  3. Важное видео для тех, кто только начинает работать с друпалом и потерялся в тысячах его модулей. Подробная текстовая версия на русском, хоть и немного устарела, но тоже подойдёт: 1, 2, 3.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии10

Дайджест интересных материалов из мира Drupal #12

Время на прочтение5 мин
Количество просмотров6.8K
Всем привет!

Самое интересное и полезное из мира Drupal за прошедший месяц в нашем двенадцатом выпуске.


Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии3

Сравнение скорости исполнения кода Drupal для PHP 5.3-5.6 и 7.0. «Битва оптимизаторов кода» apc vs xcache vs opcache

Время на прочтение10 мин
Количество просмотров37K




В продолжение статьи:

Ускорение и оптимизация PHP-сайта. Какие технологии стоит выбирать при настройке сервера под PHP




В отличии от предыдущего материала, в этой статье сделан упор на сравнение скорости отклика и интерпретации кода для различных версий PHP, включая PHP 7 beta3.

Для ранних версий PHP, проведено тестирование между оптимизаторами кода apc, xcache и opcaсhe.
Эта статья не содержит тестов на производительность, таких как нагрузочные тесты ab и siege. Возможно, об этом я напишу в одной из следующих статей.
В данном случае, меня не интересует сколько страниц за секунду способна сгенерировать та или иная версия php-интерпретатора, скорее то, с какой скоростью она сгенерирует мне страницу и с какой задержкой.
В данном случае разница в том, что тесты производительности замеряют отношение скорости интерпретатора к общим ресурсам сервера, а так же подготовленности других связанных компонентов web-системы к работе на повышенных нагрузках.
Остановимся на скорости и отклике. Очевидно что производительность зависит от скорости, но высокая скорость не может гарантировать высокую производительность. Это, возможно, связанно с тем, что недостаточно хорошо настроен web-сервер или база данных, а также с какими-то не было ограничениями, например сетевого стека.
Что бы не заниматься попыткой объять необъятное, мы просто замерим скорость и отклик работы интерпретаторов php, на мощном сервере без нагрузки, с одинаковыми конфигурациями web-сервера, базы данных и операционной системы для всех испытуемых. Используем конфигурацию php-fpm + nginx. База данных MariaDB. Все технические детали скрыты под спойлером ниже.

Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии41

Ускорение и оптимизация PHP-сайта. Какие технологии стоит выбирать при настройке сервера под PHP

Время на прочтение7 мин
Количество просмотров55K


Эта статья поможет ответить на вопросы владельцев, разработчиков и системных администраторов PHP-сайтов:



  • Как оптимизировать сайт и ускорить его работу?
  • С какой скоростью будет и может работать сайт, в соответствии с теми технологиями на которых он будет запущен?
  • Какие технологии следует использовать настраивая сервер или VPS?


Типичная проблема:
В какой-то момент сайт начинает открываться и работать слишком медленно. Бывает, что хостинговая компания блокирует сайт за превышение нагрузки или перерасход ресурсов. Что же делать в такой ситуации?

Может быть, сайт стал пользоваться слишком высокой посещаемостью или был установлен какой-то ресурсоёмкий модуль, совершается атака или сайт заражен вирусом. Так или иначе, но у всех этих случаев есть кое-что общее и это проблема всех сайтов на всех хостингах.

И если говорить о серверах для PHP, то такой проблемой является способ исполнения php кода, ровно как и другие значимые настройки окружения на сервере.
Не зависимо от того, есть ли проблема в вашем коде или её нет, высокая у вас посещаемость или нет, от настроек сервера зависит очень многое. Что бы все сказанное не звучало пустыми словами и была написана эта статья.

В этом обзоре я протестирую только что установленный сайт на одном из самых распространённых движков управления контентом Drupal 7.33.

Для теста выбрана лишь одна составляющая php-хостинга. Мы будем тестировать web-серверы Nginx и Apache2, модули mod_php и php-fpm, версии php php53 и php56, посмотрим, как влияют оптимизаторы apc и opcache на скорость работы сайта.

Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии59

Дайджест интересных материалов из мира Drupal #8

Время на прочтение5 мин
Количество просмотров8.6K
Всем привет!

Самое интересное и полезное из мира Drupal за прошедшие 3 недели в нашем восьмом выпуске.

image
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии1
1
23 ...

Вклад авторов