Последние две ночи я работал над установкой собственного сервера LEMP на Amazon ec2. Я не эксперт по серверам, поэтому все шло медленно, и последняя ошибка «не удалось найти драйвер» выдается при попытке создать новый объект PDO.
Я прочитал, кажется, десятки веток об этой ошибке, и, к сожалению, ни одно из исправлений не работает для меня. По большей части они все говорят, что мне нужно установить php-mysql, но, конечно, это недоступно:
$ sudo yum install php-mysql
Last metadata expiration check: 0:22:54 ago on Sat 17 Aug 2019 02:26:41 AM UTC.
No match for argument: php-mysql
Error: Unable to find a match
Между тем, phpinfo (), похоже, сообщает, что драйвер является установлены??
MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
Но в разделе PDO phpinfo () говорится:
PDO drivers odbc, sqlite
Итак, я полагаю, что драйвер mysql действительно отсутствует? Оставить меня на том же месте - найти и установить ... Но как найти подходящий для моей установки? Я попытался использовать yum для поиска, но это не удалось (большой сюрприз):
$ yum search php-
Red Hat Update Infrastructure 3 Client Configuration Server 8 0.0 B/s | 0 B 00:00
Error: Failed to synchronize cache for repo 'rhui-client-config-server-8'
Погуглил эту ошибку, и я потерялся еще в сотне или около того тем, ни один из которых не помог ..
Может кто-то указать мне верное направление? Я полагаю, что мне нужно запустить простую команду, специфичную для моей установки, мне просто нужно выяснить, что это такое ...
Еще кое-что, что я пробовал:
Вот различные подробности моей ОС:
$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.0 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.0"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.0 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.0:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.0
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.0"
$ php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
$ nginx -v
nginx version: nginx/1.14.1
$ mysql --version
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
и некоторые выдержки из php.ini:
[Pdo]
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
; http://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict
;pdo_odbc.db2_instance_name
[Pdo_mysql]
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/pdo_mysql.cache_size
pdo_mysql.cache_size = 2000
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=
выдержки из /etc/php-fpm.d/www.conf:
user = nginx
group = nginx
Надеюсь, информации достаточно - заранее спасибо за любую помощь!
Драйвер PHP PDO MySQL находится в пакете с именем php-mysqlnd
. Установите этот пакет, затем перезапустите php-fpm
служба.
[root@rhel8 ~]# dnf info php-mysqlnd
Updating Subscription Management repositories.
Last metadata expiration check: 0:08:40 ago on Sat 17 Aug 2019 01:48:02 AM EDT.
Installed Packages
Name : php-mysqlnd
Version : 7.2.11
Release : 1.module+el8+2561+1aca3413
Arch : x86_64
Size : 451 k
Source : php-7.2.11-1.module+el8+2561+1aca3413.src.rpm
Repo : @System
From repo : rhel-8-for-x86_64-appstream-rpms
Summary : A module for PHP applications that use MySQL databases
URL : http://www.php.net/
License : PHP
Description : The php-mysqlnd package contains a dynamic shared object that
: will add MySQL database support to PHP. MySQL is an
: object-relational database management system. PHP is an
: HTML-embeddable scripting language. If you need MySQL support for
: PHP applications, you will need to install this package and the
: php package.
:
: This package use the MySQL Native Driver
[root@rhel8 ~]#