settings.php

Урок84 настройки Друпала, о которых вы могли не знать

В этой статье речь пойдёт о переменных, которые не имеют пользовательского интерфейса для их конфигурации. Как правило, большинство пользователей Друпала не являются разработчиками и не лазят в код, а потому могут даже не подозревать о конфигурационных возможностях системы.

Я потратил немалое количество времени и нашёл все переменные, которые невозможно задать с помощью UI. В этот список вошли как некоторые настройки из settings.php, так и абсолютно недокументированные. Некоторые переменные я сам узнал впервые, и был приятно удивлён этим открытием. Переменные, которые я счёл полезным к изучению, я выделил зелёным цветом. Переменные, которые я считаю, что знать обязательно - красным. Остальные просто для ознакомления, чтобы просто держать в голове уровень возможностей системы.

БлогПеренос кэшированых данных в оперативную память. Memcache Storage.

Memcache Storage

Не так давно я писал про изменение места хранения кэша. В этой статье основной пример основывался на использовании модуля Memcache, который позволяет перенести хранимый кэш из базы данных в оперативную память. На момент написания статьи я достаточно давно и активно им пользовался, и в целом, был доволен результатом. Однако было три основных и достаточно неприятных момента, с которыми я постоянно сталкивался:

Инвалидация кэша

Основная проблема кроется в плохой обработке временного кэша. При хранении в базе данных такие данные помечались флагом -1 (CACHE_TEMPORARY) и обрабатываются обычными sql запросами. Однако мемкэш не предполагает сохранения кэша с отрицательным ключём. Он умеет хранить данные либо вечно (пока оперативная память не будет очищена, или данные не будут удалены явным образом), либо какое-то определённое время. Данные с временным сроком истечения кэша приходилось обрабатывать отдельно, и модуль Memcache справлялся с этим не самым лучшим образом.

УрокЗакрываем доступ к сайту определённым IP адресам

На протяжении последних нескольких месяцев в источниках посетителей наблюдаю сервис http://checks.panopta.com. По заявлению создателей - это сервис, который постоянно пингует сайт, проверяя на доступность. По совету xandeadx, я решил закрыть этому сервису доступ к своему сайту. Делается это в два этапа:

Узнаём IP адрес сайта

Банить надо по айпишнику, поэтому для начала его надо узнать :) Можно пользоваться разными whois-серсисами, однако мне проще открыть консоль пингануть сайт:

УрокВывод ошибок PHP на экран

При работе с сайтом каждый разработчик сталкивался с ситуацией, когда при включении модуля, добавления своего кода или другого изменения на сайте, возникал так называемый WHITE SCREEN OF DEATH (белый экран смерти), который обычно вызван ошибкой PHP. Первое действие разработчика, естественно, откатить изменения, повлёкшие за собой эту ошибку. Но ведь ошибку-то исправлять надо, а значит, надо посмотреть что именно является причиной её возникновения.

Хорошо, если у разработчика есть возможность посмотреть логи апача. Но тут возникают трудности: не каждый хостер их ведёт, да и не у каждого программиста есть к ним доступ. В конце концов, чтобы их посмотреть надо будет лезть на сервер. Но ведь все программисты ленивые, а значит, надо искать более простое решение. И этим решением является прямой вывод ошибок на экран.