Tutoriel : Installation sur Linux et macOS des pilotes Microsoft pour PHP pour SQL Server
Article
Les instructions suivantes supposent que votre environnement est sain. Elles montrent comment installer PHP 8.1, le pilote ODBC Microsoft, le serveur Web Apache et les pilotes Microsoft pour PHP pour SQL Server sur Ubuntu, Red Hat, Debian, SUSE, Alpine et macOS. Ces instructions conseillent d’installer les pilotes à l’aide de PECL, mais vous pouvez également télécharger les fichiers binaires prédéfinis à partir de la page de projet GitHub des pilotes Microsoft pour PHP pour SQL Server et les installer en suivant les instructions fournies dans Chargement des pilotes Microsoft SQL Server pour PHP. Pour obtenir une explication concernant le chargement d’extension et savoir pourquoi nous n’ajoutons pas les extensions à php.ini, consultez la section sur le chargement des pilotes.
Les instructions suivantes installent PHP 8.1 par défaut en utilisant pecl install si les packages PHP 8.1 sont disponibles. Vous devrez peut-être d’abord exécuter pecl channel-update pecl.php.net. Certaines distributions de Linux prises en charge utilisent par défaut PHP 7.1 ou antérieur, qui n’est pas pris en charge pour la dernière version des pilotes PHP pour SQL Server. Consultez les notes au début de chaque section pour installer PHP 8.2 ou 8.3 à la place.
Vous trouverez également des instructions pour l’installation du gestionnaire de processus PHP FastCGI, PHP-FPM, sur Ubuntu. PHP-FPM est nécessaire si vous utilisez le serveur web nginx au lieu d’Apache.
Bien que ces instructions contiennent des commandes pour installer les pilotes SQLSRV et PDO_SQLSRV, les pilotes peuvent être installés et fonctionner de manière indépendante. Les utilisateurs familiarisés avec la personnalisation de leur configuration peuvent ajuster ces instructions pour être spécifiques à SQLSRV ou PDO_SQLSRV. Les deux pilotes ont les mêmes dépendances sauf dans les cas indiqués ci-dessous.
Reportez-vous à la Matrice de prise en charge pour connaître la dernière version des systèmes d’exploitation pris en charge.
Installez le pilote ODBC pour Ubuntu en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev. Il est utilisé par la commande pecl pour installer les pilotes PHP.
sudo apt-get install unixodbc-dev
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (Ubuntu)
Étape 2. Installer les prérequis (Ubuntu avec PHP-FPM)
Installez le pilote ODBC pour Ubuntu en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev. Il est utilisé par la commande pecl pour installer les pilotes PHP.
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (Ubuntu avec PHP-FPM)
Pour configurer nginx, vous devez modifier le fichier /etc/nginx/sites-available/default. Ajoutez index.php à la liste située sous la section qui indique # Add index.php to the list if you are using PHP :
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
Ensuite, décommentez et modifiez la section suivant # pass PHP scripts to FastCGI server, comme ceci :
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Étape 5. Redémarrer nginx et tester l’exemple de script (Ubuntu avec PHP-FPM)
Pour installer PHP sur Red Hat 7, exécutez les commandes suivantes :
Notes
Pour installer PHP 8.2 ou 8.3, remplacez remi-php81 par remi-php82 ou remi-php83 respectivement dans les commandes suivantes.
sudo su
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install yum-utils
yum-config-manager --enable remi-php81
yum update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
yum install php php-pdo php-pear php-devel
Pour installer PHP sur Red Hat 8, exécutez les commandes suivantes :
Notes
Pour installer PHP 8.2 ou 8.3, remplacez remi-8.1 par remi-8.2 ou par remi-8.3 respectivement dans les commandes suivantes.
sudo su
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
dnf module reset php
dnf module install php:remi-8.1
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
dnf install php-pdo php-pear php-devel
Étape 2. Installer les prérequis (Red Hat)
Installez le pilote ODBC pour Red Hat 7 ou 8 en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev. Il est utilisé par la commande pecl pour installer les pilotes PHP.
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (Red Hat)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini
exit
Vous pouvez également effectuer l’installation à partir du référentiel Remi :
sudo yum install php-sqlsrv
Étape 4. Installer Apache (Red Hat)
sudo yum install httpd
SELinux est installé par défaut et s’exécute en mode forcé. Pour autoriser Apache à se connecter aux bases de données par le biais de SELinux, exécutez la commande suivante :
sudo setsebool -P httpd_can_network_connect_db 1
Étape 5. Redémarrer Apache et tester l’exemple de script (Red Hat)
Installez le pilote ODBC pour Debian en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev. Il est utilisé par la commande pecl pour installer les pilotes PHP.
Vous devrez peut-être aussi générer les paramètres régionaux corrects pour que la sortie PHP s’affiche correctement dans un navigateur. Par exemple, pour les paramètres régionaux UTF-8 en_US, exécutez les commandes suivantes :
sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen
Vous devrez peut-être ajouter /usr/sbin à votre $PATH, car le fichier exécutable locale-gen se trouve ici.
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (Debian)
S’il n’y a qu’une version de PHP dans le système, la dernière étape peut être simplifiée en phpenmod sqlsrv pdo_sqlsrv. Comme avec locale-genphpenmod se trouve dans /usr/sbin, vous devrez peut-être ajouter ce répertoire à votre $PATH.
Étape 4. Installer Apache et configurer le chargement du pilote (Debian)
Dans les instructions suivantes, remplacez <SuseVersion> par votre version de SUSE. Si vous utilisez SUSE Linux Enterprise Server 15, il s’agira de SLE_15_SP3 ou de SLE_15_SP4 (ou une version ultérieure). Pour SUSE 12, utilisez SLE_12_SP5 (ou une version ultérieure). Toutes les versions de PHP ne sont pas disponibles pour toutes les versions de SUSE Linux. Consultez http://download.opensuse.org/repositories/devel:/languages:/php pour voir pour quelles versions de SUSE la version par défaut de PHP est disponible, ou http://download.opensuse.org/repositories/devel:/languages:/php:/ pour voir quelles autres versions de PHP sont disponibles pour les différentes versions de SUSE.
Notes
Les packages pour PHP 7.4 ou une version ultérieure ne sont pas disponibles pour SUSE 12 à l’heure actuelle.
Étape 1. Installer PHP (SUSE)
sudo su
zypper -n ar -f https://download.opensuse.org/repositories/devel:languages:php/<SuseVersion>/devel:languages:php.repo
zypper --gpg-auto-import-keys refresh
zypper -n install php8 php8-pdo php8-devel php8-openssl
Étape 2. Installer les prérequis (SUSE)
Installez le pilote ODBC pour SUSE en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev. Il est utilisé par la commande pecl pour installer les pilotes PHP.
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (SUSE)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/sqlsrv.ini
exit
Étape 4. Installer Apache et configurer le chargement du pilote (SUSE)
PHP 8.1 ou ultérieur peut être disponible dans des référentiels de test ou secondaires pour Alpine. À la place, vous pouvez compiler PHP à partir de la source.
Étape 1. Installer PHP (Alpine)
Les packages PHP pour Alpine se trouvent dans le référentiel edge/community. Consultez Activer le référentiel de la communauté sur sa page Wiki. Ajoutez la ligne suivante à /etc/apk/repositories en remplaçant <mirror> par l’URL d’un miroir de référentiel Alpine :
http://<mirror>/alpine/edge/community
Ensuite, exécutez :
sudo su
apk update
# Note: The php*-pdo package is required only for the PDO_SQLSRV driver
# For PHP 7.*
apk add php7 php7-dev php7-pear php7-pdo php7-openssl autoconf make g++
# For PHP 8.*
apk add php8 php8-dev php8-pear php8-pdo php8-openssl autoconf make g++
# The following symbolic links are optional but useful
ln -s /usr/bin/php8 /usr/bin/php
ln -s /usr/bin/phpize8 /usr/bin/phpize
ln -s /usr/bin/pecl8 /usr/bin/pecl
ln -s /usr/bin/php-config8 /usr/bin/php-config
Étape 2. Installer les prérequis (Alpine)
Installez le pilote ODBC pour Alpine en suivant les instructions fournies dans Installer Microsoft ODBC Driver for SQL Server (Linux). Assurez-vous d’installer également le package unixodbc-dev (sudo apk add unixodbc-dev). Il est utilisé par la commande pecl pour installer les pilotes PHP.
Étape 3. Installer les pilotes PHP pour Microsoft SQL Server (Alpine)
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/10_pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20_sqlsrv.ini
Étape 4. Installer Apache et configurer le chargement du pilote (Alpine)
# For PHP 7.*
sudo apk add php7-apache2 apache2
# For PHP 8.*
sudo apk add php8-apache2 apache2
Étape 5. Redémarrer Apache et tester l’exemple de script (Alpine)
Pour installer PHP 8.2 ou 8.3, remplacez php@8.1 par php@8.2 ou par php@8.3 respectivement dans les commandes suivantes.
Étape 1. Installer PHP (macOS)
brew tap
brew tap homebrew/core
brew install php@8.1
PHP doit maintenant être présent dans votre chemin. Exécutez php -v pour vérifier que vous exécutez la bonne version de PHP. Si PHP ne se trouve pas dans votre chemin ou s’il ne s’agit pas de la version correcte, exécutez les commandes suivantes :
brew link --force --overwrite php@8.1
Si vous utilisez Apple M1 ARM64, vous devrez peut-être définir le chemin :
Étape 4. Installer Apache et configurer le chargement du pilote (macOS)
Notes
La dernière version de macOS 11.0 Big Sur est fournie avec Apache 2.4 préinstallé, mais Apple a également supprimé certains scripts requis. La solution consiste à installer Apache 2.4 via Homebrew puis à le configurer, mais cela n’entre pas dans le cadre de ce guide d’installation. Par conséquent, renseignez-vous auprès d’Apache ou Homebrew pour obtenir des instructions détaillées.
brew install apache2
Pour rechercher le fichier de configuration Apache, httpd.conf, pour votre installation Apache, exécutez :
Les commandes suivantes ajoutent la configuration requise à httpd.conf. Veillez à substituer le chemin retourné par la commande précédente à /usr/local/etc/httpd/httpd.conf :
Pour tester cet exemple de script, créez un fichier nommé testsql.php à la racine de document de votre système. Les chemins sont les suivants : /var/www/html/ sur Ubuntu, Debian et Red Hat, /srv/www/htdocs sur SUSE, /var/www/localhost/htdocs sur Alpine et /usr/local/var/www sur macOS. Copiez-y le script suivant, en remplaçant le serveur de base de données, le nom d’utilisateur et le mot de passe comme il convient.
Dirigez votre navigateur vers https://localhost/testsql.php (https://localhost:8080/testsql.php sur macOS). Vous devriez maintenant pouvoir vous connecter à votre base de données SQL Server/SQL Azure. Si le message de réussite indiquant la version de SQL n’apparaît pas, vous pouvez effectuer un dépannage de base en exécutant le script en ligne de commande :
php testsql.php
Si l’exécution en ligne de commande réussit, mais que rien ne s’affiche dans votre navigateur, consultez les fichiers journaux Apache. Pour obtenir de l’aide, consultez Ressources de support.
Ce parcours d’apprentissage fournit une vue d’ensemble du déploiement de fonctions de serveur Linux courantes sur des machines virtuelles Azure. Découvrez comment déployer un SQL Server, un serveur d’application web à l’aide de la pile MEAN, effectuer une migration de base de données et gérer vos opérations informatiques avec Azure Automanage.
Administrer une infrastructure de base de données SQL Server pour les bases de données relationnelles cloud, locales et hybrides à l’aide des offres de bases de données relationnelles Microsoft PaaS.
Les pilotes Microsoft pour PHP pour SQL Server prennent en charge un large éventail de versions de PHP, de systèmes d’exploitation et de versions de SQL Server.
Découvrez la configuration système requise pour l’utilisation des pilotes Microsoft pour PHP pour SQL Server et le chargement des pilotes dans l’espace de processus PHP.