From dbfde1b38b8e8e0af83c83413826bc9682316219 Mon Sep 17 00:00:00 2001 From: PavelBelyaev Date: Sun, 1 Aug 2021 21:01:27 +0500 Subject: [PATCH] Update README.md --- README.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fd8df2..fb5c80d 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ docker build -t php-le . docker run -it --rm php-le /bin/sh ``` -Продакшн режим примерно такой +Продакшн режим примерно такой (но без поддержки php sendmail), по настройке sendmail из контейнера смотрите раздел ниже ```bash docker run -d \ --restart=always \ @@ -33,3 +33,65 @@ php-le ``` ## Настройка почты +Сперва на локальном компе сделаем конфиг, который прокинем +``` +mkdir -p /docker_conf/etc/ssmtp/ +nano /docker_conf/etc/ssmtp/ssmtp.conf +``` + +Вставим примерно такое +``` +#see ptr +rewriteDomain=web.mydomain.ru +FromLineOverride=YES +#host ip, see "ip addr|grep docker0" +mailhub=172.17.0.1 +UseTLS=YES +UseSTARTTLS=YES +``` + +> Нужно прописать на ip вашего сервера PTR запись у хостера или провайдера и на эту обратную запись настроить postfix, в примере это **web.mydomain.ru**, +> проверить ваш обратный адрес можно так `nslookup 8.8.8.8`, +> в примере выше есть ip **172.17.0.1**, это IP моста в докере, его можно узнать так: `ip addr | grep docker0` + +Далее настраиваем Postfix на хосте. + +При подобном методе есть вероятность полететь в спам, если у вас несколько разных сайтов с разных доменов будут отправлять, поэтому в Postfix нужно прописать следующее + +```sh +#тут хак для подмены отправителя из докеров +sender_canonical_classes = envelope_sender +sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps +``` + +и еще создать файлик `/etc/postfix/sender_canonical_maps` и прописать в него +``` +/.+/ postmaster@web.mydomain.ru +``` + +### Запуск контейнера с настройками sendmail +``` + +``` + +## Про даты +Обычно PHP берет из локали название месяца и оно там в именительном падеже +> 01 август 2021 + +Но нам нужно вот так + +> 01 августа 2021 + +В данном контейнере скомпилированы локали с патчами на русский язык. +Проверить можно примерно вот так: + +```php +if(setlocale(LC_ALL, 'ru_RU.UTF-8','Russian_Russia.65001')===false) + exit('not find UTF-8 LOCALE'); +if(setlocale(LC_NUMERIC, 'en_US.UTF-8', 'C.UTF-8','C')===false) + exit('not find C NUMERIC LOCALE'); + +// 01 августа 2021 +echo strftime('%d %B %Y', time()); +``` +