Update README.md

main
PavelBelyaev 4 years ago committed by GitHub
parent 67e305808b
commit dbfde1b38b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -22,7 +22,7 @@ docker build -t php-le .
docker run -it --rm php-le /bin/sh docker run -it --rm php-le /bin/sh
``` ```
Продакшн режим примерно такой Продакшн режим примерно такой (но без поддержки php sendmail), по настройке sendmail из контейнера смотрите раздел ниже
```bash ```bash
docker run -d \ docker run -d \
--restart=always \ --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());
```

Loading…
Cancel
Save