Поиск по сайту:

Установите 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.