简体   繁体   English

linux 上 msqli 和 mssql 的问题以及损坏的 php7.2

[英]Problems with msqli and mssql and broken php7.2 on linux

I have a local application with laravel 5.5 using a mysql databse on my ubuntu18.04.1.我有一个 laravel 5.5 的本地应用程序,在我的 ubuntu18.04.1 上使用 mysql 数据库。 It is hosted on a server with php7.2, and I had the same version of php in my system.它托管在使用 php7.2 的服务器上,我的系统中有相同版本的 php。 All was working fine.一切正常。 Yesterday, I tried to connect my app with SQL Server to get data from a database, and my nightmare started.昨天,我尝试将我的应用程序与 SQL 服务器连接以从数据库中获取数据,我的噩梦开始了。

I added the data base connection info to the database.php file in my laravel app following this format我在我的 laravel 应用程序中添加了数据库连接信息到数据库中。

 'sqlsrv' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '1433'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'prefix' => '',
    ],

All seemed to be working fine, but when I tried to retrieve data, I had a connection exception, laravel was telling me that the sqlsrv driver wasn't found.一切似乎都工作正常,但是当我尝试检索数据时,我遇到了连接异常,laravel 告诉我找不到 sqlsrv 驱动程序。 I thought that, perhaps, the sqlsrv extension wasn't enabled, so I went to php.ini to activate it, but I didn't found it, so I started to investigate and I discovered that I had to install it from the microsoft webpage.我想,可能是sqlsrv扩展没有启用,于是我去php.ini激活它,但没有找到,于是开始调查,发现必须从microsoft安装网页。 I tried in all ways to add the proper.so, I installed and deinstalled php7.2 and I don't know how php7.4 folders and modules are on my system too.我尝试了各种方式来添加正确的.so,我安装和卸载了 php7.2,我也不知道 php7.4 文件夹和模块在我的系统上是如何的。 I followed this site (in spanish) to install a docker and try to prevent this situation in the future.我跟着这个站点(西班牙语)安装了一个 docker 并试图防止将来出现这种情况。 I followed it till the $ sudo docker-compose up -d nginx mysql phpmyadmin part, then I tried to run my app and it works, it connects properly, but I cannot access to phpmyadmin via http://localhost:3030/ , I have phpMyAdmin Error because it doesn't find the mysqli extension. I followed it till the $ sudo docker-compose up -d nginx mysql phpmyadmin part, then I tried to run my app and it works, it connects properly, but I cannot access to phpmyadmin via http://localhost:3030/ , I have phpMyAdmin错误,因为它没有找到 mysqli 扩展。

Then I tired to run php -S as I used to run when I trying to connect to phpMyAdmin and I get this然后我厌倦了运行php -S ,就像我尝试连接到 phpMyAdmin 时运行的那样,我得到了这个

