Дивно тільки, чому Бог заклавши у світ можливість несамовитої краси, досконалості й гармонії ніколи не дає їм зреалізуватися до кінця. Дуже дивно. Може, Він боїться?
Юрко ІЗДРИК "Подвійний Леон"
Юрко ІЗДРИК "Подвійний Леон"
Давно планував і обіцяв написати цю статтю.
А сів писати - і щось важко скласти слова в речення.
Але раз обіцяв - мушу...
Отже
15 Хаків Drupal.
- PHP register_globals увімкнено хостером.
На тих хостінгах, де хостер відмовляється вимикати - можна працювати і з ним(не дуже безпечно, але...)
Знаходимо модуль system, файл system.install і міняємо
$requirements['php_register_globals']['severity'] = REQUIREMENT_ERROR;
на
$requirements['php_register_globals']['severity'] = REQUIREMENT_WARNING;
- mbstring проблема.
в файлі settings.php (можна і в default.settings.php)
Додаєм строки(PHP)ini_set('mbstring.http_input','pass');
ini_set('mbstring.http_output','pass'); - Проблема ввімкненого модуля, в випадках, коли після вмикання якогось ресурсоємкого модуля виникає так званий 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 - такі проблеми практично не виникають на сайтах малого та середнього навантаження. - Таблиця variable
Досить корисна таблиця, в якій більшість модулів і саме ядро друпал зберігають змінні. Для прикладу на цьому блозі в таблицю збережено більше 900 значень - такий собі Drupal registry. Але в контексті хаків цікавлять лише два:
- поле clean_url - виставляння якого в нуль вимикає роботу чистих посилань (в моєму випадку зустрічалась проблема при переносі інсталяції на інший хостінг, де mod_rewrite був вимкнений),
- error_level - вмикання різних варіантів відображення помилок та попереджень в друпалі - дуже і дуже корисно при діагностиці та початковому налагоджуванні. - Вставка ноди в матеріал або шаблон, або куди завгодно в межах однієї інсталяції
<?php
$node = node_load(464);
print node_view($node);
?>464 - це номер ноди.
Більш розвинута тема в вигляді модуля
- Вставка блока в будь-яке місце(навіть в ноду)
- Інсталяція модуля search404 і коректна його настройка (особливо корисно в випадках старих сайтів)
- Javascript вниз розмітки. Це стосується не тільки друпала, а й будь-якої CMS, але вважаю за потрібне згадати про це тут.
Для цього в шаблоні Вашої теми шукаєте файл page.tpl.php і переносите код вставки скриптів
<?php print $scripts ?>
перед самим закриванням HTML тега body - вмикання модуля Throttle і обов'язкове обмеження таких модулів як
Database logging (можна навіть вимкнути), Search, Statistics, Update Status, та інших, які автоматично вимикатимуться при досягненні вказаного Вами відсотка навантаження на сервер. - Вмикаєм модулі
- Queue Mail(+ Job queue),
- Statistics Filter(в якому вимикаєм покази адміністратора взагалі),
- Javascript Tools - пришвидшує роботу для користувача та зменшує навантаження на сервер,
- DHTML Menu - реально пришвидшує як роботу з усіма меню сайта, так і зменшення кількості трафіку, що проходитиме через Ваш браузер і сервер,
- Javascript Comments - пришвидшення сайту з точки зору користувачів-коментаторів і зменшення кількості лишніх оновлень сторінки.
- Завантаження файлів ( /admin/settings/file-system ) робимо публічно доступним - тоді відсутнє перехоплення скриптами даного процесу і відсутність навантаження на сервер.
- Кешування ( /admin/settings/performance ) ставим Нормальне, Компресію вимикаєм, Пакування CSS вмикаєм, Пакування JS вимикаєм(це зумовлено сумісністю для різних броузерів).
- В особливо складних і навантажених випадках інсталяція модуля cachestatic допоможе кардинально знизити навантаження на сервер.
- Якщо хостер жаліється на сильне навантаження на SQL сервер можна використати модуль db_tweaks, що наразі в статусі розробки, але в тестах показує досить хороші результати. В окремих випадках подібну роботу можна виконати через модуль system.install.
- Вмикаємо htaccess захист від hotlinking, щоб зменшити використання ресурсів Вашого сервера лівими користувачами.
Проблеми Інсталяції
Оптимізація по швидкості.
Це звичайно не всі можливості, але з подібним набором - Ваш Друпал-сайт буде реально швидким, максимально легким і зручним як для адміністрування, так і для користування.
Trackback URL для цього допису
http://itua.name/uk/trackback/578