Как быстро проверить работоспособность прокси

Как проверить прокси в консоли Linux

curl --proxy "user:pass@host:port" https://google.com

Такой способ сработает в любом Linux-дистрибутиве с установленной библиотекой Curl. Также этот вариант будет работать в MacOs и даже Windows в cygwin! Однако, может возникнуть ошибка:

curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none

Если знаете как её решить — пишите в коменты!

Установка New Relic для PHP 7.1 в CentOs 7 в docker-контейнере

Что такое New Relic и зачем он нужен в этой заметке рассказывать не буду. А расскажу лишь кратко как установить newrelic agent внутрь docker-контейнера для мониторинга производительности приложения. Т.е. речь о APM — Application Performance Monitoring and Management. Рассмотрим 2 варианта: установку в уже запущенном контейнере и настройку через Dockerfile. Читать далее Установка New Relic для PHP 7.1 в CentOs 7 в docker-контейнере

PHP-FPM. НАСТРОЙКА И ТЮНИНГ

php-fpm – PHP FastCGI менеджер процессов. Используется в связке с nginx + php. По моему мнению лучшая связка  для веб-сайтов.

Цель

Разобраться в параметрах конфигурации, и решить проблему, которая возникла на продакшен сервере с чрезмерным потреблением оперативной памяти. Произошло это потому, что php-fpm породил множество дочерних процессов, которые с радостью съели память, и, в один прекрасный момент, когда еще запустился парсер, OOM-killer положил мою машину. Причем ночью. На 6 часов. Почему она именно зашатдаунилась, а не ребутнулась – это другой вопрос, но неприятный впечатлений была масса. Читать далее PHP-FPM. НАСТРОЙКА И ТЮНИНГ

Database First! О распространённых ошибках использования РСУБД

Весьма хороший доклад о современных подходах по работе с базами данных, о фатальных недостатках в MySQL и мотивации перейти на Postgres.

Как в Guzzle получить финальную ссылку после редиректа

Ещё одна повседневная задача — узнать адрес ссылки на которую был совершён редирект после HTTP-запроса. Однако, при работе с библиотекой Guzzle делается это не очень очевидно. Во-первых, нужно разрешить клиенту совершать редиректы: ‘allow_redirects’ => [ ‘max’ => 5, ‘strict’ => true]. Во-вторых, нужно включить запись редиректов: ‘allow_redirects’ => [ ‘track_redirects’ => true ]. В третьи, нужно прокинуть анонимную функцию с замыканием, которая запишет значение «эффективного» URL в замкнутую переменную. Всё вместе выглядит так: Читать далее Как в Guzzle получить финальную ссылку после редиректа

Как Clickhouse хранит данные на диске

Это достаточно старая заметка, которую я нашёл в своих архивах и решил выложить. Речь идёт о старой версии Clickhouse 1.1.54198, текущая же версия: 1.1.54381, 2018-05-14. Поэтому какая-то часть выводов может оказаться не актуальной. И да, часть данных эксперимента была потеряна и в этой заметки могут быть пробелы в показаниях.

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

Connected to ClickHouse server version 1.1.54198.

Исходная таблица содержит 177 706 668 записей. Читать далее Как Clickhouse хранит данные на диске

Как на PHP скопировать директорию со всеми файлами

Стандартная функция copy в PHP умеет копировать только файл. Для копирования директориии со всем содержимым можно воспользоваться одним из следующих трюков:

 shell_exec("cp -r {$src} {$dest}");

Однако, что если нужно как-то дополнительно обработать сами файлы? Читать далее Как на PHP скопировать директорию со всеми файлами

Особенности работы функции imap_sort в PHP

imap_sort — одна из нескольких функций, с помощью которой можно получить список писем в почтовом ящике. Один из её параметров — criteria, не очевидно, но с помощью него можно задать вид сортировки:

  • SORTDATE — сортировать по дате
  • SORTARRIVAL — дата получения
  • SORTFROM — по первому адресу в поле From
  • SORTSUBJECT — по теме письма
  • SORTTO — по первому адресу в поле To
  • SORTCC — по первому адресу в поле cc
  • SORTSIZE — по размеру сообщения

Читать далее Особенности работы функции imap_sort в PHP

Ошибка Warning: imap_open(): Couldn’t open stream

Ещё одна отрицательная особенность стандартной библиотеки функций в PHP для работы с почтовыми серверами — отсутствие удобной и адекватной работы с ошибками. Например, если указан не правильный логин или пароль, то библиотека просто выкидывает ошибку уровня warning:

Warning: imap_open(): Couldn't open stream {imap.mail.ru:993/imap/ssl}

И думай что хочешь, то ли что-то с сетью, почтовым сервером или ещё что. Чтобы получить детализацию, нужно вызвать функцию imap_last_error() которая вернёт адекватное сообщение о возникшей ошибке, например:

Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Authentication failed. Please verify your account by goin

Читать далее Ошибка Warning: imap_open(): Couldn’t open stream

Установка и настройка Fail2ban

apt-get install -y fail2ban
Для того, чтобы установленное программное обеспечение работало должным образом, вам необходимо внести поправки в конфигурационный файл. По умолчанию таковым является /etc/fail2ban/jail.conf.
Однако разработчики крайне не рекомендуют редактировать его напрямую, чтобы избежать осложнений при работе с сервером. Поэтому создайте локальную копию данного файла командой:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Далее вам нужно будет выполнять редактирование только /etc/fail2ban/jail.local. Он будет подключен системой автоматически и имеет высший приоритет при исполнении.

Читать далее Установка и настройка Fail2ban