Надо определится со стратегией кеширования. Что кешировать, когда и на сколько. Как по мне это важнее, чем, что использовать. Если кешировать все подряд, то 20 гигов памяти улетят, не заметите)
Второй момент, надо понимать, когда обновлять кеш, при каких условиях, что бы пользователи видели обновленные страницы.
Что использовать?
memcached, apcu, redis - разницы особой нет, они делают то, что хранят кеш в оперативке. Я обычно redis использую, мне с ним как то удобнее работать.
Zend OPcache - тут хз на сколько прирост будет в скорости.
Обычно по такой схеме действую, список в порядке важности:
1. Включить логирование медленных запросов к базе (slow_query_log). Время выполнения у запросов (long_query_time) выставить 0.5 для начала. На самом деле тут от специфики сайта зависит. Я обычно начинаю с 0.5, если в лог попадет мало запросов, то уменьшаю время - 0.5, 0.4 и т.д. Если в логе запросов будет очень много, то увеличиваем время, что бы найти самые долгие.
Время выставляется в секундах, 0.5 это пол секунды.
На Drupal можно сделать любой магазин, ограничение только в фантазии). Это просто инструмент достижения цели.
Бизнес часто выбирает быстрые решения, так как они более дешевые. Условно установив тот же OpenCart/CS-Cart вы получаете сразу готовый интернет магазин, остается заполнить данные о компании и завести товары. На Drupal согласитесь, процесс посложнее будет).
Поработал с многими популярными системами, как разработчик. Опишу исключительно мое мнение. Порядок цифр просто для удобства восприятия, это не рейтинг)
1. Opencart.
Очень хороший базовый функционал, великое множество готовых модулей. Модули есть платные, есть бесплатные. Можно без программиста создать очень хороший магазин. У меня был на поддержке магазин с 62 тыс. просмотров в сутки, 3 тыс товаров. Магазин не тормозил.
Не спорю. В идеале все хранить в гите. Но всегда есть "но..."). Поддержка включает в себя не только разработка новых фич, но и банальные правки в админке сайта. скажем цену у товара поменять).
Самим клиентам без разницы, добавлен в гит их сайт или нет. Им главное результат.
Если взять тот же ModX, то там нечего хранить в гите, все правки делаются через админку. Так называемые чанки, шаблоны, сниппеты и плагины хранятся в базе.
Тут скорее вопрос удобства и зависит от ситуации. Каждый выбирает свой путь. В своей работе использую следующие подходы:
Вариант 1:
Если разработка с нуля и потом сайт на поддержке остается.
Разработка ведется на локальном сервере. Все наработки коммитятся в гит в тестовую ветку. Из тестовой ветки настроен автоматический деплой на тестовый сервер. На тестовом сервере сайт показывается клиенту перед сдачей.
Когда требуется перенести правки на живой сайт, то сливаем тестовую ветку в мастер ветку и там в ручном режиме запускаем деплой.
Перешел с OpenServer на Docker + WSL2. Тут ключевое, хранить все проекты в файловой системе линукса, который крутится в WSL2. Тогда все летать будет. Для себя отметил следующие плюсы:
1. Скорость работы сайта стала выше. Для примера, у мадженты есть команда пересборки статики, так вот, используя openserver время ее выполнения было 4-4,5 минуты. В докере 1-1,5 минуты. Про друпал сайты вообще молчу, мгновенно открываются.
спасибо за ответ)
можно конечно всем готовым пользоваться, как docker4drupal. но мне интересно понять проблему в моей сборке.
перейти на линукс не могу и не хочу. по причинам:
1. Мне нравится винда больше линукса
2. У меня за 1 системником сразу 2 пользователя активных, получается подключено 2 мыши, 2 клавы, 2 моника. так вот второй пользователь дизайнер и на линуксах не вариант ему работать)
Тоже как то разбирался, как отключить модуль через базу. Пару раз отключал модуль таким способом. У меня в записях так описано, начиная с Drupal 8, подход к удалению модуля через базу чуть изменился. По шагам:
Можно использовать библиотеку для конвертирования в webp. https://github.com/rosell-dk/webp-convert
Конвертирование производится при сохранении ноды, термина. Так же можно сразу создать несколько миниатюр для каталога, внутренней страницы и т.п. Удаление webp и миниатюр делается при удалении ноды, термина.
ну вот, начинаем костылями мериться)). про костыль вам не в обиду было сказано, не принимайте на свой счет.
js за костыль не считаю, но в конкретно в этом случае это не самое лучшее решение. search api мощный модуль, работаю с ним буквально пару недель. уверен, что просто не до конца понимаю его. по этому и задал тут вопрос
как-то костыльно это выглядит. уверен, что можно без js обойтись, должна быть возможность связать номер характеристики с search api. пока не могу понять как. если сам разберусь, то выложу тут решение или может, кто подскажет еще)
За последнее время несколько сайтов оптимизировал на друпале. В среднем уходило 20-30 часов работы. Самое проблемное, это перевести сайт на работу с современным форматом картинок(webp).
з.ы.: свои услуги не предлагаю, просто для информации написал.
ссылки у меня формируются в поиске примерно такие "www.site.ru/product-1". Я хочу добавить к ссылке № параметра, так - "www.site.ru/product-1?id=100". Для этого мне и нужно при поиске получать не только ноду, но и номер параметра
Попробуйте для начала избавится от JS ошибки. Вот тут http://joxi.ru/J2bBlOYTGQaVG2 требуется какое-то значение. Почему там нет значения, сказать не могу. Возможно после этого капча заработает.
Какое кэширование лучше использовать для drupal - APCu, Memcached, Zend OPcache, redis?
Привет.
Надо определится со стратегией кеширования. Что кешировать, когда и на сколько. Как по мне это важнее, чем, что использовать. Если кешировать все подряд, то 20 гигов памяти улетят, не заметите)
Второй момент, надо понимать, когда обновлять кеш, при каких условиях, что бы пользователи видели обновленные страницы.
Что использовать?
memcached, apcu, redis - разницы особой нет, они делают то, что хранят кеш в оперативке. Я обычно redis использую, мне с ним как то удобнее работать.
Zend OPcache - тут хз на сколько прирост будет в скорости.
Перегрузка подсчета к базе. Нужен рефакторинг имхо.
Привет.
Обычно по такой схеме действую, список в порядке важности:
1. Включить логирование медленных запросов к базе (slow_query_log). Время выполнения у запросов (long_query_time) выставить 0.5 для начала. На самом деле тут от специфики сайта зависит. Я обычно начинаю с 0.5, если в лог попадет мало запросов, то уменьшаю время - 0.5, 0.4 и т.д. Если в логе запросов будет очень много, то увеличиваем время, что бы найти самые долгие.
Время выставляется в секундах, 0.5 это пол секунды.
Выбор CMS для интернет-магазина
На Drupal можно сделать любой магазин, ограничение только в фантазии). Это просто инструмент достижения цели.
Бизнес часто выбирает быстрые решения, так как они более дешевые. Условно установив тот же OpenCart/CS-Cart вы получаете сразу готовый интернет магазин, остается заполнить данные о компании и завести товары. На Drupal согласитесь, процесс посложнее будет).
Выбор CMS для интернет-магазина
Приветствую.
Поработал с многими популярными системами, как разработчик. Опишу исключительно мое мнение. Порядок цифр просто для удобства восприятия, это не рейтинг)
1. Opencart.
Очень хороший базовый функционал, великое множество готовых модулей. Модули есть платные, есть бесплатные. Можно без программиста создать очень хороший магазин. У меня был на поддержке магазин с 62 тыс. просмотров в сутки, 3 тыс товаров. Магазин не тормозил.
Как правильно разрабатывать сайт?
можно в гите хранить, ни кто же не спорит)
Как правильно разрабатывать сайт?
Не спорю. В идеале все хранить в гите. Но всегда есть "но..."). Поддержка включает в себя не только разработка новых фич, но и банальные правки в админке сайта. скажем цену у товара поменять).
Самим клиентам без разницы, добавлен в гит их сайт или нет. Им главное результат.
Если взять тот же ModX, то там нечего хранить в гите, все правки делаются через админку. Так называемые чанки, шаблоны, сниппеты и плагины хранятся в базе.
Как правильно разрабатывать сайт?
Привет.
Тут скорее вопрос удобства и зависит от ситуации. Каждый выбирает свой путь. В своей работе использую следующие подходы:
Вариант 1:
Если разработка с нуля и потом сайт на поддержке остается.
Разработка ведется на локальном сервере. Все наработки коммитятся в гит в тестовую ветку. Из тестовой ветки настроен автоматический деплой на тестовый сервер. На тестовом сервере сайт показывается клиенту перед сдачей.
Когда требуется перенести правки на живой сайт, то сливаем тестовую ветку в мастер ветку и там в ручном режиме запускаем деплой.
Помогите настроить корректно Last Modified
На днях добавлял Last Modified для Drupal 8.7. Может поможет.
В своем модуле:
Файл: MY_MODULE.services.yml
Как добавить атрибуты в тег определенного типа материала
Используйте хук: hook_preprocess_html()
<?php
/**
* Implements hook_preprocess_html().
*/
function ВАШАТЕМА_preprocess_html(&$variables) {
Не оторажаются изменения на сайте при отключенном кэше Drupal 9
Приветствую.
Вам нужно включить режим разработки. Для этого:
1. Откройте файл
\web\sites\default\settings.php
Раскомментируйте этот код
Здесь есть люди, которые используют подсистему Ubuntu для Windows?
Привет.
Перешел с OpenServer на Docker + WSL2. Тут ключевое, хранить все проекты в файловой системе линукса, который крутится в WSL2. Тогда все летать будет. Для себя отметил следующие плюсы:
1. Скорость работы сайта стала выше. Для примера, у мадженты есть команда пересборки статики, так вот, используя openserver время ее выполнения было 4-4,5 минуты. В докере 1-1,5 минуты. Про друпал сайты вообще молчу, мгновенно открываются.
Docker. Периодические тупит открытие страниц.
спасибо за ответ)
можно конечно всем готовым пользоваться, как docker4drupal. но мне интересно понять проблему в моей сборке.
перейти на линукс не могу и не хочу. по причинам:
1. Мне нравится винда больше линукса
2. У меня за 1 системником сразу 2 пользователя активных, получается подключено 2 мыши, 2 клавы, 2 моника. так вот второй пользователь дизайнер и на линуксах не вариант ему работать)
Docker. Периодические тупит открытие страниц.
ага, знаю об этой проблеме, сталкивался, когда docker осваивал.
![](/sites/default/files/inline/images/2023/90930/docker.jpg)
у меня все проекты в файловой системе линукса. на скриншоте показал.
Drupal 9 отключение модуля в базе данных
Приветствую.
Тоже как то разбирался, как отключить модуль через базу. Пару раз отключал модуль таким способом. У меня в записях так описано, начиная с Drupal 8, подход к удалению модуля через базу чуть изменился. По шагам:
Что делать с форматом изображений webp?
Можно использовать библиотеку для конвертирования в webp. https://github.com/rosell-dk/webp-convert
Конвертирование производится при сохранении ноды, термина. Так же можно сразу создать несколько миниатюр для каталога, внутренней страницы и т.п. Удаление webp и миниатюр делается при удалении ноды, термина.
Drupal 8: Search API. Программно добавить данные в индекс.
передавать через get параметр
Drupal 8: Search API. Программно добавить данные в индекс.
ну вот, начинаем костылями мериться)). про костыль вам не в обиду было сказано, не принимайте на свой счет.
js за костыль не считаю, но в конкретно в этом случае это не самое лучшее решение. search api мощный модуль, работаю с ним буквально пару недель. уверен, что просто не до конца понимаю его. по этому и задал тут вопрос
Drupal 8: Search API. Программно добавить данные в индекс.
как-то костыльно это выглядит. уверен, что можно без js обойтись, должна быть возможность связать номер характеристики с search api. пока не могу понять как. если сам разберусь, то выложу тут решение или может, кто подскажет еще)
Не работает роутинг
Привет. вот тут поправь.
Drupal 8: Search API. Программно добавить данные в индекс.
нет, к полям отношение не имеет. если было бы поле, то я через интерфейс search api его добавил и проблем не было).
Drupal 8: Search API. Программно добавить данные в индекс.
я характеристику индексирую. по характеристикам поиск работает, но я не могу получить номер характеристики. есть только номер ноды
Оптимизация сайта
За последнее время несколько сайтов оптимизировал на друпале. В среднем уходило 20-30 часов работы. Самое проблемное, это перевести сайт на работу с современным форматом картинок(webp).
з.ы.: свои услуги не предлагаю, просто для информации написал.
Drupal 8: Search API. Программно добавить данные в индекс.
так у меня нет этого параметра). мне его для начала нужно связать с search api, что бы search api мне его выдавал при поиске. про это вопрос и был.
Drupal 8: Search API. Программно добавить данные в индекс.
ссылки у меня формируются в поиске примерно такие "www.site.ru/product-1". Я хочу добавить к ссылке № параметра, так - "www.site.ru/product-1?id=100". Для этого мне и нужно при поиске получать не только ноду, но и номер параметра
Ошибки при заполнении формы
Здравствуйте.
Попробуйте для начала избавится от JS ошибки. Вот тут http://joxi.ru/J2bBlOYTGQaVG2 требуется какое-то значение. Почему там нет значения, сказать не могу. Возможно после этого капча заработает.