Как обновить PHP 5.6 до 7 версии

На одном из проектов, основанном на Bitrix, протухла версия PHP (5.6), было решено провести апдейт. В процессе вылезли некоторые нюансы, а которых и расскажу.

Сам процесс обновления прост: yum update php

Или же через скрипт битрикс /root/menu.sh

При обновлении может возникнуть ошибка, не дающая выполнять даже yum update, ругаясь на пакет php-xcache (или какой-то ещё). Причина тому при обновлении 5.6 на 7.х, что в последних php такого пакета нет, поэтому его просто можно удалить.

После обновления проверяем версию php -v и видим, что PHP обновился до нужной (7.0 или выше).

Случилось так, что после обновления php на сервере в ручном режиме, в админке битриксового портала версия не изменилась и по-прежнему пишет, что используется устаревшая 5.6. Проблема из-за модуля php в httpd, который просто не подгружен . Для устранения убеждаемся, что проблема в этом:

httpd -M

На выходе:

httpd: Syntax error on line 106 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/bx/conf/php.conf: Cannot load /etc/httpd/modules/libphp5.so into server: /etc/httpd/modules/libphp5.so: cannot open shared object file: No such file or directory

Смотрим проблемный файл /etc/httpd/bx/conf/php.conf и видим:

<IfModule prefork.c>
        LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
        LoadModule php5_module modules/libphp5-zts.so
</IfModule>

Все версии php5 заменяем на php7 и мягкий рестарт апача:

service httpd reload

Также после обновления стоит проверить файл hosts

Выявлено, что при неудачном обновлении через скрипт битрикса и последующем ручном обновлении, файл hosts затирается битриксом, в котором прописаны нужные айпишники, в т.ч. для отправки почты, а postfix ругается на:

fatal: config variable inet_interfaces: host not found: localhost


Ваш комментарий будет первым

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *