Как установить PHP на CentOS 8

PHP — один из наиболее часто используемых языков программирования на стороне сервера. Многие популярные CMS и фреймворки, такие как WordPress, Magento и Laravel, построены на PHP.

В этом руководстве мы обсудим, как установить PHP 7.2, 7.3 или 7.4 на CentOS 8. Перед тем, как выбрать версию PHP для установки, убедитесь, что ваши приложения ее поддерживают.

Мы также покажем вам, как интегрировать PHP с Nginx и Apache.

Установка PHP на CentOS 8

CentOS 8 распространяется с PHP 7.2. Эта версия поддерживает большинство современных приложений PHP, но более не будет активно поддерживаться с ноября 2019 года. Новые версии PHP доступны в репозитории Remi .

Включите репозиторий Remi

Если вы собираетесь установить стабильную версию дистрибутива PHP 7.2, пропустите этот шаг. В противном случае, если вы хотите установить PHP 7.3 или 7.4, включите репозиторий Remi, выполнив следующую команду от имени пользователя root или пользователя с привилегиями sudo :

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Приведенная выше команда также активирует репозиторий EPEL .

После завершения установки запустите команду ниже, чтобы получить список всех доступных версий PHP :

sudo dnf module list php

В выводе будет показан список всех доступных модулей, включая связанный поток, версию и профили установки.

Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name    Stream       Profiles                     Summary                 
php     7.2 [d][e]   common [d], devel, minimal   PHP scripting language  

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name    Stream       Profiles                     Summary                 
php     remi-7.2     common [d], devel, minimal   PHP scripting language  
php     remi-7.3     common [d], devel, minimal   PHP scripting language  
php     remi-7.4     common [d], devel, minimal   PHP scripting language  

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Модуль PHP по умолчанию установлен на PHP 7.2. Чтобы установить более новую версию PHP, включите соответствующую версию:

PHP 7.3

sudo dnf module reset phpsudo dnf module enable php:remi-7.3

PHP 7.4

sudo dnf module reset phpsudo dnf module enable php:remi-7.4

Теперь вы готовы установить PHP на свой сервер CentOS.

Установить PHP

Следующая команда установит PHP и некоторые из наиболее распространенных модулей PHP:

sudo dnf install php php-opcache php-gd php-curl php-mysqlnd

FPM устанавливается как зависимость и используется как сервер FastCGI. Запустите службу FPM и включите ее автоматический запуск при загрузке:

sudo systemctl enable --now php-fpm

Настройка PHP для работы с Apache

Если в вашей системе работает SELinux , вам необходимо обновить контекст безопасности SELinux:

sudo chcon -Rt httpd_sys_rw_content_t /var/www

Если вы используете Apache в качестве веб-сервера, перезапустите службу httpd с помощью следующей команды, и все готово:

sudo systemctl restart httpd

Настройка PHP для работы с Nginx

По умолчанию PHP FPM работает как пользовательский apache . Чтобы избежать проблем с разрешениями, мы изменим пользователя на nginx . Для этого отредактируйте строки, выделенные желтым:

sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf
...
user = nginx
...
group = nginx

Убедитесь, что директория /var/lib/php имеет правильного владельца :

chown -R root:nginx /var/lib/php

После этого перезапустите службу PHP FPM:

sudo systemctl restart php-fpm

Затем отредактируйте директиву виртуального хоста Nginx и добавьте следующий блок местоположения, чтобы Nginx мог обрабатывать файлы PHP:

server {

    # . . . other code

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Чтобы новая конфигурация вступила в силу, перезапустите службу Nginx :

sudo systemctl restart nginx

Обновите контекст безопасности SELinux:

sudo chcon -Rt httpd_sys_rw_content_t /var/www

Выводы

PHP 7.2 доступен для установки из репозиториев CentOS 8 по умолчанию. Если вы хотите установить более свежую версию, вам необходимо включить репозиторий Remi.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий