CentOS 7 + PHP7.2 + Laravel 5.8で、Class 'PDO' not foundエラー になりました。
php-pdoをインストールしていたけど、とDockerFileを調べると、原因は、php72-php と php-pdoを混在してインストールしていました。
CentOS 7にPHP7.2をインストールする方法は、2つあります。
リポジトリ | パッケージ名 | 設定ファイル |
remi-php72 | php php-* | /etc/php.ini |
remi | php72-php php72-php-* | /etc/opt/remi/php72/php.ini |
まず、remiリポジトリをインストールします。
$ yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum install -y epel-release
$ yum -y update
$ yum clean all
$ yum install -y httpd
Code language: JavaScript (javascript)
方法1:remi-php72から、php-*をインストール
yum install -y --enablerepo=remi-php72 \
php \
php-common \
php-cli \
php-mbstring \
〜省略〜
php-pdo \
php-mysqlnd \
php-pecl-mysql
設定ファイルは、/etc/php.ini、/etc/php.d/* です。
/etc/php.ini
/etc/php-zts.d/*
/etc/php.d/*
方法2:remiから、php72-php-*をインストール
yum install -y --enablerepo=remi \
php72-php \
php72-php-common \
php72-php-cli \
php72-php-mbstring \
〜省略〜
php72-php-pdo \
php72-php-mysqlnd \
php72-php-pecl-mysql
設定ファイルは、/etc/opt/remi/php72/php.ini、/etc/opt/remi/php72/php.d/* です。
/etc/opt/remi
`-- php72
|-- X11
|-- opt
|-- php.d
|-- php.ini
|-- pki
|-- pm
|-- skel
|-- sysconfig
|-- xdg
`-- xinetd.d
Code language: JavaScript (javascript)
NG例:php72-php、php-pdoの混在インストール
php72-php、php-pdoを混在してインストールすると、Class 'PDO' not found になりました。
yum install -y --enablerepo=remi,remi-php72 \
php72-php \
php72-php-common \
php72-php-cli \
php-mbstring \
〜省略〜
php-pdo \
php-mysqlnd \
php-pecl-mysql
設定ファイルは、/etc/opt/remi/php72/*、/etc/php.d/*、の2箇所にできていました。
/etc/opt/remi/php72/*
/etc/php.d/*