Pasang/dayakan pemacu sqlsrv dan pdo_sqlsrv php8.1 pada ubuntu20.0
P粉501683874
P粉501683874 2023-11-01 11:06:13
0
2
972

Saya cuba mendayakan pemacu sqlsrv untuk php8.1 pada Ubuntu 20.0. Ia tidak menunjukkan sambungan dalam phpinfo().

Apabila cuba menyemak modul sqlsrv menggunakan arahan php -m output adalah seperti berikut:

Saya mengikuti dokumentasi rasmi di bawah:

  • https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver16
  • Cuba tambah sambungan (extension=pdo_sqlsrv.so, extension=sqlsrv.so) dalam /etc/php/8.1/apache2/php.ini

Saya tidak pasti apa yang berlaku, sebarang cadangan akan dihargai.

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

Ini perkaranya:

  • Saya telah memasang PHP 7.4 dan 8.1 pada komputer saya.
  • sqlsrv driver sesuai untuk versi php7.4
  • Apabila cuba memasang/mendayakan php8.1 ia tidak berfungsi sama sekali.

Apa yang saya hilang di sini?

P粉501683874
P粉501683874

membalas semua(2)
P粉823268006

Saya dapat menyelesaikan masalah ini dengan menambah arahan berikut.

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

Anda perlu memulakan semula apache2 selepas itu

P粉193307465

Boleh cuba ini:

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

Sila ambil perhatian bahawa -r, --register-only tidak akan memadamkan fail, ia hanya akan mendaftarkan pakej sebagai tidak dipasang.

Lihat sumber ini untuk maklumat lanjut. https://github.com/microsoft/msphpsql/issues/1145#issuecomment- 649682231

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan