Записи с тегом «*nix»
Запуск задания cron в последний день месяца
Стандартный cron не позволяет создать такое расписание, чтобы задание выполнялось только в конце месяца (именно в последний день месяца максимально близко к полуночи, а не в первый день следующего месяца). Одно из решений было найдено на форуме и слегка модицифировано.
Установка OpenWebmail на сервер с Debian и ISPManager
По умолчанию в ISPManager в качестве webmail'a использует SquirellMail. Для установки OpenWebmail использовался deb-пакет.
Установка ISPManager на сервер за роутером (с локальным IP-адресом)
Для установки и работы системы лицензирования ISPManager необходимо, чтобы хотя бы на одном из сетевых интерфейсов (лучше на первом в выводе ifconfig) был определён (опять же, лучше первым по счёту) реальный IP-адрес, на который выдана лицензия.
В случае, если сервер находится за роутером и на его интерфейсах — только локальные IP, реальные же определены на роутере и с него прокидываются на сервер для корректной установки достаточно будет прописать алиасом лицензируемый IP на первом интерфейсе. Этот адрес, естественно, использоваться не будет, но ISPManager будет доволен :)
Способ опробован для установки легально приобретённой копии ISPManager на выделенный сервер.
Базовая оптимизация производительности VDS на *nix
Этот список — не более, чем памятка: что нужно проверить на типичном VDS (Apache, PHP, MySQL) перед тем, как докупать ресурсов :). Не претендует на точность и полноту, потому как рассматриваемый предмет (оптимизация производительности), пожалуй, один из самых сложных.
Замер времени выполнения команд в shell, запись сообщений в syslog
Пример замера времени выполнения определённых команд и записи этого времени в системный лог:
#!/bin/sh START=$(date +%s) # # Нужные команды # END=$(date +%s) DIFF=$(( $END - $START )) echo "It took $DIFF seconds" /usr/bin/logger -t [MyScript] "Task finished in $DIFF seconds"
Префиксы для баз данных и имён пользователей MySQL в ISPManager
Для того, чтобы к имени базы данных добавлялся префикс в виде <имя системного пользователя>_,
необходимо добавить в ispmgr.conf опцию:
Option DatabasePrefix
Чтобы включить добавление подобного префикса к именам MySQL-пользователей необходима следующая опция:
Option DatabaseUserPrefix
Выключение отображения версии веб-сервера в заголовках
Для того, чтобы в заголовках не указывалась версия Apache, в его конфиг нужно добавить параметр:
ServerTokens Prod
Для nginx в секцию http:
server_tokens off;
На стандартных экранах с ошибками отображение версии Apache отключается параметром:
ServerSignature Off
Для nginx'а соответствующий параметр пока не найден :)
P.S. Запретить добавление заголовка X-Powered-By с версией PHP можно путём добавления параметра в php.ini
expose_php = Off
P.P.S. Для ASP.NET запретить добавление заголовка X-Powered-By можно в настройках IIS в разделе HTTP Headers - Custom HTTP Headers. Заголовок X-AspNet-Version можно
выключить путём установки параметра в Web.config:
<httpRuntime enableVersionHeader="false"/>
P.P.P.S. Решение для IIS7 и ASP.NET MVC (заголовок X-AspNetMvc-Version) тоже нашлось.
PHP-функция mail(), sendmail, ISPManager
Часто для отправки почты из PHP-скриптов используется функция mail. На серверах под управлением ISPManager и использующих sendmail могут возникнуть проблемы, если адрес отправителя не существует. Например, скрипт пытается отправить почту с обратным адресом no-reply@example.com, а ящика такого нет. Создавать подобные почтовые ящики не всегда необходимо.
Фильтрация и проверка почты в OpenWebmail с командной строки
OpenWebmail имеет встроенные почтовые фильтры, которые срабатывают при входе пользователя, в
случае, если пользователи используют кроме веб-интерфейса почтовые клиенты — фильтрацию
необходимо реализовывать другими способами. Один из вариантов, оставить эту работу всё-таки OpenWebmail'у,
периодически запуская скрипт openwebmail-tool.pl.
Например, для проверки (и применения фильтров) к почте всех пользователяй можно выполнить:
./openwebmai-tool.pl -m -a
Решение проблемы со spamassassin в Debian
Почему-то после установки spamassassin на Debian 4, он упорно отказывался запускаться от root, используя пользователя nobody. Из-за этого база Байесовского фильтра не могла быть куда-либо сохранена. Не очень красивое решение из старого баг-репорта.
adduser --disabled-login --system --home /var/spool/spamd spamd
В файле /etc/default/spamassassin в параметр OPTIONS был добавлен параметр
-u spamd
Дополнение: для того, чтобы в логи не сыпались ошибки о том, что у spamd не получилось создать файлы личных настроек пользователей, необходимо добавить следующие параметры:
-u spamd -x --virtual-config-dir=/var/spool/spamd
Поиск более правильного решения продолжается.
Бонус: настройка OpenWebmail
OpenWebmail имеет встроенные средства для вызова sa-learn если пользователь помечает письмо как «spam» или «ham» (не спам). Для того, чтобы при этом обновлялась не локальная база пользователя, а база в указанном каталоге, необходимо изменить два параметра в конфигурации OpenWebmail:
learnspam_pipe /usr/bin/sa-learn --dbpath=/var/spool/spamd/bayes --mbox --spam learnham_pipe /usr/bin/sa-learn --dbpath=/var/spool/spamd/bayes --mbox --ham
