Quantcast
Channel: Drupal.Practice.Development.Training - гіпертекст
Viewing all articles
Browse latest Browse all 8

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

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


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

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, щоб зменшити використання ресурсів Вашого сервера лівими користувачами.



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


Viewing all articles
Browse latest Browse all 8