lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

Автоматический запуск Postfix в Mac OS X

без комментариев

В Mac OS X уже установлен Postfix, только вот запускается он только по запросу и выключается через минуту работы. Для того, чтобы можно было отправлять письма через локальный SMTP нужно, чтобы Postfix постоянно работал.

Для того, чтобы Postfix автоматичеки запускался и не останавливался нужно отредактировать конфигурационный файл /System/Library/LaunchDaemons/org.postfix.master.plist.

Убираем остановку master процесса через 60 секунд:

<string>-e</string>
<string>60</string>

Добавляем запуск при загрузке системы (вставляем перед </dict>):

<key>RunAtLoad</key>
<true />
<key>OnDemand</key>
<false />

В результате получаем такой файл:

Read the rest of this entry »

Автор: lest

Декабрь 3, 2009 в 15:32

Опубликовано в mac os x

Метки: , ,

Используем Postfix для web-разработки

2 комментариев

При разработке web-приложений необходима возможность проверить отправленные письма локально.

Чаще всего письма отправляют используя команду sendmail или с помощью SMTP. Сделать полноценную заглушку почтового сервера, сохраняющую всю почту в одно место, сможет Postfix.

Устанавливаем Postfix (этот процесс зависит от используемой системы, например, sudo apt-get install postfix в debian-based linux) и немного изменяем конфигурационные файлы.

В конец файла /etc/postfix/main.cf добавляем строки:

inet_interfaces = loopback-only
virtual_alias_maps = regexp:$config_directory/virtual-regexp

Первое ограничит подключение к SMTP серверу только через loopback интерфейс, а второе задает файл с маппингом виртуальных алиасов.

Создаем файл /etc/postfix/virtual-regexp:

/.*/   localuser

где localuser - ваш локальный пользователь, который будет получать всю отправляемую почту.

После изменения конфигурационных файлов перезапускаем Postfix.

Теперь осталось настроить почтовую программу на получение писем из локального почтового ящика.

Автор: lest

Декабрь 3, 2009 в 15:30

Опубликовано в development

Метки: , , , ,

Лог медленных запросов в mysql

без комментариев

При оптимизации запросов в mysql нельзя обойтись без лога медленных запросов. Для того, чтобы лог писался, добавляем в секцию [mysqld] конфигурационного файла my.cnf параметры:

  • log_slow_queries указывает путь к логу медленных запросов,
  • long_query_time — минимальное время в секундах для попадания запроса в лог.

Пример:

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2

В этом случае все запросы, выполняющиеся 2 и более секунды, запишутся в файл /var/log/mysql/mysql-slow.log.

Read the rest of this entry »

Автор: lest

Ноябрь 29, 2009 в 22:03

Опубликовано в mysql

Метки: , ,

Настройка ssh клиента

1 комментарий

Для задания настроек ssh клиента существует конфигурационный файл ~/.ssh/config.

Базовые возможности и синтаксис этого файла можно увидеть на простом примере. Допустим есть 2 сферических хоста в вакууме (example.com и example.org), с которыми необходимо достаточно часто работать. Предположим, что для доступа к ним ипользуются команды:

ssh someuser@example.com
ssh -p 2222 another@example.org

Чтобы не делать спецальных скриптов для подключения или все время не писать вручную эти команды в ~/.ssh/config указываем следующее:

Host example1
  HostName example.com
  User someuser

Host example2
  HostName example.org
  Port 2222
  User another

Теперь можем подключаться к этим хостам следующим образом: ssh example1 для example.com и ssh example2 для example.org.

Также в директиве Host можно указывать символы * и ?, например, настройки в секции Host * будут применяться для всех хостов, а в Host *.org.ru - для хостов в доменной зоне .org.ru.

Полный список настроек можно посмотреть с помощью man ssh_config.

Автор: lest

Ноябрь 18, 2009 в 23:25

Опубликовано в linux

Метки: , ,

Сохранение пароля для консольного mysql

2 комментариев

Чтобы избавиться от необходимости постоянно указывать имя пользователя и пароль при использовании консольных команд mysql и mysqldump можно создать в домашней директории файл .my.cnf следующего содержания:

[client]
user=имя_пользователя
password=пароль

В целях безопасности нужно не забыть поставить права 0600 на этот файл.

Автор: lest

Ноябрь 17, 2009 в 22:01

Опубликовано в mysql

Метки: , ,

Установка nginx на Ubuntu

без комментариев

Установить последнюю версию nginx на Ubuntu можно с помощью нехитрых действий.

Добавляем в sources.list (hardy замените названием вашего релиза дистрибутива):

deb http://deb.sjinks.pro/ hardy main
deb-src http://deb.sjinks.pro/ hardy main

Поддерживаемые релизы: dapper (6.06), hardy (8.04), intrepid (8.10), jaunty (9.04), karmic (9.10). Архитектуры: amd64, i386.

Выполняем следующие команды:

curl http://deb.sjinks.pro/67C02A558F688141.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install nginx

Автор: lest

Ноябрь 16, 2009 в 14:47

Опубликовано в linux

Метки: , ,

PHP Soap client и WS-Security

1 комментарий

Для того, чтобы отправить soap-запрос с цифровой подписью, можно конечно использовать extension WSF и переделывать все свои запросы, основанные на SoapClient.

Но есть и вариант попроще с использованием библиотеки soap-wsse:

require_once('soap-wsse.php');

class SecuredSoapClient extends SoapClient {
  public function __doRequest($request, $location, $action, $version, $one_way = 0) {
    $doc = new DOMDocument('1.0');
    $doc->loadXML($request);

    $pem = file_get_contents('client.pem'); // файл с сертификатом и private ключом

    $wsse = new WSSESoap($doc);

    // добавляем в запрос сертификат
    $bin_token = $wsse->addBinaryToken($pem);

    // получаем private ключ для подписи
    $sec_key = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array('type' => 'private'));
    $sec_key->loadKey($pem);

    // добавляем цифровую подпись в запрос
    $wsse->signSoapDoc($sec_key);

    // добавляем в цифровую подпись ссылку на сертификат
    $wsse->attachTokentoSig($bin_token);

    return parent::__doRequest($wsse->saveXML(), $location, $action, $version, $one_way);
  }
}

Используя класс SecuredSoapClient вместо SoapClient, запросы будут отправляться уже с цифровой подписью.

Автор: lest

Ноябрь 15, 2009 в 22:43

Опубликовано в php

Метки: , ,