我正在嘗試在 Ubuntu 20.0 上啟用 php8.1 的 sqlsrv 驅動程式。它沒有在 phpinfo()
中顯示擴展名。
當嘗試使用指令 php -m
檢查 sqlsrv 模組時,輸出如下:
我遵循了以下官方文件:
extension=pdo_sqlsrv.so
, extension=sqlsrv.so
)我不確定出了什麼問題,任何建議都會受到讚賞。
The output of phpinfo() for php7.4:
The output of phpinfo() for php8.1:
事情是這樣的:
我在這裡缺少什麼?
P粉8232680062023-11-02 00:55:33
我可以透過新增以下命令來解決此問題。
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
之後需要重新啟動apache2
P粉1933074652023-11-02 00:34:32
你可以試試這個:
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
請注意,-r, --register-only
不會刪除文件,而只會將軟體包註冊為未安裝。
查看此資源以獲取更多資訊。 https://github.com/microsoft/msphpsql/issues/1145#issuecomment- 649682231