Установите PHP 8.3 на Rocky/AlmaLinux/CentOS 9|8.
PHP — отличный и универсальный язык программирования с открытым исходным кодом, популярный в веб-разработке. Известно, что PHP используется на основных веб-платформах, таких как WordPress и Joomla. Один из способов начать знакомство с PHP — установить его в своей локальной системе. В этой статье мы поделимся инструкциями по настройке PHP 8.3 на Rocky/AlmaLinux/CentOS 9|8. Существует множество ресурсов для людей, заинтересованных в изучении PHP. К ним относятся обучающие материалы в блогах, официальная документация, публичные форумы и тысячи проектов с открытым исходным кодом.
Включить репозитории Remi и EPEL
На момент написания этой статьи PHP 8.3 является самой последней версией. Пакеты PHP 8.3 доступны в стороннем репозитории RPM Remi. Мы собираемся добавить его в нашу систему.
### Rocky / AlmaLinux / CentOS 9 ###
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-9.rpm
### Rocky / AlmaLinux / CentOS 8 ###
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Нам также понадобится репозиторий EPEL в качестве зависимости.
### Rocky / AlmaLinux / CentOS 9 ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
### Rocky / AlmaLinux / CentOS 8 ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Обновите кэш dnf после добавления двух репозиториев.
sudo dnf makecache -y
Перечислите настроенные репозитории в системе.
$ sudo dnf repolist
repo id repo name
appstream CentOS Stream 9 - AppStream
baseos CentOS Stream 9 - BaseOS
epel Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
epel-next Extra Packages for Enterprise Linux 9 - Next - x86_64
extras-common CentOS Stream 9 - Extras packages
remi-modular Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 9 - x86_64
Сбросьте модуль PHP по умолчанию в системе.
sudo dnf module reset php -y
Установите PHP 8.3 и расширения.
Включить модуль PHP 8.3 Remi
sudo dnf module -y install php:remi-8.3
Это должно завершиться через несколько секунд.
Last metadata expiration check: 0:01:28 ago on Thu 08 Feb 2024 06:27:51 PM UTC.
Dependencies resolved.
======================================================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================================================
Installing group/module packages:
php-cli x86_64 8.3.2-1.el9.remi remi-modular 5.5 M
php-common x86_64 8.3.2-1.el9.remi remi-modular 1.2 M
php-fpm x86_64 8.3.2-1.el9.remi remi-modular 1.9 M
php-mbstring x86_64 8.3.2-1.el9.remi remi-modular 577 k
php-xml x86_64 8.3.2-1.el9.remi remi-modular 220 k
Installing dependencies:
httpd-filesystem noarch 2.4.57-6.el9 appstream 13 k
libxslt x86_64 1.1.34-9.el9 appstream 243 k
oniguruma5php x86_64 6.9.9-1.el9.remi remi-safe 219 k
Installing weak dependencies:
nginx-filesystem noarch 1:1.22.1-2.el9 appstream 12 k
Installing module profiles:
php/common
Enabling module streams:
php remi-8.3
Transaction Summary
======================================================================================================================================================================================================
Install 9 Packages
Total download size: 9.9 M
Installed size: 55 M
Downloading Packages:
...
Установите пакет php для использования CLI и других ключевых расширений.
sudo dnf -y install php php-{common,pear,cgi,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}
Проверьте текущую версию PHP, чтобы убедиться, что установка прошла успешно.
$ php --version
PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies
with Zend OPcache v8.3.2, Copyright (c), by Zend Technologies
Вы также можете запустить следующие команды, чтобы отобразить активные модули.
php --modules
Использование PHP с Nginx или Apache
Если вы используете виртуальные хосты Nginx или Apache, вы можете настроить их для использования PHP.
1) С веб-сервером Nginx
Вам потребуется PHP-FPM (FastCGI Process Manager) для прослушивания входящих запросов PHP и их выполнения.
sudo dnf install nginx php-fpm vim -y
Запустите и включите службы.
$ sudo systemctl enable --now nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
Настройте PHP-FPM для прослушивания сокета вместо IP и порта и установите другие конфигурации.
$ sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Перезапустите службу PHP FPM после применения изменений.
sudo systemctl restart php-fpm
Добавьте следующий блок в блок http
файла конфигурации Nginx для пересылки запросов PHP в PHP-FPM.
$ sudo vim /etc/nginx/nginx.conf
server {
listen 80;
server_name myapp.example.com;
root /var/www/myapp;
index index.php index.html;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
Проверьте синтаксис конфигурации.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
2) С веб-сервером Apache
Выполнение кода PHP на веб-сервере Apache обычно осуществляется с помощью модуля mod_php . Он поставляется в комплекте с Apache. Модули обрабатывают код PHP непосредственно в процессе Apache.
Если пакет сервера Apache httpd не установлен, выполните следующие действия.
sudo dnf -y install httpd php-fpm
Если Nginx активен, отключите его или измените адрес прослушивания с 80/443 на другой порт.
sudo systemctl disable --now nginx
Теперь запустите и включите службу httpd
.
sudo systemctl enable --now httpd php-fpm
Тестирование установки PHP 8.3
Создайте тестовый файл PHP в корневом каталоге веб-сайта /var/www/html/, чтобы проверить работу PHP.
sudo echo "<?php phpinfo(); ?>" > /var/www/html/test.php
Откройте тестовую страницу PHP по адресу http://localhost_or_serverip/test.php.
Мы можем подтвердить, что PHP работает так, как ожидалось. Теперь вы можете удалить тестовый скрипт.
sudo rm -f /var/www/html/test.php
Вот список лучших книг по PHP и веб-технологиям, которые стоит прочитать.
- Лучшие книги для освоения веб-дизайна
- Лучшие книги для изучения веб-разработки — PHP, HTML, CSS, JavaScript и jQuery.
- Лучшие книги для изучения CSS и CSS3
- Лучшие книги для изучения HTML и HTML5
- Лучшие справочники по Apache и Nginx
Для получения более подробной информации о PHP посетите документацию php.net.