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 for this post:

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

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
incognito's picture

корисно

корисно

my3uka's picture

drupal

Та...дядьку Андрій, що я без тебе робив я навіть не уявляю собі......
Дякую тобі.....продовжуй в тому ж дусі...треба піднімати наш УАнет.....

П.С. на buba09 якшо ти там зарегений мій голос уже там буде за тебе

Syndicate content Syndicate content

Партнери

Recent comments

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

Rambler's Top100