Официальный сайт PHP-разработчика и DevOps инженера Ray Icemont

Обо мне и сайте

Привет! Меня зовут Ray (Юрий) Icemont. Я PHP Backend Developer, DevOps Engineer и Linux-энтузиаст.

Уже более 15 лет я занимаюсь разработкой на PHP, а также проектированием и сопровождением ИТ-инфраструктуры, в том числе для высоконагруженных проектов, требующих высокой доступности.

Я интроверт и, наверное, поэтому все это время у меня не было личного сайта, я не вел аккаунтов в социальных сетях. Но интернет это не только "среда социализации", но и "институт социализации". И вот с началом нового этапа в жизни у меня появился аккаунт GitHub, затем аккаунт в LinkedIn и теперь даже личный сайт. Я искренне надеюсь, что это принесет пользу и мне и социуму.

Этот сайт работает на мини CMS написанной мною на PHP. Из сторонних компонентов используются Twig для шаблонизации и gettext для интернационализации. Для фронтенда (не моя сильная сторона) используется Bootstrap.

Подробнее обо мне и сайте

IT и разработка

В категории PHP я буду публиковать статьи про PHP, про скрипты, различные решения, заметки и т.п. В категории Linux планирую размещать публикации, руководства и делиться личным опытом. Так как мой родной язык русский, то в первую очередь все публикации будут в версии сайта на русском языке, а позже я постараюсь переводить их на английский.

Хобби

Моё хобби это разработка, сборка и отладка различных электронных устройств. Схемотехникой я увлекаюсь еще с детства, лет с 6 — сначала перелистывая страницы популярных изданий по радиотехнике, а затем подружившись с паяльником собирал простейшие устройства по схемам опубликованным в этим журналах и книгах.

Docker: Nexcloud + PHP FPM + Let's Encrypt

Docker 13:09 / 15.07.2021

В официальный образ Nextcloud для Docker уже включены возможности для автоматического получения сертификата от Let's Encrypt – для этого достаточно определить в Docker Compose файле переменные окружения LETSENCRYPT_HOST и LETSENCRYPT_EMAIL. Но для версии образа с PHP-FPM такой возможности по очевидным причинам нет. Конечно все можно решить с помощью контейнера с proxy, например nginx-proxy, но если Nextcloud необходимо поднять быстро для того, чтобы просто познакомиться с функционалом, а SSL для большей части функциональности обязателен, то возможно более простое решение (но возможно не совсем правильное).

Nexcloud

Предлагаю ознакомиться с моим решением для поднятия полностью работоспособного экземпляра Nextcloud на Docker, на базе образа с PHP-FPM, и с SSL от Let's Encrypt.

28

Нижний колонтитул для картинки или фото с помощью ImageMagick

Сниппеты 20:09 / 05.07.2021

Недавно в одном из чатов обсуждалась задача на ImageMagick, которая мне показалось интересной, ввиду того, что её посчитали сложной и готовых похожих решений не нашлось.

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

Ранее я никогда не имел опыта с ImageMagick для PHP, так как для моих задач мне вполне хватало возможностей библиотеки GD. Мне захотелось решить эту задачу, и с готовым решением я делюсь в этой публикации.

17

Новая версия CurlWrapper (v1.1.0) - ООП-обертки для cURL

Мои скрипты 15:51 / 05.07.2021

Почитать подробнее о CurlWrapper, маленькой и простой ООП-обёртке для PHP cURL без излишеств, можно в этой публикации.

В новой версии (v1.1.0) добавлен функционал для настройки основных параметров конфигурации:

  • User-Agent
  • Таймаут
  • Referer

17

CurlWrapper - простейшая ООП-обертка для cURL

Мои скрипты 16:00 / 10.06.2021

О библиотеке CurlWrapper

CurlWrapper – это маленькая и простая ООП-обертка для PHP cURL без излишеств.
Предназначена для тестирования и работы с простыми RestFull и JSON API и выполнения простых запросов.

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

47