Метка работоспособности для NetCat 4.72 и особенности работы error_reporting

Если вы занимаетесь сложными проектами, то с определенного момента вы наверняка столкнетесь с необходимостью мониторинга сайта. Многие знают про замечательный pind-admin.ru, который неусыпно следит за работой ваших сайтов, но не многие знают как его правильно настроить.

По-умолчанию pind-admin проверяет работоспособность сайта путем отправки head-запроса. Если ваш сервер завис совсем, вы получите сообщение об ошибке. Однако если, например, упал сервис MySQL, то хоть Apache и выдаст в ответ ошибку php, а head-запрос при этом вернет положительный ответ. Вы не получите сообщение об ошибке. Поэтому, как минимум, следует использовать GET-запрос, причем желательно искать в нем в ответе сервера определенный осмысленный текст.

До недавнего времени мы использовали поиск тега , что довольно логично, но не спасает от ошибок MySQL, например.

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

И тут выяснилось несколько необычных свойств шаблонизатора NetCat версии 4.72:

  • код внутри макетов и компонентов NetCat скорее всего генерит ошибки уровня Notice. Ошибки возникают при использовании любых хэш-массивов (если они оказываются пустыми), а также неопределенных переменных. В общем-то это логично.
  • настройка error_reporting в vars.inc.php работает ммм... не знаю как, я увидел ее работу только на Главной странице сайта, на всех остальных, даже на /index/ эта настройка никак не влияет на поведение сайта.

Итак, сухой остаток. Метка работоспособности ставится в корневой шаблон дизайна вот так:

</body>
</html>

";
// Finar: детектор ошибок для мониторинга работоспособности сайта
$errorDetector = error_get_last();
if (!is_array($errorDetector) || $errorDetector[type] == 8 ) echo "<!--phphnoerrors-->";
echo "

но она не учитывает ошибки уровня Notice, поскольку шаблонизатор NetCat генерит такие ошибки сам по себе.

Update:

Установка на версию 5.x.x:
</body>
</html>

<?
// Finar: детектор ошибок для мониторинга работоспособности сайта
$errorDetector = error_get_last();
if (!is_array($errorDetector) || $errorDetector[type] == 8 ) echo "<!--phphnoerrors-->";
?>

Блог

Как расставить запятые между тегами на CSS?

Иногда проще что-то сделать на чистом CSS, чем на серверной стороне. Например, расставить запятые между тегами. Попробуем разделить подчеркнутые теги-ссылки на чистом CSS.

далее

Как отресайзить картинки батчем?

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

далее

Tilda Module: интеграция NetCat с Tilda.cc

Представляем нашу новую разработку, модуль интеграции CMS NetCat с платформой Tilda.cc. Модуль дает возможностью полуавтоматически размещать классные лендинги прямо в структуре вашего сайта!

далее

Как оптимально заархивировать файлы, чтобы распаковать их средствами ISPmanager?

В определенных случаях файлы выгоднее заливать на веб-сервер в виде архива. Во-первых, если данные хорошо сжимаются, или же просто файлов очень много, это сократит время заливки. Во-вторых, в любом случае это обезопасит данные от случайного повреждения, так как при распаковке архива происходит проверка его целостности с помощью контрольной суммы (CRC). Однако, не вполне понятно, какой формат архива и тип сжатия выбирать? Мы провели небольшое экспериментальное исследование на эту тему.

далее

Весь блог тут