X

Magento 2.3: Установка PHP7.1 в Ubuntu

Один из проектов разработали на Magento версии 2.3.0 и для дальнейшей поддержки, которую мне предстоит делать по этому проекту потребовалось установить локально php версии 7.1, параллельно версии 7.0, которая используется для более старых Magento. Делается это не сложно..

Подключаем репозиторий ondrej

sudo add-apt-repository ppa:ondrej/php

обновляем список пакетов

sudo apt-get -y update

устанавливаем php, в моем случае, это nginx+php-fpm, поэтому вот так

sudo apt-get install -y php7.1 php7.1-fpm php7.1-common \
php7.1-gd php7.1-mysql php7.1-curl php7.1-intl php7.1-xsl \
php7.1-mbstring php7.1-zip php7.1-bcmath php7.1-iconv \
php7.1-soap

для Apache с модулем php так

sudo apt-get install -y php7.1 libapache2-mod-php7.1 php7.1-common \
php7.1-gd php7.1-mysql php7.1-curl php7.1-intl php7.1-xsl \
php7.1-mbstring php7.1-zip php7.1-bcmath php7.1-iconv \
php7.1-soap

Далее подразумевается, что nginx у вас уже установлен и настроен на 7.0 или другую версию.

Теперь, для nginx добавляем новый upstream, например в /etc/nginx/nginx.conf

http {
    ...
    upstream fastcgi_backend_71 {
        server  unix:/run/php/php7.1-fpm.sock;
    }

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

/run/php/php7.1-fpm.sock - этот путь должен совпадать с настройкой в пуле php-fpm, по-умолчанию в этом файле: /etc/php/7.1/fpm/pool.d/www.conf

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
;                            a specific port;
;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /run/php/php7.1-fpm.sock

Далее указываем upstream в location-ах файла nginx.conf.sample (который находится в корне magento), примерно так

...
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend_71; # <- везде где fastcgi_backend, меняем на наш fastcgi_backend_71
    ...
}
...

Так же при необходимости меняем пользователя и группу, в файле /etc/php/7.1/fpm/pool.d/www.conf , я обычно меняю на своего пользователя, так нет проблем с правами

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = vitto
group = vitto

Теперь перезапускаем php-fpm

sudo systemctl restart php7.1-fpm

проверяем все ли ок с конфигурацией nginx

sudo nginx -t

и перезапускаем его

sudo systemctl restart nginx

Вот и все, все работает. Могу предположить, что у вас остались вопросы, поэтому пишите их в комментариях 🙂

Категории: Magento