# Проблема совместимости PHP версии
Ошибка указывает, что **PECL пакет sqlsrv требует PHP 8.3.0 или выше, а у вас установлена версия 8.1.2**.
---
## Решение 1: Обновить PHP до 8.3+ (рекомендуется)
### Добавьте PPA с новыми версиями PHP
```bash
Код: Выделить всё
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
```
### Установите PHP 8.3
```bash
Код: Выделить всё
sudo apt-get install -y php8.3 php8.3-dev php8.3-fpm php8.3-cli
```
### Установите расширения для PHP 8.3
```bash
Код: Выделить всё
sudo apt-get install unixodbc-dev php8.3-xml
# Установите Microsoft ODBC Driver (если ещё не установлен)
curl
https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
Код: Выделить всё
sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list)"
sudo apt-get update
sudo apt-get install -y msodbcsql18
# Установите расширения через PECL
Код: Выделить всё
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
```
Затем проверьте, что расширение загружено:
### Активируйте расширения для PHP 8.3
```bash
Код: Выделить всё
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.3/cli/conf.d/20-pdo_sqlsrv.ini'
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.3/fpm/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.3/fpm/conf.d/20-pdo_sqlsrv.ini'
```
Проблема: PHP ищет расширения в /usr/lib/php/20230831/, а они установлены в /usr/lib/php/20210902/.
Это мismatch между версиями PHP API. Нужно скопировать файлы в правильную директорию.
Код: Выделить всё
sudo ln -s /usr/lib/php/20210902/sqlsrv.so /usr/lib/php/20230831/sqlsrv.so
sudo ln -s /usr/lib/php/20210902/pdo_sqlsrv.so /usr/lib/php/20230831/pdo_sqlsrv.so
### Перезагрузите сервис
```bash
```
### Установите 8.3 как версию по умолчанию
```bash
Код: Выделить всё
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.3 100
sudo update-alternatives --install /usr/bin/php-config php-config /usr/bin/php-config8.3 100
sudo update-alternatives --install /usr/bin/phpize phpize /usr/bin/phpize8.3 100
```
### Проверьте версию и расширения
```bash
Код: Выделить всё
php -v
php -m | grep sqlsrv
php -m | grep pdo_sqlsrv
```
---
## Решение 2: Использовать более старую версию sqlsrv для PHP 8.1
Если вы **не хотите обновлять PHP**, можно установить старую версию sqlsrv:
```bash
sudo pecl install sqlsrv-5.10.1
sudo pecl install pdo_sqlsrv-5.10.1
```
Затем активируйте расширения для PHP 8.1:
```bash
sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-sqlsrv.ini'
sudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.1/cli/conf.d/20-pdo_sqlsrv.ini'
```
Перезагрузитесь:
```bash
sudo systemctl restart php8.1-fpm
```
---
## Решение 3: Просто используйте CloudBeaver (самое простое)
**CloudBeaver вообще не требует PHP**. Это Java-приложение, и вам не нужны все эти манипуляции с расширениями:
```bash
cd ~/cloudbeaver
docker-compose up -d
```
Откройте **
http://localhost:8978** и используйте полнофункциональный веб-IDE.
---
## Мой рекомендуемый путь
1. **Если CloudBeaver вам подошел** → забудьте о PHP расширениях, просто используйте его
2. **Если нужен PHP инструмент (Adminer/другое)** → обновите PHP на 8.3 (Решение 1)
Какой вариант вам нравится больше?