Обновление версии PHP для NextCloud

В одной из предыдущий публикаций я рассказывал о том, как выполняется установка NextCloud. При установке использовалась версии PHP 8.1. Для работы с последними версиями NextCloud (30+) рекомендуется использовать версию PHP 8.3. Если раньше в процессе установки вы выбрали версию PHP 8.1 и сейчас вам нужно обновиться PHP до рекомендуемой версии, то эта статья для вас. В публикации я покажу, как выполняется обновление версии PHP для NextCloud с 8.1 до 8.3.

Важный момент – гайд тестировался на сервере NextCloud с веб сервером Apache. Если у вас в качестве веб сервера используется Nginx, то, скорее всего вы используете php-fpm и вам нужно будет скорректировать директиву server в upstream php-handler.

Обновление версии PHP для NextCloud

Сначала необходимо добавить репозитории для PHP 8.3:

sudo apt-get install ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Теперь посмотрим перечень пакетов php, которые установлены в системе:

sudo apt list --installed php8*

Все эти пакеты нужно будет обновить до версии 8.3. Запускаем установку обновленных пакетов:

sudo apt install -y php8.3 libapache2-mod-php8.3 php8.3-bcmath php8.3-cli php8.3-common php8.3-curl php8.3-gd php8.3-gmp php8.3-igbinary php8.3-imagick php8.3-intl php8.3-ldap php8.3-mbstring php8.3-msgpack php8.3-memcached php8.3-mysql php8.3-opcache php8.3-readline php8.3-redis php8.3-xml php8.3-zip

После установки новой версии PHP не забываем скорректировать лимиты по потреблению памяти. Для сервера NextCloud рекомендуется установить потолок в 1 ГБ:

sudo nano /etc/php/8.3/apache2/php.ini

memory_limit = 1G

Теперь отключим PHP 8.1 и включим PHP 8.3.

sudo a2enmod php8.3
systemctl restart apache2
sudo a2dismod php8.1
systemctl restart apache2

Дополнительно мы потребовалось скорректировать параметры opcache:

sudo nano /etc/php/8.3/apache2/conf.d/10-opcache.ini
; configuration for php opcache module
; priority=10
zend_extension=opcache.so
opcache.jit=off
opcache.enable=1
opcache.enable_cli=1
opcache.save_comments=1
opcache.revalidate_freq=1
opcache.validate_timestamps=0
opcache.interned_strings_buffer=128
opcache.max_accelerated_files=10000
opcache.memory_consumption=512

Обновление версии PHP для NextCloud: 8 комментариев

  1. После введения всех команд, в браузере при открытия некстклауда, появляется такое сообщение:

    Internal Server Error

    The server encountered an internal error and was unable to complete your request.
    Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
    More details can be found in the server log.

    1. Добрый день! Посмотрите ошибки вот в этих журналах:
      – /var/log/apache2/error.log
      – /var/log/syslog

      Скорее всего в этих журналах будет более развернутое описание ошибки.

  2. root@3404827-xc57229:~# systemctl restart apache2
    root@3404827-xc57229:~# cat /var/log/apache2/error.log
    [Tue Jan 21 00:00:03.770003 2025] [mpm_prefork:notice] [pid 793643] AH00163: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 configured — resuming normal operations
    [Tue Jan 21 00:00:03.770062 2025] [core:notice] [pid 793643] AH00094: Command line: ‘/usr/sbin/apache2’
    [Tue Jan 21 14:37:54.641182 2025] [mpm_prefork:notice] [pid 829] AH00163: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 configured — resuming normal operations
    [Tue Jan 21 14:37:54.641390 2025] [core:notice] [pid 829] AH00094: Command line: ‘/usr/sbin/apache2’
    [Tue Jan 21 14:44:34.950527 2025] [mpm_prefork:notice] [pid 829] AH00170: caught SIGWINCH, shutting down gracefully
    [Tue Jan 21 14:44:35.040891 2025] [mpm_prefork:notice] [pid 2520] AH00163: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 configured — resuming normal operations
    [Tue Jan 21 14:44:35.041036 2025] [core:notice] [pid 2520] AH00094: Command line: ‘/usr/sbin/apache2’
    [Tue Jan 21 14:44:45.041766 2025] [mpm_prefork:notice] [pid 2520] AH00170: caught SIGWINCH, shutting down gracefully
    [Tue Jan 21 14:44:45.145000 2025] [mpm_prefork:notice] [pid 2566] AH00163: Apache/2.4.52 (Ubuntu) OpenSSL/3.0.2 configured — resuming normal operations
    [Tue Jan 21 14:44:45.145079 2025] [core:notice] [pid 2566] AH00094: Command line: ‘/usr/sbin/apache2’
    root@3404827-xc57229:~#

    В логах /var/log/syslog ничего нету, что связанно с ошибками…

    1. cat /var/log/syslog | grep -Ei “apache|error|fail|kill|crit”
      journalctl -ru apache2

      Попробуйте еще вот так поискать. Место не закончилось на диске?

  3. Логи совсем не показывают, что что-то либо не так. У меня в терминале показывает, что установлена 8.3 php, а в самом nextcloud также остается 8.1 php. Не могу скрин прикрепить, так бы более наглядно показал..

        1. Попробуйте тогда удалить все пакеты от старой версии PHP:
          sudo apt remove –purge php8.x*

          Только предварительно сохраните список всех ранее установленных пакетов php*

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

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