LogNotes

2025-06-15 08:18:21
Понял, если вы не планируете использовать другие версии PHP параллельно, то мы будем устанавливать PHP 8.0 из репозитория Remi как основную версию, и она будет доступна через команду `php` (а не `php80`). Это упрощает настройку, так как не требует использования SCL (Software Collections). Я скорректирую инструкцию, чтобы она была максимально чёткой и соответствовала вашему запросу — установка Apache (httpd) с PHP-FPM 8.0 на RHEL 8 с использованием Remi, где PHP будет доступен как `php`.

### Пошаговая инструкция

#### 1. **Обновление системы**
Обновите систему:
```bash
sudo dnf update -y
```

#### 2. **Установка Apache (httpd)**
Установите веб-сервер Apache:
```bash
sudo dnf install httpd -y
```

Запустите и включите автозапуск:
```bash
sudo systemctl start httpd
sudo systemctl enable httpd
```

Проверьте статус:
```bash
sudo systemctl status httpd
```

#### 3. **Добавление репозитория Remi**
Репозиторий Remi нужен для установки PHP 8.0.

1. Установите EPEL (зависимость для Remi):
   ```bash
   sudo dnf install epel-release -y
   ```

2. Установите Remi:
   ```bash
   sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
   ```

3. Проверьте доступные модули PHP:
   ```bash
   sudo dnf module list php
   ```
   Вы увидите `php:remi-8.0` в списке.

4. Активируйте модуль PHP 8.0:
   ```bash
   sudo dnf module reset php -y
   sudo dnf module enable php:remi-8.0 -y
   ```

#### 4. **Установка PHP 8.0 и PHP-FPM**
Установите PHP 8.0 и PHP-FPM с необходимыми расширениями:
```bash
sudo dnf install php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json -y
```

Запустите и включите автозапуск PHP-FPM:
```bash
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
```

Проверьте статус:
```bash
sudo systemctl status php-fpm
```

Проверьте версию PHP:
```bash
php -v
```
Ожидаемый вывод:
```
PHP 8.0.x (cli) ...
```

#### 5. **Настройка Apache для работы с PHP-FPM**
Настройте Apache для использования PHP-FPM через FastCGI.

1. Создайте конфигурационный файл:
   ```bash
   sudo nano /etc/httpd/conf.d/php-fpm.conf
   ```

2. Добавьте:
   ```apache
   <IfModule mod_proxy_fcgi.c>
       <FilesMatch \.php$>
           SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
       </FilesMatch>
   </IfModule>
   ```

3. Проверьте конфигурацию PHP-FPM:
   ```bash
   sudo nano /etc/php-fpm.d/www.conf
   ```

   Убедитесь, что используется сокет:
   ```ini
   listen = /run/php-fpm/www.sock
   ```

   Сохраните и закройте.

4. Перезапустите службы:
   ```bash
   sudo systemctl restart php-fpm
   sudo systemctl restart httpd
   ```

#### 6. **Проверка установки**
Создайте тестовый PHP-файл:
```bash
sudo nano /var/www/html/info.php
```

Добавьте:
```php
<?php
phpinfo();
?>
```

Откройте в браузере:
```
http://<ваш_IP_сервера>/info.php
```

Если отображается страница с информацией о PHP 8.0, установка успешна.

#### 7. **SELinux (при необходимости)**
Если SELinux включен (`sestatus`):
```bash
sudo setsebool -P httpd_execmem 1
sudo setsebool -P httpd_can_network_connect 1
sudo chcon -R -t httpd_sys_content_t /var/www/html/
```

#### 8. **Брандмауэр (при необходимости)**
Откройте порт HTTP:
```bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
```

#### 9. **Дополнительно**
- Удалите тестовый файл:
  ```bash
  sudo rm /var/www/html/info.php
  ```
- Проверяйте логи при ошибках:
  ```bash
  sudo tail -f /var/log/httpd/error_log
  sudo tail -f /var/log/php-fpm/error.log
  ```

### Ответ на ваш вопрос
PHP 8.0 будет доступен как команда **``php``**, а не `php80`, так как мы устанавливаем его как основную версию через модуль `php:remi-8.0` без использования SCL. Это подтверждается тем, что вы не планируете использовать другие версии PHP параллельно.

Если что-то не работает или нужны дополнительные шаги, напишите, я помогу!
← Previous Next →
Back to list