Installer/activer les pilotes sqlsrv et pdo_sqlsrv de php8.1 sur Ubuntu20.0
P粉501683874
P粉501683874 2023-11-01 11:06:13
0
2
919

J'essaie d'activer le pilote sqlsrv pour php8.1 sur Ubuntu 20.0. Il n'affiche pas l'extension dans phpinfo().

Lorsque vous essayez de vérifier le module sqlsrv à l'aide de la commande php -m, le résultat est le suivant :

J'ai suivi la documentation officielle ci-dessous :

  • https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver16
  • Essayez d'ajouter l'extension (extension=pdo_sqlsrv.so, extension=sqlsrv.so) dans /etc/php/8.1/apache2/php.ini

Je ne suis pas sûr de ce qui ne va pas, toutes les suggestions seraient appréciées.

The output of phpinfo() for php7.4:
The output of phpinfo() for php8.1:

Voici le problème :

  • J'ai PHP 7.4 et 8.1 installés sur mon ordinateur.
  • Le pilote sqlsrv convient à la version php7.4
  • Lorsque vous essayez d'installer/activer php8.1, cela ne fonctionne pas du tout.

Qu'est-ce qui me manque ici ?

P粉501683874
P粉501683874

répondre à tous(2)
P粉823268006

J'ai pu résoudre ce problème en ajoutant la commande suivante.

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

Vous devez ensuite redémarrer Apache2

P粉193307465

Vous pouvez essayer ceci :

1. switch to php8.1
2. sudo pecl uninstall -r sqlsrv 
3. sudo pecl uninstall -r pdo_sqlsrv 
4. sudo pecl -d php_suffix=7.2 install sqlsrv
5. sudo pecl -d php_suffix=7.2 install pdo_sqlsrv
6. sudo service apache2 restart

Veuillez noter que -r, --register-only ne supprimera pas les fichiers, il enregistrera uniquement le package comme non installé.

Consultez cette ressource pour plus d'informations. https://github.com/microsoft/msphpsql/issues/1145#issuecomment- 649682231

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal