【问题标题】:Installing pdo_sqlsrv driver in PHP 7.4 using CentOS 8使用 CentOS 8 在 PHP 7.4 中安装 pdo_sqlsrv 驱动程序
【发布时间】:2021-02-27 01:00:22
【问题描述】:

我已经在我的 CentOS 8 VPS 中成功安装了带有 Remi 包的 php 7.4(使用本指南 https://www.digitalocean.com/community/tutorials/how-to-run-multiple-php-versions-on-one-server-using-apache-and-php-fpm-on-centos-8)

我的 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>

如何使用 Remi 为 php 7.4 安装启用 pdo_sqlsrv 扩展?

我已按照以下指南操作:https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-drivers-on-red-hat-7-and-8,但我认为出了点问题。

如果我这样做&lt;?php echo phpinfo(); ?&gt;,我会看到没有加载任何模块https://gyazo.com/d5a30969f06c49e78bf3473a07776492

另外,如果我使用 php -v 检查 PHP 版本,输出如下:

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

编辑:

我也用这个命令检查过yum list installed | grep php

我有以下输出。注意来自 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                             @```

【问题讨论】:

  • 您在第 3 步就有了它,但请确保您使用的是正确的 .ini 文件。此外,如果您使用的是 fpt,您可能需要重新启动 php 服务才能使更改生效。
  • 在我看来,您还没有将模块添加到您的php.ini。检查 PHP 文件(Apache 正在使用的关键文件),我怀疑你会注意到它们丢失了。
  • 我尝试将extension=pdo_sqlsrv.so 添加到正在加载的 Php.ini 中,但仍然没有任何变化。
  • 请注意我自己和@JulienB。怀疑你没有将它添加到正确的。我怀疑您已将其添加到 php.ini 文件中,而不是 Apache 正在使用的文件中。

标签: php sql-server pdo centos centos8


【解决方案1】:

如何使用 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-*(单一/默认版本)和 php74-*(为多版本安装而设计)之间感到困惑。阅读仓库FAQ

要正确安装,只需按照Wizard instruction。

所以,如果你使用php-fpm,你需要php-sqlsrv(这是更简单的方法,所以推荐)。

如果使用php74-php-fpm,则需要php74-php-sqlsrv。

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

您不必从源代码构建任何东西,也不必修改任何 INI 文件。

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2018-02-26
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多