# LE_PHP_Docker Контейнер заточен для LE_Framework, выполняет функционал php-fpm * php 7.4.22 * json, xml, zip, freetype, curl, bcmatch, mysqli * поддержка RabbitMQ (amqp) * пропатченная локаль, месяца с маленькой буквы и в родительном падеже * отправка почты через ssmtp ## Установка ```bash mkdir php_le_docker; cd php_le_docker; wget https://raw.githubusercontent.com/TechResearchRu/LE_PHP_Docker/main/Dockerfile docker build -t php-le . ``` ## Запуск Если нужно просто поиграться в терминале ```bash docker run -it --rm php-le /bin/sh ``` Продакшн режим примерно такой (но без поддержки php sendmail), по настройке sendmail из контейнера смотрите раздел ниже ```bash docker run -d \ --restart=always \ --name project1.ru \ -p 127.0.0.1:9000:9000 \ -v /www:/www \ 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 ``` docker run -d \ --restart=always \ --name project1.ru \ -p 127.0.0.1:9000:9000 \ -v /www:/www \ -v /docker_conf/etc/ssmtp/ssmtp.conf:/etc/ssmtp/ssmtp.conf \ php-le ``` #### Тестовый скриптик для отправки почты ``` 01 август 2021 Но нам нужно вот так > 01 августа 2021 В данном контейнере скомпилированы локали с патчами на русский язык. Проверить можно примерно вот так: ```php