简体   繁体   English

使用 CentOS 8 在 PHP 7.4 中安装 pdo_sqlsrv 驱动程序

[英]Installing pdo_sqlsrv driver in PHP 7.4 using CentOS 8

I have successfully installed php 7.4 with Remi packages in my CentOS 8 VPS (Used this guide https://www.digitalocean.com/community/tutorials/how-to-run-multiple-php-versions-on-one-server-using-apache-and-php-fpm-on-centos-8 )我已经在我的 CentOS 8 VPS 中成功安装了带有 Remi 软件包的 php 7.4(使用本指南https://www.digitalocean.com/community/tutorials/how-to-run-multiple-php-versions-on-one-server-使用-apache-and-php-fpm-on-centos-8 )

I have a VirtualHost in my Apache server, that points to my domain and load the required php version for that environment.我的 Apache 服务器中有一个 VirtualHost,它指向我的域并加载该环境所需的 php 版本。

<VirtualHost *:80>
    ServerName www.example.net
    ServerAlias example.net
    DocumentRoot /var/www/example.net/html
    ErrorLog /var/www/example.net/log/error.log
    CustomLog /var/www/example.net/log/requests.log combined
  <IfModule !mod_php7.c>
    <FilesMatch \.(php|phar)$>
        SetHandler "proxy:unix:/var/opt/remi/php74/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>
  </IfModule>
</VirtualHost>

How do you enable the pdo_sqlsrv extension to a php 7.4 installation using Remi?如何使用 Remi 为 php 7.4 安装启用 pdo_sqlsrv 扩展?

I've followed this guide: https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-drivers-on-red-hat-7-and-8 but I think something went wrong.我遵循了本指南: https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-drivers-on -red-hat-7-and-8但我认为出了点问题。

If I do <?php echo phpinfo(); ?>如果我这样做<?php echo phpinfo(); ?> <?php echo phpinfo(); ?> I see that no modules are being loaded https://gyazo.com/d5a30969f06c49e78bf3473a07776492 <?php echo phpinfo(); ?>我看到没有模块被加载https://gyazo.com/d5a30969f06c49e78bf3473a07776492

Also if I check for the PHP version using php -v , this is the output:此外,如果我使用php -v检查 PHP 版本,则这是 output:

PHP Warning:  Module 'sqlsrv' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_sqlsrv' already loaded in Unknown on line 0
PHP 7.4.12 (cli) (built: Oct 27 2020 15:01:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

EDIT:编辑:

I have also checked using this command yum list installed | grep php我还检查过使用此命令yum list installed | grep php yum list installed | grep php

and I have the following output. Notice the php-pdo from remi.我有以下 output。请注意来自 remi 的php-pdo

php-json.x86_64                     7.4.12-1.el8.remi                          @remi-modular
php-pdo.x86_64                      7.4.12-1.el8.remi                          @remi-modular
php-sqlsrv.x86_64                   5.8.1-1.el8.remi.7.4                       @remi-modular
php74.x86_64                        1.0-3.el8.remi                             @remi-safe
php74-php-cli.x86_64                7.4.12-1.el8.remi                          @remi-safe
php74-php-common.x86_64             7.4.12-1.el8.remi                          @remi-safe
php74-php-fpm.x86_64                7.4.12-1.el8.remi                          @remi-safe
php74-php-json.x86_64               7.4.12-1.el8.remi                          @remi-safe
php74-runtime.x86_64                1.0-3.el8.remi                             @```

How do you enable the pdo_sqlsrv extension to a php 7.4 installation using Remi?如何使用 Remi 为 php 7.4 安装启用 pdo_sqlsrv 扩展? php-sqlsrv.x86_64 5.8.1-1.el8.remi.7.4 @remi-modular php74-php-fpm.x86_64 7.4.12-1.el8.remi @remi-safe php-sqlsrv.x86_64 5.8.1-1.el8.remi.7.4 @remi-modular php74-php-fpm.x86_64 7.4.12-1.el8.remi @remi-safe

You are confused betweeen php-* (single/default version) and php74-* (designed for multiple versions installation).您对 php-*(单一/默认版本)和 php74-*(专为多版本安装而设计)感到困惑。 Read the repository FAQ阅读存储库常见问题解答

For a proper installation, simply follow the Wizard instruction .要正确安装,只需按照向导说明操作即可。

So, if you use php-fpm , you need php-sqlsrv (which is the simpler way, so recommended).所以,如果你使用php-fpm ,你需要php-sqlsrv (这是更简单的方法,所以推荐)。

If you use php74-php-fpm , you need php74-php-sqlsrv .如果您使用php74-php-fpm ,则需要php74-php-sqlsrv

dnf remove php74\*
dnf install php-fpm php-cli

You don't have to build anything from source, and don't have to modify any INI file.您不必从源代码构建任何东西,也不必修改任何 INI 文件。

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

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