sysmerge IT

4 нояб. 2019 г.

Centos 6.9: Can't connect to HTTPS URL because the SSL module is not available

При попытке обновить Pip командой
pip3 install --upgrade pip
выбивает ошибку

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/
Причина, собственно, довольно четко описана в этом сообщении. Нужно обновить openssl и пересобрать Python, указав ему при сборке пути к новому openssl.

Качаем openssl:
# wget https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz
Распаковываем:
#  tar -xzf openssl-1.1.1-pre8.tar.gz
 Далее стандартная процедура конфигурации и компиляции:
# cd openssl-1.1.1-pre8
# ./config
# make
# make install
Проверить версию собранного нами Openssl нужно командой
# /usr/local/bin/openssl version
Но в итоге мы, если все сделали верно, получим ошибку "/usr/local/bin/openssl: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory". Так и должно быть, нам нужно подбросить файлы таким образом:
# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/
# mv /usr/bin/openssl /usr/bin/openssl_old
# ln -s /usr/local/bin/openssl /usr/bin/openssl
Теперь системный openssl будет свежей версии.
Далее, для сборки питона нужно будет исправить одну строку, чтобы при компилировании были задействованы инклюды из /usr/local/ (куда был скомпилирован свежий openssl )

Править необходимо файл Modules/Setup. Приводим его к тому виду:

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/
_ssl _ssl.c \
           -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

И компилируем питон.
26 окт. 2019 г.

Centos 6 обновление httpd 2.2 до 2.4 + php 5.6

Имеем - Centos 6.9 + httpd 2.2 + php 5.6. Необходимо обновить apache до 2.4.
Для начала добавим нужный нам репозиторий
 # yum install centos-release-scl
Так же нам пригодится  yum-plugin-replace:
 # yum install yum-plugin-replace

Собственно, пробуем заменить наш текущий httpd на новый. Для уточнения - новый httpd в репе имеет название httpd24-httpd:
# yum replace httpd --replace-with=httpd24-httpd
# service httpd24-httpd restart
Но не все так просто. При попытка запуска мы получим такие ошибки
# service httpd24-httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 353 of /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf: Syntax error on line 6 of /opt/rh/httpd24/root/etc/httpd/conf.d/php.conf: Cannot load modules/libphp5.so into server: /opt/rh/httpd24/root/etc/httpd/modules/libphp5.so: cannot open shared object file: No such file or directory
                                                           [FAILED]

Сразу уточним, что нам апач располагается тут /opt/rh/httpd24/root/etc/httpd/. И ему не хватает библиотеки php. Попробуем самое первое, что приходит в голову - подкинем ему наш старый libphp5.so, который остался у httpd 2.2. Проверяем:
# service httpd24-httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 353 of /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf: Syntax error on line 6 of /opt/rh/httpd24/root/etc/httpd/conf.d/php.conf: Cannot load modules/libphp5.so into server: /opt/rh/httpd24/root/etc/httpd/modules/ibphp5.so: undefined symbol: unixd_config
                                                           [FAILED]
Не получилось. В принципе, это не удивительно, модуль собран под другую версию php. Остается лишь одно - качаем исходники php нужной версии (у нас установлен 5.6.38) отсюда https://www.php.net/downloads.php. Устанавливаем devel для нового httpd 2.4:
# yum install httpd24-httpd-devel
Распаковываем php, переходим в его директорию и запускаем ./configure с обязательной опцией  --with-apxs2, которая будет указывать на /opt/rh/httpd24/root/usr/bin/apxs apxs ( сборщик пакетов для apache ). Дополнительно перечисляем в опциях все необходимые модули, с которыми должен быть собран libphp5.so. Перечислять их не буду.
#  ./configure --with-apxs2=/opt/rh/httpd24/root/usr/bin/apxs apxs
# make
После этого в директории ./libs  появится libphp5.so , который необходимо разместить по пути, которому ожидаем его увидеть httpd 2.4 -  /opt/rh/httpd24/root/etc/httpd/modules/libphp5.so.

Готово, httpd 2.4 успешно запускается.
10 окт. 2019 г.

Centos 7 - Настройка http2 на Apache 2.4 без рекомпиляции Apache сервера - mod_http2

