Оптимізація роботи Drupal

Оптимізація роботи Drupal та модулів сайту інші налаштування для прискорення роботи сайту.
Робота високо-навантаженних сайтів.

Оптимізація роботи Drupal → Допоможіть зробити сайт валідним

Вже на фінальній прямій мій невеличкий проект сайту турагенції.

Валідар видає всього дві помилки. Але і їх хотів би позбутися.

Дивлюся в те місце в page.tpl.php, то ніби все, що відкривалося закрите:

<div class="Header">
          <?php
          // Prepare header
          $site_fields = array();
          if ($site_name) {
           $site_fields[] = check_plain($site_name);
          }
         if ($site_slogan) {
            $site_fields[] = check_plain($site_slogan);
          }
          $site_title = implode(' ', $site_fields);
      //    if ($site_fields) {
      //     $site_fields[0] = '<span>'. $site_fields[0] .'</span>';
      //    }
          $site_html = implode(' ', $site_fields);
          if ($logo || $site_title) {
            print '<h1><a href="'. check_url($front_page) .'" title="'. $site_title .'" id="sitename">';
            if ($logo) {
              print '<img src="'. check_url($logo) .'" alt="'. $site_title .'" id="logo" />';
           }
    //       print $site_html .'  </a></h1>';
         }
        ?>
 
          </div>

Але Валідатор видає:

end tag for "a" omitted, but OMITTAG NO was specified

end tag for "h1" omitted, but OMITTAG NO was specified

Може хтось зустрічав подібне?

Оптимізація роботи Drupal → Изменение запроса VIEWS

Всем доброго времени суток.

Для своих целей я поставил модуль: http://drupal.org/project/family
Код не идеальный но функционал меня в принципе устраивает. ПОэтому есть желание его отрефакторить и исползовать на сайте. Насколько могу судить, модуль этот сделан с помощью Views.

Но проблема заключается в том, что после того, как я экспортнул в него свои данные (окло 60 тыс записей), то он начал тормозить. Тормозят, главным образом несколько запросов, которые я и хочу заменить, но не знаю как это сделать. В это и прошу Вашей помощи.

Запрос первый:

SELECT node.nid AS nid, family_individual.lastname AS family_individual_lastname, family_individual.firstname AS family_individual_firstname, family_individual.middlename AS family_individual_middlename, family_individual.gender AS family_individual_gender, family_individual.birthdate AS family_individual_birthdate, family_individual.deathdate AS family_individual_deathdate
FROM dru_node node
INNER JOIN dru_family_individual family_individual ON node.nid = family_individual.nid
WHERE (
node.type
IN (
'family_individual'
)
)
AND (
node.STATUS <>0
)
ORDER BY family_individual_lastname DESC
LIMIT 41840 , 40

В принципе он уже мною оптимизирован и выполняется 1 сек. Но это все равно чересчур много.
//До оптимизации там был LEFT JOIN и не было индексов некоторых.

Запрос, который я хотел бы использовать вместо него:

SELECT
       family_individual.nid AS nid,
       family_individual.lastname AS family_individual_lastname,

Оптимізація роботи Drupal → Drupal + Xcache + Cacherouter + FreeBSD

Великі проекти на Друпалі вимагають гарно продуманої системи кешування, щоб витримати наплив великої кількості користувачів.
Для цього базова система кешування, яка реалізована в друпалі - не підходить.

Необхідним мінімумом є використання op_code кешерів, що оптимізують і прекомпілюють php скрипти і зберігають їх в оперативній пам'яті, а також кешери, які зберігають вміст таблиць cache* (ну або в перекладі на друпал - вміст cache bins) в оперативній памяті.
для op_code кешування можна використовувати xcache, apc, eAccelerator і інші, а для зберігання cache bins - xcache, memcache.
Також зверху над apache можна встановлювати реверсинвні проксі (nginx, varnish, squid), мова про які піде в майбутньому.
В цій статті мова йтиме про op_code кешер і кешер змінних xcache.

Оптимізація роботи Drupal → DrupALL - зборка від drupal.kiev.ua

drupall.pngЗборка має український,російський інсталятор та деякі найбільш корисні модулі.
Зборку робив для себе, але можливо вона допоможе іншим.
Планую й надалі підтримувати актуальні версії модулів та перекладу.
Сподіваюсь на зворотній зв’язок.

Оптимізація роботи Drupal → Пошукова оптимізація друпал сайту.

Як правильно "просунути" сайт побудований на Друпалі. Внутрішні і зовнішні чиники що впливають на рейтинг сайту в пошуковиків. Де потрібно прописувати теги, модулі які допомагають розкрутити сайт.

Оптимізація роботи Drupal → Мультисайтинг (одни файлы, разные базы)

Гибкость и мощность Друпала можно оценить при разработке и администрирования одного сайта, но это не все возможности Друпала, эта система может легко развернуться на несколько проектов при минимальных затратах времени и усилий.

Мультисайтинг это когда несколько сайтов используют общие ресурсы. Из всех видов мультисайтинга можно выделить 2:

  • с общими файлами — разные сайты используют одни и те же файлы, но работают с разными базами. При этом облегчается обслуживание сайта. Потому что-то нужно обновлять всего одну копию файлов и одновременно обновляются все сайты. Экономится место на диске сервера (и бекап-диска).
  • с общей таблицей базы данных — сайты имеют свои наборы файлов Друпала и модулей. Возможно, даже расположены на разных серверах, но при этом они используют одну базу данных (один пользователь, один пароль). Собственно использование всех таблиц на обоих сайтах это больше исключение, чем правило, в большинстве случаев каждый сайт имеет часть своих таблиц и часть общих. В общие обычно попадают сессии и пользователи, тогда на нескольких сайтах можно регистрироваться с одной учетной записью.

Оптимізація роботи Drupal → Оптимизируем Друпал: Видимость блоков

Для больших друпаловских сайтов обычная вещь иметь большое количество регионов для блоков. Разные регионы для разных разделов тоже частая практика. В общем случае, вы имеете шаблон главной страницы (page-front.tpl.php), где вы водите большую часть разнообразных регионов, и шаблон рядовых страниц, где количество регионов не так велико (page.tpl.php):

Определение новых регионов супер простое, нужно всего лишь добавить новую запись в .info файл вашей темы:

regions[ad_top] = Ad Top
regions[ad_bottom] = Ad Bottom
regions[front_sidebar] = Front Sidebar
regions[sidebar_ad] = Sidebar Ad

Оптимізація роботи Drupal → Увеличение производительности сайта

1 . Производить как можно меньше HTTP запросов;
2 . Воспользоваться услугами сетей доставки контента (Content Delivery Network), например Akamai;
3 . Не пренебрегать HTTP заголовком "Expires" или "Cache-control";
4 . Отдавать страницы в сжатом виде (например, mod_gzip);
5 . Указывать ссылки на файлы с таблицами стилей (link href) в начале документа;
6 . Указывать ссылки на JavaScript файлы (script src) в конце документа;
7 . Не использовать вычислимые выражения (expression) в CSS;
8 . Хранить JavaScript и CSS вставки в виде отдельных файлов;