remonter vers le haut
Installation des pilotes PHP8 SQL Server sous Debian 9/10/11 par Promatec Digital | Temps de lecture : 2 minutes
Partager sur Facebook Partager sur Twitter Partager sur Linkedin
Contactez l'Agence Web Promatec Digital

Blog de L'Agence Web Promatec Digital WordPress, WooCommerce, SEO, Optimisation ...

Dans ce tutoriel nous allons voir comment installer PHP 8.0, le pilote ODBC de Microsoft, Apache et les différents pilotes Microsoft SQL Server pour PHP sous Debian 9/10/11

Première étape : Installer PHP8

sudo su
apt-get install curl apt-transport-https
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get install -y php8.0 php8.0-dev php8.0-xml php8.0-intl

Deuxième étape : Installer les ODBC Driver

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Choisir le package qui correspond à votre version

Pour Debian 9 :

curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list

Pour Debian 10 :

curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list

Pour Debian 11 :

curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list

Après avoir installé la bonne version du package Debian il ne vous reste plus qu’à mettre vos packages à jour et installer le package “unixodbc-dev

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
sudo apt-get install -y unixodbc-dev

Troisième étape : Génération des paramètres régionaux

sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen

Quatrième étape : Installation des pilotes PHP pour Microsoft SQL Server

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

Remarque : Si vous n’avez qu’une version de PHP installer dans le système, la dernière commande peut être raccourcie en «  phpenmod sqlsrv pdo_sqlsrv »

Cinquième étape : Installation de Apache et configuration du chargement du pilote

sudo su
apt-get install libapache2-mod-php8.0 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.0	
sudo service apache2 restart

La procédure d’installation est maintenant terminée, vous pouvez désormais effectuer des requêtes vers une base de données SQL Server sans problème.

Comment tester si les pilotes sont bien activés ?

Pour vérifier si les pilotes sont bien installés, utilisez la fonction PHP PDO::getAvailableDrivers() ; celle-ci vous retournera la liste des pilotes PDO disponibles :

print_r(PDO::getAvailableDrivers());

Résultat de l’exemple ci-dessus est similaire à :

Array
(
    [0] => mysql
    [1] => sqlsrv
)

Votre pilote (sqlsrv) est alors bien activé.

File d’attente de connexion et performance SQL Server

Comme indiqué dans la doc PHP.net (sqlsrv_connect) ; par défaut, la fonction PHP sqlsrv_connect() utilise la file d’attente de connexion au serveur afin d’augmenter les performances. Pour désactiver cette file d’attente (i.e. et ainsi, forcer une nouvelle connexion à chaque appel à la fonction), définissez l’option “ConnectionPooling” dans le tableau $connectionOptions à 0 (ou false).

Sous Debian, modifiez le fichier odbcinst.ini (/etc/odbcinst.ini) en ajoutant Pooling=No :

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.1
UsageCount=1
[ODBC]
Pooling=No

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *