Посмотрите эту тему, тут похожая проблема - ссылка
Еще есть модуль, который даст более детальную информацию о проблеме - ссылка
Краткая инструкция к модулю - ссылка
Может это совсем банально прозвучит. Но если память не изменяет, свежая установка дурпала по умолчанию включает тему "Stark" для админки и клиентской части. Это тема без стилей почти, выглядит, как будто стили не грузятся)
Посмотрите в админке по адресу /admin/appearance, какая тема выбрана в качестве административной. Выберите тему "Claro" для админки.
Для клиентской части скачайте готовую тему или создайте свою. Скриншот
Начиная с друпал 8, подход к работе значительно поменялся. Для объявления URL используется yml файл. Вот тут по ссылке базовый пример, как создать url и обрабатывать его. Я специально убрал все лишнее из модуля, что бы осталась только часть про URL. Пример модуля
Вы пишите про сертификацию ФСТЭК для Drupal и Symfony. Можете подробнее рассказать об этом если в теме? Инициализирует сертификацию сам ФСТЭК по собственному графику или допустим я создаю интернет магазин и могу им заявку отправить на сертификацию.
Может поможет этот репозиторий. Я его давно создал, можно за основу взять. Для добавления php 8.3 или 8.4 сделайте по аналогии, как для php 8.1 сделано. https://github.com/Konstantin-kr/Docker-WSL2
Вы же devilbox хотите использовать, что бы иметь возможность запускать разные версии служб php, mysql и т.п? Если да, то в докере это и так можно сделать, без сторонних решений.
Конфиг Ngnix для Drupal. Когда то давно нашел его на drupal.org. В конфиге нужно поменять некоторые вещи:
1. Указать свой домен в server_name.
2. Указать путь к сайту в root
3. Указать путь к соккету в fastcgi_pass. Конкретный путь загуглите, должно быть что-то по типу:
fastcgi_pass unix:/var/run/php8-fpm.sock;
В моем конфиге fastcgi_pass смотрит на контейнер докера.
Если картинки не переносили через скрипт, то в файлах ничего нет. Только в базе.
Восстанавливать из бекапа базу не обязательно, можно все, что перенесли так же удалить через функции дурпала. Он тогда и картинки удалит, если переносили.
"...Я не знаю в каких таблицах где и что хранится и в каком виде. Можно это переносить напрямую из таблицы в таблицу или в Друпал 11 несколько иной формат хранения статей, и т.д...."
Если использовать функции друпала для работы с материалами, то описанные проблемы не важны. Если в гугле вбить "drupal 7 get nodes by type", то ИИ гугла сразу выдает готовый код для получения материалов. Вы же сделали скрипт или скачали и разобрались в нем, тот, который тестирует подключение к базе. Получение и сохранение материалов в друпале не сложнее будет)
Я бы так делал. Код можно расположить в собственном модуле, в файле ***.theme подцепится на один из хуков, в целом как удобно будет.
1. На сервере, где mysql 8 поднял бы базу от друпал 7. Чуть выше в комментариях я про это описывал.
2. В конфиге settings.php подключаем использование 2 баз. Примерно так:
Про папку web имел ввиду вот такую структуру каталогов в папке сайта - скриншот. Если у вас так же, то ngnix нужно указать смотреть в папку web.
"...Про нестандартное название сокета, не поняла..."
Тут мне сложно понять, я с FastPanel не работал. Но там общий принцип для сайтов. В конфигурации ngnix, адрес сокета должен быть такой же, как в конфигурации php-fpm.
С чем у вас связано не стандартное название сокета?
--> fastcgi_pass unix:/var/run/test.ru.sock;
У вас в папке домена есть папка "web"? Если да, то настройте, что бы ngnix в нее смотрел. Вот так:
--> set $root_path /var/www/test_xx_usr/data/www/test.ru/web;
Бывают сборки друпала, где содержимое в папке web, а вендорные библиотеки не в ней.
Когда перезапускаете процесс php-fpm, то потом перезапустите ngnix. Почему-то бывает, что ngnix потом не корректно подхватывает php-fpm процесс.
Если у вас связка Ngnix + php-fpm, то в конфиги ngnix для вашего сайта укажите, какую версию php использовать. Это делается через "fastcgi_pass", пример:
В большинстве случаев проблем не будет при поднятии базы 5.7 версии на 8 версии. Если по шагам:
1. Сделайте дамп базы(экспорт), которая на sql 5.7
2. На сервере, где sql 8 создайте пустую базу и залейте(импорт) в нее созданный дамп
3. Настройте в конфиге друпала, подключение к двум БД (если в коде требуется работать сразу с двумя БД).
Наверное у каждого своя методика, кто, как привык
Если про себя рассказать, то для начла надо понять, какую страницу вы хотите ускорить. Затем нужно понять, какие таблицы из базы участвуют в получении информации. Далее нужно понять, по каким столбцам запрашивается инфа из базы (это выражение where в запросе).
Ну вот скажем условная таблица "продукты", в выражении where участвуют 2 столбца - "цена" и "наличие".
Значит можно попробовать добавить составной индекс.
Мне в свое время очень помогла статья от Niklan, вот ссылка. В ней подробно разбирается тема кеширования.
Вы пишите, что у вас выросла база данных, рассмотрите возможность добавления индексов в базе данных. Они очень сильно сокращают время получения данных.
На одном проекте в базе была таблица с 380 млн. записей. До добавления индексов, время выполнения запросов было от 10 сек до 3 минут в зависимости от запроса. После добавления индексов, время составило от 0.009 сек до 0,23 сек
Про вирусы правильно пишут, если есть возможность, то проверьтесь на вирусы. Наверное в таймвебе есть такая услуга.
Еще причина такой нагрузки может быть, если сайт дидосят. На днях у меня такое было. Посмотрите журнал запросов, обычно в названии файла есть это "access.log". В моем случае файл с логами увеличивался по 200 МБ в минуту.
Надо определится со стратегией кеширования. Что кешировать, когда и на сколько. Как по мне это важнее, чем, что использовать. Если кешировать все подряд, то 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, то там нечего хранить в гите, все правки делаются через админку. Так называемые чанки, шаблоны, сниппеты и плагины хранятся в базе.
Ошибка: Несоответствие определений сущности и/или поля
Посмотрите эту тему, тут похожая проблема - ссылка
Еще есть модуль, который даст более детальную информацию о проблеме - ссылка
Краткая инструкция к модулю - ссылка
Не запускается свежеустановленный Drupal 11
Может это совсем банально прозвучит. Но если память не изменяет, свежая установка дурпала по умолчанию включает тему "Stark" для админки и клиентской части. Это тема без стилей почти, выглядит, как будто стили не грузятся)
Посмотрите в админке по адресу /admin/appearance, какая тема выбрана в качестве административной. Выберите тему "Claro" для админки.
Для клиентской части скачайте готовую тему или создайте свою.
Скриншот
Обновление модуля D7-D10
Для замены drupal_goto() посмотрите на этот класс:
Symfony\Component\HttpFoundation\RedirectResponse;
У меня рабочего примера под рукой нет, но думаю контроллер должен возвращать что-то в этом духе:
return new RedirectResponse($url);
Обновление модуля D7-D10
Начиная с друпал 8, подход к работе значительно поменялся. Для объявления URL используется yml файл. Вот тут по ссылке базовый пример, как создать url и обрабатывать его. Я специально убрал все лишнее из модуля, что бы осталась только часть про URL. Пример модуля
Обновление модуля D7-D10
Добрый день.
Вы пишите про сертификацию ФСТЭК для Drupal и Symfony. Можете подробнее рассказать об этом если в теме? Инициализирует сертификацию сам ФСТЭК по собственному графику или допустим я создаю интернет магазин и могу им заявку отправить на сертификацию.
как пользоваться DevilBox Docker Deskttop php 8.3
Может поможет этот репозиторий. Я его давно создал, можно за основу взять. Для добавления php 8.3 или 8.4 сделайте по аналогии, как для php 8.1 сделано.
https://github.com/Konstantin-kr/Docker-WSL2
Вы же devilbox хотите использовать, что бы иметь возможность запускать разные версии служб php, mysql и т.п? Если да, то в докере это и так можно сделать, без сторонних решений.
Не запускается свежеустановленный Drupal 11
Конфиг Ngnix для Drupal. Когда то давно нашел его на drupal.org. В конфиге нужно поменять некоторые вещи:
1. Указать свой домен в server_name.
2. Указать путь к сайту в root
3. Указать путь к соккету в fastcgi_pass. Конкретный путь загуглите, должно быть что-то по типу:
fastcgi_pass unix:/var/run/php8-fpm.sock;
В моем конфиге fastcgi_pass смотрит на контейнер докера.
Переход с Drupal 7 на Drupal 11
"Потом я всё бросил и написал с помощью ИИ скрипт загрузки" - ужас.
Видимо такие текущие реалии наступают с ИИ
Переход с Drupal 7 на Drupal 11
Если картинки не переносили через скрипт, то в файлах ничего нет. Только в базе.
Восстанавливать из бекапа базу не обязательно, можно все, что перенесли так же удалить через функции дурпала. Он тогда и картинки удалит, если переносили.
Пробую Drupal 10. Перехожу с семёрки. Прошу подсказок.
При разработке лучше полностью отключить кеширование статики и twig шаблонов.
В файле development.services.yml пишем это:
Переход с Drupal 7 на Drupal 11
"...Я не знаю в каких таблицах где и что хранится и в каком виде. Можно это переносить напрямую из таблицы в таблицу или в Друпал 11 несколько иной формат хранения статей, и т.д...."
Если использовать функции друпала для работы с материалами, то описанные проблемы не важны. Если в гугле вбить "drupal 7 get nodes by type", то ИИ гугла сразу выдает готовый код для получения материалов. Вы же сделали скрипт или скачали и разобрались в нем, тот, который тестирует подключение к базе. Получение и сохранение материалов в друпале не сложнее будет)
Переход с Drupal 7 на Drupal 11
Я бы так делал. Код можно расположить в собственном модуле, в файле ***.theme подцепится на один из хуков, в целом как удобно будет.
1. На сервере, где mysql 8 поднял бы базу от друпал 7. Чуть выше в комментариях я про это описывал.
2. В конфиге settings.php подключаем использование 2 баз. Примерно так:
Не корректно работает друпал с FastCGI или с PHP-FPM. Используется FastPanel на облачном сервере
Про папку web имел ввиду вот такую структуру каталогов в папке сайта - скриншот. Если у вас так же, то ngnix нужно указать смотреть в папку web.
"...Про нестандартное название сокета, не поняла..."
Тут мне сложно понять, я с FastPanel не работал. Но там общий принцип для сайтов. В конфигурации ngnix, адрес сокета должен быть такой же, как в конфигурации php-fpm.
Не корректно работает друпал с FastCGI или с PHP-FPM. Используется FastPanel на облачном сервере
С чем у вас связано не стандартное название сокета?
--> fastcgi_pass unix:/var/run/test.ru.sock;
У вас в папке домена есть папка "web"? Если да, то настройте, что бы ngnix в нее смотрел. Вот так:
--> set $root_path /var/www/test_xx_usr/data/www/test.ru/web;
Бывают сборки друпала, где содержимое в папке web, а вендорные библиотеки не в ней.
Когда перезапускаете процесс php-fpm, то потом перезапустите ngnix. Почему-то бывает, что ngnix потом не корректно подхватывает php-fpm процесс.
Не корректно работает друпал с FastCGI или с PHP-FPM. Используется FastPanel на облачном сервере
Если у вас связка Ngnix + php-fpm, то в конфиги ngnix для вашего сайта укажите, какую версию php использовать. Это делается через "fastcgi_pass", пример:
Проблема с модулем мегрейт в Друпал 11 не могу подключится к базе Друпал 7
В большинстве случаев проблем не будет при поднятии базы 5.7 версии на 8 версии. Если по шагам:
1. Сделайте дамп базы(экспорт), которая на sql 5.7
2. На сервере, где sql 8 создайте пустую базу и залейте(импорт) в нее созданный дамп
3. Настройте в конфиге друпала, подключение к двум БД (если в коде требуется работать сразу с двумя БД).
Вопрос продвинутым знатокам Cache API
Наверное у каждого своя методика, кто, как привык
Если про себя рассказать, то для начла надо понять, какую страницу вы хотите ускорить. Затем нужно понять, какие таблицы из базы участвуют в получении информации. Далее нужно понять, по каким столбцам запрашивается инфа из базы (это выражение where в запросе).
Ну вот скажем условная таблица "продукты", в выражении where участвуют 2 столбца - "цена" и "наличие".
Значит можно попробовать добавить составной индекс.
Вопрос продвинутым знатокам Cache API
Мне в свое время очень помогла статья от Niklan, вот ссылка. В ней подробно разбирается тема кеширования.
Вы пишите, что у вас выросла база данных, рассмотрите возможность добавления индексов в базе данных. Они очень сильно сокращают время получения данных.
На одном проекте в базе была таблица с 380 млн. записей. До добавления индексов, время выполнения запросов было от 10 сек до 3 минут в зависимости от запроса. После добавления индексов, время составило от 0.009 сек до 0,23 сек
Нагрузка на процессор 100%
Про вирусы правильно пишут, если есть возможность, то проверьтесь на вирусы. Наверное в таймвебе есть такая услуга.
Еще причина такой нагрузки может быть, если сайт дидосят. На днях у меня такое было. Посмотрите журнал запросов, обычно в названии файла есть это "access.log". В моем случае файл с логами увеличивался по 200 МБ в минуту.
Какое кэширование лучше использовать для 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, то там нечего хранить в гите, все правки делаются через админку. Так называемые чанки, шаблоны, сниппеты и плагины хранятся в базе.