Если для активации http2 в nginx достаточно просто подключить сертификат и добавить опцию http2 в listen, то в случае с настройкой http2 apache понадобится пересборка веб-сервера с опцией --enbale-http2.
Но можно обойтись и без! Для этого есть репозиторий от CodeIt с mod_http2.
Устанавливаем репозиторий:
# wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo
# cp codeit.el7.repo /etc/yum.repos.d/
Устанавливаем сам модуль
# yum install mod_http2.x86_64
Загружены модули: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sh.cvut.cz
 * epel: epel.mirror.liteserver.nl
 * extras: ftp.sh.cvut.cz
 * remi: mirror.serverion.com
 * remi-php55: mirror.serverion.com
 * remi-php56: mirror.serverion.com
 * remi-test: mirror.serverion.com
 * updates: ftp.sh.cvut.cz
Разрешение зависимостей
--> Проверка сценария
---> Пакет mod_http2.x86_64 0:1.15.3-1.codeit помечен для установки
--> Обработка зависимостей: libnghttp2 >= 1.21.1 пакета: mod_http2-1.15.3-1.codeit.x86_64
--> Обработка зависимостей: libnghttp2.so.14()(64bit) пакета: mod_http2-1.15.3-1.codeit.x86_64
--> Проверка сценария
---> Пакет libnghttp2.x86_64 0:1.31.1-2.el7 помечен для установки
--> Обработка конфликта: mod_http2-1.15.3-1.codeit.x86_64 конфликтует с httpd < 2.4.25-8
--> Перепроверка зависимостей с новыми параметрами.
--> Проверка сценария
---> Пакет httpd.x86_64 0:2.4.6-118.el7.centos помечен для обновления
--> Обработка зависимостей: httpd = 2.4.6-118.el7.centos пакета: 1:mod_ssl-2.4.6-118.el7.centos.x86_64
---> Пакет httpd.x86_64 0:2.4.41-4.codeit.el7 помечен как обновление
--> Обработка зависимостей: httpd-tools = 2.4.41-4.codeit.el7 пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: httpd-filesystem = 2.4.41-4.codeit.el7 пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: httpd-filesystem пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: libbrotlienc.so.1()(64bit) пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Обработка зависимостей: libbrotlicommon.so.1()(64bit) пакета: httpd-2.4.41-4.codeit.el7.x86_64
--> Проверка сценария
---> Пакет brotli.x86_64 0:1.0.7-5.el7 помечен для установки
---> Пакет httpd-filesystem.noarch 0:2.4.41-4.codeit.el7 помечен для установки
---> Пакет httpd-tools.x86_64 0:2.4.6-118.el7.centos помечен для обновления
---> Пакет httpd-tools.x86_64 0:2.4.41-4.codeit.el7 помечен как обновление
---> Пакет mod_ssl.x86_64 1:2.4.6-118.el7.centos помечен для обновления
---> Пакет mod_ssl.x86_64 1:2.4.41-4.codeit.el7 помечен как обновление
--> Обработка зависимостей: sscg >= 2.2.0 пакета: 1:mod_ssl-2.4.41-4.codeit.el7.x86_64
--> Проверка сценария
---> Пакет sscg.x86_64 0:2.5.1-1.el7 помечен для установки
--> Обработка зависимостей: libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libtalloc.so.2(TALLOC_2.0.2)(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libpath_utils.so.1()(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Обработка зависимостей: libtalloc.so.2()(64bit) пакета: sscg-2.5.1-1.el7.x86_64
--> Проверка сценария
---> Пакет libpath_utils.x86_64 0:0.2.1-32.el7 помечен для установки
---> Пакет libtalloc.x86_64 0:2.1.14-1.el7 помечен для установки
--> Обработка конфликта: httpd-2.4.41-4.codeit.el7.x86_64 конфликтует с apr < 1.5.0-1
--> Перепроверка зависимостей с новыми параметрами.
--> Проверка сценария
---> Пакет apr.x86_64 0:1.4.8-3.el7_4.1 помечен для обновления
---> Пакет apr.x86_64 0:1.5.2-1.el7.codeit помечен как обновление
--> Проверка зависимостей окончена

Зависимости определены

==================================================================================================
 Package                   Архитектура     Версия                           Репозиторий     Размер
==================================================================================================
Установка:
 mod_http2                 x86_64          1.15.3-1.codeit                  CodeIT          208 k
Обновление:
 apr                       x86_64          1.5.2-1.el7.codeit               CodeIT          111 k
 httpd                     x86_64          2.4.41-4.codeit.el7              CodeIT          1.4 M
Установка зависимостей:
 brotli                    x86_64          1.0.7-5.el7                      epel            318 k
 httpd-filesystem          noarch          2.4.41-4.codeit.el7              CodeIT           27 k
 libnghttp2                x86_64          1.31.1-2.el7                     epel             67 k
 libpath_utils             x86_64          0.2.1-32.el7                     base             28 k
 libtalloc                 x86_64          2.1.14-1.el7                     base             32 k
 sscg                      x86_64          2.5.1-1.el7                      epel             53 k
Обновление зависимостей:
 httpd-tools               x86_64          2.4.41-4.codeit.el7              CodeIT          1.3 M
 mod_ssl                   x86_64          1:2.4.41-4.codeit.el7            CodeIT          1.3 M

Итого за операцию
==================================================================================================
Установить  1 пакет  (+6 зависимых)
Обновить    2 пакета (+2 зависимых)

Объем загрузки: 4.8 M
Is this ok [y/d/N]: y

 Обратите внимание, что из репозитория CodeIt так же обновится и сам http сервер.
Так же я заменил старый /etc/httpd/conf.modules.d/00-proxy.conf на новый /etc/httpd/conf.modules.d/00-proxy.conf.rpmnew.

Готово, директива     Protocols h2 http/1.1 готова к использованию в конфигурации apache.
17 сент. 2019 г.

ISPManager 5 - вернуть общий лог /var/log/nginx/access.log

В ispmanager5 общий лог /var/log/nginx/access.log сервера по-умолчанию не пишется, все логи разбиты по доменам и пишутся в соответствующие /var/log/httpd-log/site.ru.access.log . Но иногда бывается очень полезно посмотреть общий лог сервера. И внезапно оказывается, что включить его через глобальный конфиг nginx не выйдет. А чтобы включить логгирование сделать нужно следующее: в директории /etc/nginx/vhosts-includes/ создаем файл log.conf (название файла может быть любым, главное, чтобы он оканчивался на conf ), а в него добавляем:
access_log /var/log/nginx/access.log main;
Сохраняем, делает рестарт сервиса nginx и проверяем лог с помощью tail -f /var/log/nginx/access.log 
4 сент. 2019 г.

Ошибка: Пакет: php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64 (remi-php56) Необходимо: libzip5(x86-64) >= 1.5.1

При обновлении php с версии php5.3 до php5.6 в Centos 6 возникает следующая ошибка
# yum update php
Загружены модули: fastestmirror, security
Подготовка к обновлению
Loading mirror speeds from cached hostfile
 * base: mirrors.daticum.com
 * epel: epel.uni-sofia.bg
 * extras: mirrors.daticum.com
 * remi-php56: mirrors.uni-ruse.bg
 * updates: mirrors.daticum.com
Разрешение зависимостей
--> Проверка сценария
---> Package php.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php.x86_64 0:5.6.40-13.el6.remi will be an update
--> Обработка зависимостей: php-common(x86-64) = 5.6.40-13.el6.remi для пакета: php-5.6.40-13.el6.remi.x86_64
--> Обработка зависимостей: php-cli(x86-64) = 5.6.40-13.el6.remi для пакета: php-5.6.40-13.el6.remi.x86_64
--> Проверка сценария
---> Package php-cli.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-cli.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-common.x86_64 0:5.3.3-49.el6 will be для обновления
--> Обработка зависимостей: php(api) = 20090626 для пакета: php-mcrypt-5.3.3-5.el6.x86_64
--> Обработка зависимостей: php(zend-abi) = 20090626 для пакета: php-mcrypt-5.3.3-5.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-pdo-5.3.3-49.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-mbstring-5.3.3-49.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-mysql-5.3.3-49.el6.x86_64
---> Package php-common.x86_64 0:5.6.40-13.el6.remi will be an update
--> Обработка зависимостей: php-pecl-jsonc(x86-64) для пакета: php-common-5.6.40-13.el6.remi.x86_64
--> Обработка зависимостей: php-pecl-zip(x86-64) для пакета: php-common-5.6.40-13.el6.remi.x86_64
--> Проверка сценария
---> Package php-mbstring.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-mbstring.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-mcrypt.x86_64 0:5.3.3-5.el6 will be для обновления
---> Package php-mcrypt.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-mysql.x86_64 0:5.3.3-49.el6 will be как недействительный
---> Package php-mysqlnd.x86_64 0:5.6.40-13.el6.remi will be obsoleting
---> Package php-pdo.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-pdo.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-pecl-jsonc.x86_64 0:1.3.10-2.el6.remi.5.6 will be для установки
---> Package php-pecl-zip.x86_64 0:1.15.4-1.el6.remi.5.6 will be для установки
--> Обработка зависимостей: libzip5(x86-64) >= 1.5.1 для пакета: php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64
--> Обработка зависимостей: libzip.so.5()(64bit) для пакета: php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64
--> Проверка зависимостей окончена
Ошибка: Пакет: php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64 (remi-php56)
            Необходимо: libzip5(x86-64) >= 1.5.1
Ошибка: Пакет: php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64 (remi-php56)
            Необходимо: libzip.so.5()(64bit)
 Вы можете попробовать --skip-broken чтобы обойти проблему
 Вы можете попробовать запустить: rpm -Va --nofiles --nodigest
То есть нужен libzip5.
Устанавливаем его вручную
yum --enablerepo=remi install libzip5

И пробуем еще раз обновление php
# yum update php
Загружены модули: fastestmirror, security
Подготовка к обновлению
Loading mirror speeds from cached hostfile
 * base: mirrors.daticum.com
 * epel: epel.uni-sofia.bg
 * extras: mirrors.daticum.com
 * remi-php56: mirrors.uni-ruse.bg
 * updates: mirrors.daticum.com
Пробуем другое зеркало.
Разрешение зависимостей
--> Проверка сценария
---> Package php.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php.x86_64 0:5.6.40-13.el6.remi will be an update
--> Обработка зависимостей: php-common(x86-64) = 5.6.40-13.el6.remi для пакета: php-5.6.40-13.el6.remi.x86_64
--> Обработка зависимостей: php-cli(x86-64) = 5.6.40-13.el6.remi для пакета: php-5.6.40-13.el6.remi.x86_64
--> Проверка сценария
---> Package php-cli.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-cli.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-common.x86_64 0:5.3.3-49.el6 will be для обновления
--> Обработка зависимостей: php(api) = 20090626 для пакета: php-mcrypt-5.3.3-5.el6.x86_64
--> Обработка зависимостей: php(zend-abi) = 20090626 для пакета: php-mcrypt-5.3.3-5.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-pdo-5.3.3-49.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-mbstring-5.3.3-49.el6.x86_64
--> Обработка зависимостей: php-common(x86-64) = 5.3.3-49.el6 для пакета: php-mysql-5.3.3-49.el6.x86_64
---> Package php-common.x86_64 0:5.6.40-13.el6.remi will be an update
--> Обработка зависимостей: php-pecl-jsonc(x86-64) для пакета: php-common-5.6.40-13.el6.remi.x86_64
--> Обработка зависимостей: php-pecl-zip(x86-64) для пакета: php-common-5.6.40-13.el6.remi.x86_64
--> Проверка сценария
---> Package php-mbstring.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-mbstring.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-mcrypt.x86_64 0:5.3.3-5.el6 will be для обновления
---> Package php-mcrypt.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-mysql.x86_64 0:5.3.3-49.el6 will be как недействительный
---> Package php-mysqlnd.x86_64 0:5.6.40-13.el6.remi will be obsoleting
---> Package php-pdo.x86_64 0:5.3.3-49.el6 will be для обновления
---> Package php-pdo.x86_64 0:5.6.40-13.el6.remi will be an update
---> Package php-pecl-jsonc.x86_64 0:1.3.10-2.el6.remi.5.6 will be для установки
---> Package php-pecl-zip.x86_64 0:1.15.4-1.el6.remi.5.6 will be для установки
--> Проверка зависимостей окончена

Зависимости разрешены

===============================================================================================
 Пакет                  Архитектура    Версия                         Репозиторий        Размер
===============================================================================================
Установка:
 php-mysqlnd            x86_64         5.6.40-13.el6.remi             remi-php56         280 k
     замена  php-mysql.x86_64 5.3.3-49.el6
Обновление:
 php                    x86_64         5.6.40-13.el6.remi             remi-php56         2.7 M
Установка зависимостей:
 php-pecl-jsonc         x86_64         1.3.10-2.el6.remi.5.6          remi-php56          52 k
 php-pecl-zip           x86_64         1.15.4-1.el6.remi.5.6          remi-php56          54 k
Обновление зависимостей:
 php-cli                x86_64         5.6.40-13.el6.remi             remi-php56         4.0 M
 php-common             x86_64         5.6.40-13.el6.remi             remi-php56         1.1 M
 php-mbstring           x86_64         5.6.40-13.el6.remi             remi-php56         973 k
 php-mcrypt             x86_64         5.6.40-13.el6.remi             remi-php56          52 k
 php-pdo                x86_64         5.6.40-13.el6.remi             remi-php56         122 k

Результат операции
===============================================================================================
Установить     3 пакет(а,ов)
Обновить     6 пакет(а,ов)

Объем загрузки: 9.2 M
Продолжить? [y/N]: y
Загрузка пакетов:
(1/9): php-5.6.40-13.el6.remi.x86_64.rpm                                | 2.7 MB     00:01    
(2/9): php-cli-5.6.40-13.el6.remi.x86_64.rpm                            | 4.0 MB     00:02    
(3/9): php-common-5.6.40-13.el6.remi.x86_64.rpm                         | 1.1 MB     00:00    
(4/9): php-mbstring-5.6.40-13.el6.remi.x86_64.rpm                       | 973 kB     00:00    
(5/9): php-mcrypt-5.6.40-13.el6.remi.x86_64.rpm                         |  52 kB     00:00    
(6/9): php-mysqlnd-5.6.40-13.el6.remi.x86_64.rpm                        | 280 kB     00:00    
(7/9): php-pdo-5.6.40-13.el6.remi.x86_64.rpm                            | 122 kB     00:00    
(8/9): php-pecl-jsonc-1.3.10-2.el6.remi.5.6.x86_64.rpm                  |  52 kB     00:00    
(9/9): php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64.rpm                    |  54 kB     00:00    
-----------------------------------------------------------------------------------------------
Общий размер                                                   1.5 MB/s | 9.2 MB     00:06    
Запуск rpm_check_debug
Проверяем сценарий
Проверка сценария прошла успешно
Запускается сценарий
  Установка   : php-pecl-jsonc-1.3.10-2.el6.remi.5.6.x86_64                               1/16
  Установка   : php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64                                 2/16
  Обновление  : php-common-5.6.40-13.el6.remi.x86_64                                      3/16
warning: /etc/php.ini created as /etc/php.ini.rpmnew
  Обновление  : php-cli-5.6.40-13.el6.remi.x86_64                                         4/16
  Обновление  : php-pdo-5.6.40-13.el6.remi.x86_64                                         5/16
  Установка   : php-mysqlnd-5.6.40-13.el6.remi.x86_64                                     6/16
  Обновление  : php-5.6.40-13.el6.remi.x86_64                                             7/16
  Обновление  : php-mbstring-5.6.40-13.el6.remi.x86_64                                    8/16
  Обновление  : php-mcrypt-5.6.40-13.el6.remi.x86_64                                      9/16
  Удаление    : php-mysql-5.3.3-49.el6.x86_64                                            10/16
  Очистка     : php-5.3.3-49.el6.x86_64                                                  11/16
  Очистка     : php-cli-5.3.3-49.el6.x86_64                                              12/16
  Очистка     : php-pdo-5.3.3-49.el6.x86_64                                              13/16
  Очистка     : php-mcrypt-5.3.3-5.el6.x86_64                                            14/16
  Очистка     : php-mbstring-5.3.3-49.el6.x86_64                                         15/16
  Очистка     : php-common-5.3.3-49.el6.x86_64                                           16/16
=====================================================================

  WARNING : PHP 5.6 have reached its "End of Life" in
  January 2019. Even, if this package includes some of
  the important security fix, backported from 7.1, the
  UPGRADE to a maintained version is very strongly RECOMMENDED.

=====================================================================
  Verifying   : php-5.6.40-13.el6.remi.x86_64                                             1/16
  Verifying   : php-common-5.6.40-13.el6.remi.x86_64                                      2/16
  Verifying   : php-mbstring-5.6.40-13.el6.remi.x86_64                                    3/16
  Verifying   : php-pecl-jsonc-1.3.10-2.el6.remi.5.6.x86_64                               4/16
  Verifying   : php-mcrypt-5.6.40-13.el6.remi.x86_64                                      5/16
  Verifying   : php-cli-5.6.40-13.el6.remi.x86_64                                         6/16
  Verifying   : php-mysqlnd-5.6.40-13.el6.remi.x86_64                                     7/16
  Verifying   : php-pecl-zip-1.15.4-1.el6.remi.5.6.x86_64                                 8/16
  Verifying   : php-pdo-5.6.40-13.el6.remi.x86_64                                         9/16
  Verifying   : php-pdo-5.3.3-49.el6.x86_64                                              10/16
  Verifying   : php-mbstring-5.3.3-49.el6.x86_64                                         11/16
  Verifying   : php-mysql-5.3.3-49.el6.x86_64                                            12/16
  Verifying   : php-mcrypt-5.3.3-5.el6.x86_64                                            13/16
  Verifying   : php-cli-5.3.3-49.el6.x86_64                                              14/16
  Verifying   : php-5.3.3-49.el6.x86_64                                                  15/16
  Verifying   : php-common-5.3.3-49.el6.x86_64                                           16/16

Установлено:
  php-mysqlnd.x86_64 0:5.6.40-13.el6.remi                                                     

Зависимости установлены:
  php-pecl-jsonc.x86_64 0:1.3.10-2.el6.remi.5.6   php-pecl-zip.x86_64 0:1.15.4-1.el6.remi.5.6 

Обновлено:
  php.x86_64 0:5.6.40-13.el6.remi                                                             

Зависимости обновлены:
  php-cli.x86_64 0:5.6.40-13.el6.remi             php-common.x86_64 0:5.6.40-13.el6.remi      
  php-mbstring.x86_64 0:5.6.40-13.el6.remi        php-mcrypt.x86_64 0:5.6.40-13.el6.remi      
  php-pdo.x86_64 0:5.6.40-13.el6.remi           

Заменено:
  php-mysql.x86_64 0:5.3.3-49.el6  
15 авг. 2019 г.

Автообновление wildcard сертификата letsencrypt

Получить wildcard сертификат letsencrypt  бесплатно сейчас довольно легко, через Letsencypt. С помощью подтверждения через DNS записи. Проблема лишь в том, что для продления сертификата оперцию придется повторить. У "больших" игроков на рынке есть специальные плагины для автообновления, как то certbot-dns-cloudflare или certbot-dns-digitalocean.  Сегодня же мы рассмотрим для этих целей плагин https://github.com/joohoi/acme-dns-certbot-joohoi .

Скрипт очень прост в использовании. Качаем его:
 # curl -o /etc/letsencrypt/acme-dns-auth.py https://raw.githubusercontent.com/joohoi/acme-dns-certbot-joohoi/master/acme-dns-auth.py
# chmod 0700 /etc/letsencrypt/acme-dns-auth.py
В случае необходимости настройки в скрипте можно отредактировать ( в частности ACMEDNS_URL ).

Теперь нужно выпустить сертификат. Для этого помимо стандартных опций для получения wildcard letsencrypt сертификата добавляется --manual-auth-hook , который указывает на этот самый скрипт, и который будет запомнен в качестве хука для домена на будущее продление.
 # certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py    --preferred-challenges dns --debug-challenges  -d example.org -d \*.example.org

Уточняем, что опция  --debug-challenges тут так же важна, она позволяет приостановить выполнение скрипта до момента, когда вы будете готовы к валидации CNAME записи.

Далее необходимо со стороны днс настроить запрашиваемую CNAME запись, подождать пока запись обновится, продолжить выполнение скрипта и получить сертификат.

Дальнейшее обновление может выполняться с помощью обычного крона и certbot renew.
20 июн. 2019 г.

Centos VestaCP - exim - Malformed value "unlimitedM" (expansion of "${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M") in local_delivery transport

На одном из серверов возникла проблема с получением писем. В логах почтового сервера наблюдаем следующее:
2019-06-20 14:36:37 1hdvMr-0000Iu-Fm DKIM: d=sender.net s=dkim c=relaxed/relaxed a=rsa-sha256 b=1024 [verification failed - signature did not verify (headers probably modified in transit)]
2019-06-20 14:36:37 1hdvMr-0000Iu-Fm <= sender@sender.net H=mail.sender.net [185.14.28.86] P=esmtps X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no K S=1527 id=0d4f9076-6cfb-6cfe-90f4-30ca6341e609@sender.net
2019-06-20 14:36:37 1hdvMr-0000Iu-Fm == admin@site.com.ua R=localuser T=local_delivery defer (-1): Malformed value "unlimitedM" (expansion of "${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}M") in local_delivery transport

Решением будет правка скрипта пересборки почтовых конфигов.
Нужно отредактировать скрипт  /usr/local/vesta/func/rebuild.sh. Ищем там функцию rebuild_mail_domain_conf() и добавляем в конец:
if [ "$QUOTA" = 'unlimited' ]; then
       QUOTA=0
fi
После чего пересобираем конфиги
v-rebuild-mail-domains admin
 Готово, прием почты должен работать корректно.