$ php -S localhost:3030
[Thu Dec 10 13:17:50 2020] PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20170718/mysqli (/usr/lib/php/20170718/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mysqli.so (/usr/lib/php/20170718/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
[Thu Dec 10 13:17:50 2020] PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator)) in Unknown on line 0
[Thu Dec 10 13:17:50 2020] PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20170718/pdo_sqlite (/usr/lib/php/20170718/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_sqlite.so (/usr/lib/php/20170718/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[Thu Dec 10 13:17:50 2020] PHP Warning:  PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/lib/php/20170718/pgsql (/usr/lib/php/20170718/pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pgsql.so (/usr/lib/php/20170718/pgsql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[Thu Dec 10 13:17:50 2020] Failed to listen on localhost:3030 (reason: Address already in use)

I ran php --ini to find where the configuration file is and edited the extension of mysqli to enable it, now when y run again php --ini I get this warns我运行php --ini来查找配置文件的位置并编辑 mysqli 的扩展名以启用它,现在当你再次运行php --ini我得到这个警告

$ php --ini
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20170718/mysqli (/usr/lib/php/20170718/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mysqli.so (/usr/lib/php/20170718/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20170718/pdo_sqlite (/usr/lib/php/20170718/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_sqlite.so (/usr/lib/php/20170718/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/lib/php/20170718/pgsql (/usr/lib/php/20170718/pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pgsql.so (/usr/lib/php/20170718/pgsql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Configuration File (php.ini) Path: /etc/php/7.2/cli
Loaded Configuration File:         /etc/php/7.2/cli/php.ini
Scan for additional .ini files in: /etc/php/7.2/cli/conf.d
Additional .ini files parsed:      /etc/php/7.2/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.2/cli/conf.d/10-opcache.ini,
/etc/php/7.2/cli/conf.d/10-pdo.ini,
/etc/php/7.2/cli/conf.d/20-calendar.ini,
/etc/php/7.2/cli/conf.d/20-ctype.ini,
/etc/php/7.2/cli/conf.d/20-exif.ini,
/etc/php/7.2/cli/conf.d/20-fileinfo.ini,
/etc/php/7.2/cli/conf.d/20-ftp.ini,
/etc/php/7.2/cli/conf.d/20-gettext.ini,
/etc/php/7.2/cli/conf.d/20-iconv.ini,
/etc/php/7.2/cli/conf.d/20-json.ini,
/etc/php/7.2/cli/conf.d/20-mysqli.ini,
/etc/php/7.2/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.2/cli/conf.d/20-phar.ini,
/etc/php/7.2/cli/conf.d/20-posix.ini,
/etc/php/7.2/cli/conf.d/20-readline.ini,
/etc/php/7.2/cli/conf.d/20-shmop.ini,
/etc/php/7.2/cli/conf.d/20-sockets.ini,
/etc/php/7.2/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.2/cli/conf.d/20-sysvsem.ini,
/etc/php/7.2/cli/conf.d/20-sysvshm.ini,
/etc/php/7.2/cli/conf.d/20-tokenizer.ini

and I still can't access to phpMyAdmin.我仍然无法访问 phpMyAdmin。 When I run php --version I get this当我运行php --version我得到这个

$ php --version
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20170718/mysqli (/usr/lib/php/20170718/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mysqli.so (/usr/lib/php/20170718/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20170718/pdo_sqlite (/usr/lib/php/20170718/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_sqlite.so (/usr/lib/php/20170718/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/lib/php/20170718/pgsql (/usr/lib/php/20170718/pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pgsql.so (/usr/lib/php/20170718/pgsql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.2.34-8+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 31 2020 16:57:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.34-8+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

I need to fix this asap to continue working on my laravel application and, when it's done, I need a correct way to install the proper sqlsrv drivers to be able to connect my laravel application to the sql server database.我需要尽快修复此问题以继续处理我的 laravel 应用程序,完成后,我需要正确的方法来安装正确的 sqlsrv 驱动程序,以便能够将我的 laravel 应用程序连接到 ZAC5C74B64B4AFFBB832AZEF2FAC18 服务器数据库。

When I run php -m I get this当我运行php -m我得到这个

$ php -m
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20170718/mysqli (/usr/lib/php/20170718/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/mysqli.so (/usr/lib/php/20170718/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20170718/pdo_sqlite (/usr/lib/php/20170718/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_sqlite.so (/usr/lib/php/20170718/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/lib/php/20170718/pgsql (/usr/lib/php/20170718/pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pgsql.so (/usr/lib/php/20170718/pgsql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

and this is what I have now installed with php, nginx, and sql这就是我现在安装的 php、nginx 和 sql

$ dpkg --get-selections | grep php
libapache2-mod-php7.2                           install
php-common                                      install
php-mysql                                       install
php7.2                                          install
php7.2-cli                                      install
php7.2-common                                   install
php7.2-fpm                                      install
php7.2-json                                     install
php7.2-mysql                                    install
php7.2-opcache                                  install
php7.2-readline                                 install
php7.4-common                                   install
php7.4-mysql   

$ dpkg --get-selections | grep nginx
libnginx-mod-http-geoip                         install
libnginx-mod-http-image-filter                  install
libnginx-mod-http-xslt-filter                   install
libnginx-mod-mail                               install
libnginx-mod-stream                             install
nginx                                           install
nginx-common                                    install
nginx-core                                      install

$ dpkg --get-selections | grep sql
akonadi-backend-mysql                           install
libaprutil1-dbd-sqlite3:amd64                   install
libmono-sqlite4.0-cil                           install
libmysqlclient20:amd64                          install
libmysqlcppconn7v5:amd64                        install
libqt4-sql:amd64                                install
libqt4-sql-mysql:amd64                          install
libqt5sql5:amd64                                install
libqt5sql5-mysql:amd64                          install
libqt5sql5-sqlite:amd64                         install
libsqlite3-0:amd64                              install
libvsqlitepp3v5:amd64                           install
msodbcsql17                                     install
mssql-server                                    install
mssql-tools                                     install
mysql-client                                    install
mysql-client-5.7                                install
mysql-client-core-5.7                           install
mysql-common                                    install
mysql-server                                    install
mysql-server-5.7                                install
mysql-server-core-5.7                           install
mysql-utilities                                 install
mysql-workbench                                 install
mysql-workbench-data                            install
php-mysql                                       install
php7.2-mysql                                    install
php7.4-mysql                                    install
postgresql                                      install
postgresql-10                                   install
postgresql-client-10                            install
postgresql-client-common                        install
postgresql-common                               install
postgresql-contrib                              install
python-mysql.connector                          install
python-pysqlite2                                install

Does anyone know what could I do?有谁知道我能做什么?

If you need more info tell me in the comments and I'll update the question.如果您需要更多信息,请在评论中告诉我,我会更新问题。

Thanks!谢谢!

Update 1: Nothing is working yet更新 1:还没有任何工作

I tried to follow this thread to uninstall all php and php7 file and tried to reinstall php7.2, but I can't add the repository when I execute add-apt-repository ppa:ondrej/php becaus the terminal throws me this我试图按照这个线程卸载所有 php 和 php7 文件并尝试重新安装 php7.2,但是当我执行add-apt-repository ppa:ondrej/php时我无法添加存储库,因为终端向我抛出了这个

Obj:1 https://download.docker.com/linux/ubuntu bionic InRelease
Ign:2 http://ppa.launchpad.net/langdalepl/gvfs-mtp/ubuntu bionic InRelease                                                                                                           
Obj:3 https://linux.teamviewer.com/deb stable InRelease                                                                                                                              
Obj:4 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease                                                                                                                    
Obj:5 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                                                         
Obj:6 http://ppa.launchpad.net/wireshark-dev/stable/ubuntu bionic InRelease                                                                                                          
Obj:7 http://es.archive.ubuntu.com/ubuntu bionic InRelease                                                                                                                           
Des:8 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kB]                                                                                                          
Des:9 http://archive.neon.kde.org/user bionic InRelease [131 kB]                                                                                                                     
Obj:10 https://packages.microsoft.com/ubuntu/18.04/mssql-server-2019 bionic InRelease                                                                                                
Err:11 http://ppa.launchpad.net/langdalepl/gvfs-mtp/ubuntu bionic Release                                                                                                            
  404  Not Found [IP: 91.189.95.83 80]
Ign:12 https://storage.googleapis.com/download.dartlang.org/linux/debian stable InRelease                                                                                   
Obj:13 https://packages.microsoft.com/ubuntu/18.04/prod bionic InRelease                                                                                                    
Des:14 http://es.archive.ubuntu.com/ubuntu bionic-updates InRelease [88,7 kB]                                                                                                
Obj:15 https://packages.microsoft.com/ubuntu/16.04/prod xenial InRelease                                                                                                             
Obj:16 https://storage.googleapis.com/download.dartlang.org/linux/debian stable Release                                                                                              
Des:17 http://es.archive.ubuntu.com/ubuntu bionic-backports InRelease [74,6 kB]
E: The repository 'http://ppa.launchpad.net/gnome-shell-extensions/ppa/ubuntu bionic Release' does not have a Release file. 
N: Updating from such a repository can't be done securely, and is therefore disabled by default. 
N: See apt-secure(8) manpage for repository creation and user configuration details.

I searched for my error and found this , but it doesn't worked for me.我搜索了我的错误并找到了这个,但它对我不起作用。

I tried to install php7.2 following the thread and all went well, but when I've executed sudo service apache2 restart I got this我尝试按照线程安装 php7.2 并且一切顺利,但是当我执行sudo service apache2 restart我得到了这个

    Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

so I executed systemctl status apache2.service and it threw this所以我执行了systemctl status apache2.service它扔了这个

    apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
        └─apache2-systemd.conf
Active: failed (Result: exit-code) since Fri 2020-12-11 10:34:22 CET; 1min 31s ago
Process: 4671 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

dic 11 10:34:22 Dev-PC apachectl[4671]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directiv
dic 11 10:34:22 Dev-PC apachectl[4671]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
dic 11 10:34:22 Dev-PC apachectl[4671]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
dic 11 10:34:22 Dev-PC apachectl[4671]: no listening sockets available, shutting down
dic 11 10:34:22 Dev-PC apachectl[4671]: AH00015: Unable to open logs
dic 11 10:34:22 Dev-PC apachectl[4671]: Action 'start' failed.
dic 11 10:34:22 Dev-PC apachectl[4671]: The Apache error log may have more information.
dic 11 10:34:22 Dev-PC systemd[1]: apache2.service: Control process exited, code=exited status=1
dic 11 10:34:22 Dev-PC systemd[1]: apache2.service: Failed with result 'exit-code'.
dic 11 10:34:22 Dev-PC systemd[1]: Failed to start The Apache HTTP Server.

What could I do now?我现在能做什么? I cannot start apache service and I don't know what is failing here...我无法启动 apache 服务,我不知道这里出了什么问题......

Update 2: My app and apache2 are working now更新 2:我的应用程序和 apache2 正在运行

I updated my download manager to look for available repositories and bingo, the ondrej repositories were locked, I just unlocked them and tried again to adding the repositories, it worked now.我更新了我的下载管理器以查找可用的存储库和宾果游戏,ondrej 存储库被锁定,我刚刚解锁它们并再次尝试添加存储库,它现在可以工作了。 I've reinstalled apache2 with and php7.2 running sudo apt-get install apache2 and following the thread answer.我已经重新安装了 apache2 和 php7.2 运行sudo apt-get install apache2并遵循线程答案。 But I had the same problem, so I realized that the error was showing two problems, the first problem was the missing server name and the second was that the port 80 was in use, thats why the apache2 keeps failing when trying to start.但是我遇到了同样的问题,所以我意识到错误显示了两个问题,第一个问题是缺少服务器名称,第二个问题是端口 80 正在使用中,这就是为什么 apache2 在尝试启动时一直失败的原因。 For solve the first problem, I ran sudo gedit /etc/apache2/apache2.conf and added Server Name 127.0.0.1 and after save, the first problem was solved, I solved the second problem running sudo lsof -i -n -P | grep ':80'为了解决第一个问题,我运行了sudo gedit /etc/apache2/apache2.conf并添加了Server Name 127.0.0.1 ,保存后第一个问题解决了,我运行sudo lsof -i -n -P | grep ':80'解决了第二个问题sudo lsof -i -n -P | grep ':80' and I discovering that nginx process was using it, so I used sudo kill [the nginx PID] to kill the nginx processes and retried to start apache2 and now it worked. sudo lsof -i -n -P | grep ':80' and I discovering that nginx process was using it, so I used sudo kill [the nginx PID] to kill the nginx processes and retried to start apache2 and now it worked. I was able to access to my database in phpmyadmin but now I had another problem, when I execute php artisan serve in my laravel project, I got a PDOConnection.php error because there was a missing driver, and after execute php -m I realized that was the mysql driver so I ran sudo apt-get install php7.2-common php7.2-mysql php7.2-cli and finally I had my apache2 and my php7.2 fixed! I was able to access to my database in phpmyadmin but now I had another problem, when I execute php artisan serve in my laravel project, I got a PDOConnection.php error because there was a missing driver, and after execute php -m I realized那是 mysql 驱动程序,所以我运行了sudo apt-get install php7.2-common php7.2-mysql php7.2-cli ,最后我的 apache2 和我的 php7.2 修复了! Finally thank you all for helping me!最后感谢大家对我的帮助!

But now I have the same problem I had when all this started, I need to install in the correct way the sqlsrv.so drivers to be able to connect my laravel app with a SQL Server database.但是现在我遇到了与这一切开始时相同的问题,我需要以正确的方式安装 sqlsrv.so 驱动程序,以便能够将我的 laravel 应用程序与 SQL 服务器数据库连接起来。 I was trying to download the.so files from the microsoft page but that drove me to this nightmare, so does anybody knows how could I continue to installing the sqlsrv drivers correctly?我试图从 microsoft 页面下载.so 文件,但这让我陷入了这场噩梦,所以有人知道我怎样才能继续正确安装 sqlsrv 驱动程序吗?

Update 3: Finally, solved!更新3:终于解决了!

Looking for solutions, I checked again the microsoft webpage to find out which sqlsrv drivers I needed to run sql queries with php7.2, and I tried again to run sudo pecl install sqlsrv and sudo pecl install pdo_sqlsrv , but it didn't worked for me.寻找解决方案,我再次检查了微软网页以找出我需要哪些 sqlsrv 驱动程序来使用 php7.2 运行 sql 查询,然后我再次尝试运行sudo pecl install sqlsrvsudo pecl install pdo_sqlsrv ,但它没有工作我。 Then I found another way to install the drivers without pecl, and i ran sudo apt-get install php7.2-dev and downloaded the packages with wget http://pecl.php.net/get/sqlsrv-5.3.0.tgz and wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz (5.3.0 was my sqlsrv version for php7.2), after this I installed with pear install pdo_sqlsrv-5.3.0.tgz and pear install sqlsrv-5.3.0.tgz .然后我找到了另一种在没有 pecl 的情况下安装驱动程序的方法,我运行sudo apt-get install php7.2-dev并使用wget http://pecl.php.net/get/sqlsrv-5.3.0.tgz下载了软件包和wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz (5.3.0 是我 php7.2 的 sqlsrv 版本),之后我安装了pear install pdo_sqlsrv-5.3.0.tgzpear install sqlsrv-5.3.0.tgz This time it worked for me (first time it throwed to me an error telling me that there was an installed version of pdo_sqlsrv, but I ran sudo pear uninstall pecl/pdo_sqlsrv and ran again the install order, then it worked for me).这次它对我有用(第一次它向我抛出一个错误,告诉我有一个已安装的 pdo_sqlsrv 版本,但我运行sudo pear uninstall pecl/pdo_sqlsrv并再次运行安装命令,然后它对我有用)。 Then, I tried again to run sudo pecl install sqlsrv and sudo pecl install pdo_sqlsrv and this time it worked!然后,我再次尝试运行sudo pecl install sqlsrvsudo pecl install pdo_sqlsrv这一次成功了! After this I ran sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv and finally I finished the php7.2 sqlsrv drivers installation in my ubuntu.在此之后,我运行了sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv ,最后我在 ubuntu 中完成了 php7.2 sqlsrv 驱动程序的安装。 I tried to run again the connection to my database on sql server and it worked.我尝试在 sql 服务器上再次运行与我的数据库的连接,它工作正常。

Thanks for the help!谢谢您的帮助!

I updated my post with my progress solving my own question, with the help of bhucho in the comments of my post, I was able to fix my php7.2.我更新了我的帖子,解决了我自己的问题,在我帖子评论中的 bhucho 的帮助下,我能够修复我的 php7.2。

Looking for solutions for install the correct sqlsrv driver for my php version, I checked again the microsoft webpage to find out which sqlsrv drivers I needed to run sql queries with php7.2, and I tried again to run sudo pecl install sqlsrv and sudo pecl install pdo_sqlsrv , but it didn't worked for me.寻找为我的 php 版本安装正确 sqlsrv 驱动程序的解决方案,我再次检查了微软网页以找出我需要哪些 sqlsrv 驱动程序来运行 php7.2 的 sql 查询,然后我再次尝试运行sudo pecl install sqlsrvsudo pecl install pdo_sqlsrv ,但它对我不起作用。 Then I found another way to install the drivers without pecl, and i ran sudo apt-get install php7.2-dev and downloaded the packages with wget http://pecl.php.net/get/sqlsrv-5.3.0.tgz and wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz (5.3.0 was my sqlsrv version for php7.2), after this I installed with pear install pdo_sqlsrv-5.3.0.tgz and pear install sqlsrv-5.3.0.tgz .然后我找到了另一种在没有 pecl 的情况下安装驱动程序的方法,我运行sudo apt-get install php7.2-dev并使用wget http://pecl.php.net/get/sqlsrv-5.3.0.tgz下载了软件包和wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz (5.3.0 是我 php7.2 的 sqlsrv 版本),之后我安装了pear install pdo_sqlsrv-5.3.0.tgzpear install sqlsrv-5.3.0.tgz This time it worked for me (first time it throwed to me an error telling me that there was an installed version of pdo_sqlsrv, but I ran sudo pear uninstall pecl/pdo_sqlsrv and ran again the install order, then it worked for me).这次它对我有用(第一次它向我抛出一个错误,告诉我有一个已安装的 pdo_sqlsrv 版本,但我运行sudo pear uninstall pecl/pdo_sqlsrv并再次运行安装命令,然后它对我有用)。 Then, I tried again to run sudo pecl install sqlsrv and sudo pecl install pdo_sqlsrv and this time it worked!然后,我再次尝试运行sudo pecl install sqlsrvsudo pecl install pdo_sqlsrv这一次成功了! After this I ran sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv and finally I finished the php7.2 sqlsrv drivers installation in my ubuntu.在此之后,我运行了sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv ,最后我在 ubuntu 中完成了 php7.2 sqlsrv 驱动程序的安装。 I tried to run again the connection to my database on sql server and it worked.我尝试在 sql 服务器上再次运行与我的数据库的连接,它工作正常。

Thank you all for the help!谢谢大家的帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM