Как удалить пакет в 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
Показать пользователей (uid`ы), которые отправили больше всего писем
cat /var/log/maillog | grep 'uid=' | awk -F 'uid=' {'print$2'} | awk {'print $1'} | \ sed 's/,//g' | sort | uniq -c | sort -n | tail -10 | \ awk {'print "UID:",$2,"MESSAGES COUNT:",$1'}