Maison > Questions et réponses > le corps du texte
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 :
extension=pdo_sqlsrv.so
, extension=sqlsrv.so
) dans /etc/php/8.1/apache2/php.iniJe 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 :
Qu'est-ce qui me manque ici ?
P粉8232680062023-11-02 00:55:33
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粉1933074652023-11-02 00:34:32
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