
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.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Эта публикация является частью серии «Установка LAMP Stack на CentOS 8» .
Другие посты в этой серии:
Не используете CentOS 8?
Выберите другую ОС: центос 7 дебиан 10 дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства
- Как установить и использовать PHP Composer на CentOS 8
- Как установить phpMyAdmin с Nginx на CentOS 7
- Как установить и защитить phpMyAdmin с помощью Apache на CentOS 7
- Как установить и использовать PHP Composer на CentOS 7
- Установка PHP 7 на CentOS 7
- Как установить Apache Maven на CentOS 8
- Как установить Vagrant на CentOS 8