Как удалить пакет в CentOS, не удаляя связанные с ним зависимости

Это странно, но такое иногда бывает нужно. Мне, например, потребовалось перейти с системной библиотеки libmysql на встроенную в PHP (MySQL Native Driver), т.е. ненадолго удалить одну из базовых библиотек PHP (php-mysql и php-mysqli), чего, конечно, испугались многие пакеты, имеющие PHP в зависимостях. Итак, похоже, yum не умеет удалять пакет без удаления его зависимостей, но мы обойдёмся и без yum. Читать полностью

Как установить PHP 7 на CentOS 6.x

Ранее я уже писал, как установить php 5.6 на CentOS 6.x. C php 7 всё очень похоже: его тоже можно установить на пустой сервер, а можно заменить штатный 5-ый php новой 7-ой версией, но в последнем случае есть один нюанс. Читать полностью »

Как найти вирус на сайте

Оказывается, что популярные php-вирусы вполне хорошо обнаруживает серверный антивирус clamav. Это очень хорошо, потому что всякие Ai-Bolit`ы и Manul`ы мне не очень нравились, поскольку сами они работают на php, а значит каждый раз надо что-то куда-то скачать, обновить, запустить, долго ждать и т.п. Хотя если зараженный сайт висит на чужом виртуальном хостинге, то именно эти продукты являются хорошим и единственным решением. Но, к счастью, есть и простое серверное решение. Читать полностью »

Как настроить авторизацию по ключу для ssh?

О том, что такое публичные/закрытые ключи и ssh-сервер я тут рассказывать не буду. Но вот авторизация по ключу иногда не хочет работать из коробки. Особенно это касается VPS на CentOS (ведь у каждого хостера свой базовый образ). Чтобы авторизация завелась в 99% случаев достаточно проверить лишь несколько моментов. Читать полностью »

Как установить PHP 5.6 на CentOS 6.x

На голом сервере проблема решается в две строчки. Сначала подключаем репозиторий webtatic, где всегда есть самые свежие версии PHP (кстати, на момент написания этой заметки там есть и PHP 7 для CentOS 6). Потом ставим ряд нужных нам пакетов (php 5.6 и его популярные расширения) из нового репозитория. Но есть нюансы, если у вас уже стоит php 5.3

Освобождаем место на сервере (чистим логи и т.д.)

Ротированные логи у нас на сервере имеют примерно такие имена файлов:
/var/www/site/public-access.log-20151001

Часть из них уже пожата, и, значит, имеет имена вида:
/var/www/site/public-access.log-20150201.gz

Задача: сжать те логи, которые уже ротированы, но ещё не сжаты. Решение:
find /var/www/* -type f -name "*.log-*" -not -name "*.gz" -exec gzip -9 {} \;

Настраиваем сервер samba на CentOS 7. Делаем шары для анонимных пользователей и с авторизацией

C одной стороны, истинным линуксоидам samba-шары ни к чему. Но, с другой, есть много современных устройств (типа умных телевизоров), которые живут в вашей домашней сети и уже сразу из коробки умеют работать с «самбой». Я уж молчу о том, что с самбой умеет работать любой компьютер на любой версии Windows. К тому же, samba очень быстрая (и протокол вообще, и его текущая реализация для Linux). Например, у меня на сервере в гигабитной сети с обычным жестким диском (не SSD) при записи на шару получается скорость 60–70 мегабайт в секунду, т.е. более 500 Мбит/с. В общем, будем настраивать. Читать полностью »

Что делать, если не отправляется почта из PHP

Тривиальные ситуации, когда имеется непорядок со значением sendmail_path в конфигурации php, решаются легко. Проверьте через phpinfo();, чтобы у вас было задано значение типа /usr/sbin/sendmail -t -i в конфиге, и чтобы за /usr/sbin/sendmail действительно скрывался установленный и работающий MTA. Но сегодня пришлось побеждать менее типовую проблему: из php-скрипта почта как бы отправлялась, но где-то дальше сообщения терялись. Читать полностью »

Установка PhantomJS на CentOS 7

PhantomJS отсутствует в базовом репозитории и в epel в виде готового rpm. Но его можно установить через npm. Однако если сразу пытаться ставить, то выплывет ошибка:
Phantom installation failed { [Error: Command failed: tar (child): bzip2

Причина её в том, что в CentOS 7 из коробки отсутствует bzip2. Но это не единственная проблема: следующая будет ждать вас при первом запуске phantomjs, он заругается на то, что не может найти libfontconfig.so.1. К счастью, обе проблемы решаются очень просто. Читать полностью »

Шпаргалка по postfix с прицелом на борьбу с исходящим спамом

Посмотреть длину очереди исходящей почты

Вывод в виде одного числа, удобно использовать в скриптах. Представленный ниже конвейер считаем, по сути, количество идентификаторов сообщений в очереди.

mailq | grep -c '^[0-9A-Z]'

Посмотреть длину очереди и суммарный объём писем в ней

Этот конвейер просто парсит последнюю строчку вывода postqueue.

postqueue -p | tail -1

Очистить всю очередь исходящей почты:

postsuper -d ALL