Способы инсталляции PHP для Oracle Linux

Раздел: Администрирование Linux -> Установка и настройка PHP на Linux

Установка PHP на Oracle Linux: пошаговое руководство

Основной способ: репозиторий REMI

Репозиторий REMI предоставляет самые свежие версии PHP для RHEL-совместимых систем, включая Oracle Linux. Это предпочтительный вариант, если нужна актуальная версия с возможностью выбора модулей.

Шаги:

sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module enable php:remi-8.2 -y
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-xml php-json php-gd php-mbstring

Linux apache php (настройка apache и php в linux)

Пояснения: сначала подключается EPEL (необходим для REMI), затем сам REMI, активируется модуль с нужной веткой (здесь 8.2) и устанавливается набор базовых пакетов.

Проблема: No package php-xxx available - возможно, не включён модуль или используется неподходящая версия Oracle Linux. Решение: проверить dnf repolist, убедиться, что REMI активен.

Проблема: конфликт с модулем php из AppStream. Решение: отключить AppStream модуль командой sudo dnf module reset php.

Как установить PHP из стандартного репозитория AppStream?

Oracle Linux поставляется с модулем php в AppStream. Этот способ прост, но часто предлагает устаревшие версии.

sudo dnf module list php
sudo dnf module enable php:8.0 -y
sudo dnf install php php-cli

Php fpm linux (настройка php-fpm в linux)

Цель: быстрая установка без подключения сторонних репозиториев. Используется, когда версия не критична.

Проблема: версия 7.2 или 7.4 по умолчанию, не подходит для новых приложений. Решение: переключиться на более новую через dnf module enable php:remi-8.1, предварительно подключив REMI.

Как собрать PHP из исходных кодов для максимальной гибкости?

Компиляция позволяет задать любые параметры сборки, исключить лишние модули и оптимизировать под конкретную архитектуру.

wget https://www.php.net/distributions/php-8.2.10.tar.gz
tar xzf php-8.2.10.tar.gz
cd php-8.2.10
./configure --prefix=/opt/php8.2 --with-openssl --with-pdo-mysql --enable-fpm
make -j$(nproc)
sudo make install

Linux версия php (проверка версии php в linux)

Цель: встроить редкие расширения, изменить пути по умолчанию, использовать на встраиваемых системах.

Проблема: зависимые библиотеки не установлены (например, libxml2, openssl). Решение: предварительно поставить dnf install libxml2-devel openssl-devel sqlite-devel.

Проблема: configure не находит mysql. Решение: указать --with-pdo-mysql=mysqlnd.

Как использовать Docker для изолированной установки PHP?

Контейнер Docker исключает влияние на хост-систему и упрощает перенос окружения.

docker run -d --name php-web -p 9000:9000 php:8.2-fpm-alpine
docker exec -it php-web php -v

Linux установить php (установка php в linux)

Цель: тестирование разных версий, микросервисная архитектура, CI/CD.

Проблема: файлы не создаются на хосте. Решение: смонтировать папку через -v /host/path:/var/www/html.

Как переключаться между несколькими версиями PHP на одном сервере?

Репозиторий REMI позволяет устанавливать несколько веток параллельно через модули и альтернативные префиксы.

sudo dnf module enable php:remi-7.4 -y
sudo dnf install php74
sudo dnf module enable php:remi-8.2 -y
sudo dnf install php82

Цель: поддержка старых проектов одновременно с новыми.

Проблема: конфликт команд php. Решение: использовать полные пути /opt/remi/php74/root/usr/bin/php или настроить альтернативы alternatives --config php.

- Php oracle linux (установка php на oracle linux)

Примеры расширенной настройки PHP

1. Установка PHP-FPM с кастомным пулом

Пример
sudo dnf install php-fpm
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/myapp.conf
sudo sed -i 's/^user = .*/user = myuser/' /etc/php-fpm.d/myapp.conf
sudo sed -i 's/^group = .*/group = mygroup/' /etc/php-fpm.d/myapp.conf
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Результат: отдельный пул для приложения с собственным пользователем. Проверка: ps aux | grep php-fpm.

2. Установка расширений Redis и Imagick

Пример
sudo dnf install php-redis php-imagick
# Если расширения нет в репозитории, собрать из PECL
sudo dnf install php-pear php-devel
sudo pecl install redis
echo "extension=redis.so" | sudo tee /etc/php.d/30-redis.ini

Результат: php -m | grep redis покажет модуль. Ошибка: pecl не найден - установить php-pear.

3. Настройка Xdebug для отладки

Пример
sudo dnf install php-xdebug
# или через pecl
sudo pecl install xdebug
# Настройка /etc/php.d/xdebug.ini
cat << 'EOF' | sudo tee /etc/php.d/xdebug.ini
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
EOF
sudo systemctl restart php-fpm

Результат: PHP автоматически подключает отладчик. Проверка: php -i | grep xdebug.

4. Установка Composer и настройка авто-загрузки

Пример
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer --version

Результат: Composer глобально доступен. Проблема: openssl не включён - добавить --with-openssl при сборке PHP.

5. Включение OPcache и настройка для продакшена

Пример
# В /etc/php.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
sudo systemctl restart php-fpm

Результат: скорость выполнения кода возрастает в 2-5 раз. Проверка: php -i | grep opcache.

6. Установка нескольких версий PHP с помощью SCLo (Software Collections)

Пример
sudo dnf install centos-release-scl
sudo dnf install rh-php80
scl enable rh-php80 bash
php -v

Результат: временное окружение с PHP 8.0. Постоянная активация через /etc/profile.d. Примечание: SCLo устарел, рекомендуется REMI.

Установка PHP на Oracle Linux - comments

En
Php oracle linux (php)