спонсори:

Drupal BackSide. Хаки. Інсталяція, Вдосконалення, Відновлення і Ремонт.


Дивно тільки, чому Бог заклавши у світ можливість несамовитої краси, досконалості й гармонії ніколи не дає їм зреалізуватися до кінця. Дуже дивно. Може, Він боїться?
Юрко ІЗДРИК "Подвійний Леон"

Давно планував і обіцяв написати цю статтю.
А сів писати - і щось важко скласти слова в речення.
Але раз обіцяв - мушу...

Drupal Tricks

Отже

15 Хаків Drupal.

    Проблеми Інсталяції

  1. PHP register_globals увімкнено хостером.
    На тих хостінгах, де хостер відмовляється вимикати - можна працювати і з ним(не дуже безпечно, але...)
    Знаходимо модуль system, файл system.install і міняємо
    $requirements['php_register_globals']['severity'] = REQUIREMENT_ERROR;
    на
    $requirements['php_register_globals']['severity'] = REQUIREMENT_WARNING;

  2. mbstring проблема.
    в файлі settings.php (можна і в default.settings.php)
    Додаєм строки(PHP)

    ini_set('mbstring.http_input','pass');
    ini_set('mbstring.http_output','pass');
  3. Проблема ввімкненого модуля, в випадках, коли після вмикання якогось ресурсоємкого модуля виникає так званий WSOD(White Screen Of Death) і друпал перестає працювати(найчастіше через нестачу пам'яті інтерпретатору php) таблиця system стане у нагоді.
    Приклад вимикання модуля help
    UPDATE `Ім'я бази даних`.`system` SET `status` = '0' WHERE CONVERT(`system`.`filename` USING utf8) = 'modules/help/help.module' LIMIT 1;
    Думаю, що легко зрозуміти з того ж самого phpmyadmin, що виставляння поля status в 0 - вимкне відповідний модуль. Нагадаю, що при значенні 32Mb для php - такі проблеми практично не виникають на сайтах малого та середнього навантаження.
  4. Таблиця variable
    Досить корисна таблиця, в якій більшість модулів і саме ядро друпал зберігають змінні. Для прикладу на цьому блозі в таблицю збережено більше 900 значень - такий собі Drupal registry. Але в контексті хаків цікавлять лише два:
    - поле clean_url - виставляння якого в нуль вимикає роботу чистих посилань (в моєму випадку зустрічалась проблема при переносі інсталяції на інший хостінг, де mod_rewrite був вимкнений),
    - error_level - вмикання різних варіантів відображення помилок та попереджень в друпалі - дуже і дуже корисно при діагностиці та початковому налагоджуванні.
  5. Вставка ноди в матеріал або шаблон, або куди завгодно в межах однієї інсталяції
    <?php
    $node
    = node_load(464);
    print
    node_view($node);
    ?>

    464 - це номер ноди.

    Більш розвинута тема в вигляді модуля

  6. Вставка блока в будь-яке місце(навіть в ноду)
  7. Інсталяція модуля search404 і коректна його настройка (особливо корисно в випадках старих сайтів)
  8. Оптимізація по швидкості.

  9. Javascript вниз розмітки. Це стосується не тільки друпала, а й будь-якої CMS, але вважаю за потрібне згадати про це тут.
    Для цього в шаблоні Вашої теми шукаєте файл page.tpl.php і переносите код вставки скриптів
    <?php print $scripts ?>
    перед самим закриванням HTML тега body
  10. вмикання модуля Throttle і обов'язкове обмеження таких модулів як
    Database logging (можна навіть вимкнути), Search, Statistics, Update Status, та інших, які автоматично вимикатимуться при досягненні вказаного Вами відсотка навантаження на сервер.
  11. Вмикаєм модулі
    • Queue Mail(+ Job queue),
    • Statistics Filter(в якому вимикаєм покази адміністратора взагалі),
    • Javascript Tools - пришвидшує роботу для користувача та зменшує навантаження на сервер,
    • DHTML Menu - реально пришвидшує як роботу з усіма меню сайта, так і зменшення кількості трафіку, що проходитиме через Ваш браузер і сервер,
    • Javascript Comments - пришвидшення сайту з точки зору користувачів-коментаторів і зменшення кількості лишніх оновлень сторінки.
  12. Завантаження файлів ( /admin/settings/file-system ) робимо публічно доступним - тоді відсутнє перехоплення скриптами даного процесу і відсутність навантаження на сервер.
  13. Кешування ( /admin/settings/performance ) ставим Нормальне, Компресію вимикаєм, Пакування CSS вмикаєм, Пакування JS вимикаєм(це зумовлено сумісністю для різних броузерів).
  14. В особливо складних і навантажених випадках інсталяція модуля cachestatic допоможе кардинально знизити навантаження на сервер.
  15. Якщо хостер жаліється на сильне навантаження на SQL сервер можна використати модуль db_tweaks, що наразі в статусі розробки, але в тестах показує досить хороші результати. В окремих випадках подібну роботу можна виконати через модуль system.install.
  16. Вмикаємо htaccess захист від hotlinking, щоб зменшити використання ресурсів Вашого сервера лівими користувачами.

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

Trackback URL для цього допису

http://itua.name/uk/trackback/578
Share this

Об'єднати вміст Об'єднати вміст

Propeople Expert

Партнери

експерименти

Rambler's Top100