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 php
sudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset php
sudo 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
...
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.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Этот пост является частью серии Install LAMP Stack on CentOS 8. Другие сообщения из этой серии: