找不到PDO-Centos7 PHP7.1

时间:2018-07-22 07:59:19

标签: php laravel pdo server centos

我是服务器新手,所以请掩盖我的愚蠢。

这是一个服务器问题(我认为),而不是Laravel问题,但是我的网站基于Laravel5.4,因此仅供参考。

我目前正在使用Google Cloud Platform设置一个虚拟机,该虚拟机似乎可以与其他任何虚拟机一起工作。

当前已安装:

  • Centos 7
  • mariadb
  • Apache / 2.4.6(CentOS)
  • php71

所以我将我的网站文件夹放到/var/www/html/mywebsitefolder

我设置了mysql数据库并为数据库设置配置了我的网站配置,并尝试运行php71 artisan migrate。并且它引发以下错误:

  

PHP致命错误:在中找不到类“ PDO”   / var / www / html / soyegg / vendor / laravel / framework / src / Illuminate / Database / Co   第1200行的nnection.php在Connection.php 1200行中:                               找不到“ PDO”类

我研究并说需要安装php-pdo的

,所以我在cli中运行了以下代码行:

yum install php-pdo
yum install php-pdo_mysql

但是错误仍然存​​在。

然后,我进一步研究并说,我需要在php.ini中明确声明扩展名才能使用它们。但是,当我检查php.ini中是否有php71时,它不涉及任何行,类似于以下内容,其他人认为应该将它们添加到php.ini中:

extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so

我是菜鸟,所以我猜php71不会像这样玩扩展程序?但我仍将其添加到php.ini的某处,其中它对扩展名发表了评论。

然后抛出了更多错误。

请让我知道发生了什么事。

编辑: 感谢Daniel,在运行yum install php-mysqlnd后显示以下错误:

> Loaded plugins: fastestmirror Loading mirror speeds from cached
> hostfile  * base: mirror.team-cymru.com  * epel: mirror.steadfast.net 
> * extras: mirror.team-cymru.com  * remi-safe: mirror.team-cymru.com  * updates: mirror.genesisadaptive.com Resolving Dependencies
> --> Running transaction check
> ---> Package php-mysqlnd.x86_64 0:5.4.16-45.el7 will be installed
> --> Processing Conflict: php-mysql-5.4.16-45.el7.x86_64 conflicts php-mysqlnd
> --> Finished Dependency Resolution Error: php-mysql conflicts with php-mysqlnd-5.4.16-45.el7.x86_64  You could try using --skip-broken to
> work around the problem
> ** Found 12 pre-existing rpmdb problem(s), 'yum check' output follows: 1:NetworkManager-1.10.2-14.el7_5.x86_64 has missing requires of
> NetworkManager-libnm(x86-64) = ('1', '1.10.2', '14. el7_5')
> 1:NetworkManager-1.10.2-16.el7_5.x86_64 is a duplicate with
> 1:NetworkManager-1.10.2-14.el7_5.x86_64
> binutils-2.27-28.base.el7_5.1.x86_64 is a duplicate with
> binutils-2.27-27.base.el7.x86_64 gnupg2-2.0.22-5.el7_5.x86_64 is a
> duplicate with gnupg2-2.0.22-4.el7.x86_64
> google-cloud-sdk-207.0.0-1.el7.noarch is a duplicate with
> google-cloud-sdk-204.0.0-1.el7.noarch
> google-cloud-sdk-208.0.1-1.el7.noarch is a duplicate with
> google-cloud-sdk-207.0.0-1.el7.noarch
> google-cloud-sdk-208.0.2-1.el7.noarch is a duplicate with
> google-cloud-sdk-208.0.1-1.el7.noarch
> google-cloud-sdk-209.0.0-1.el7.noarch is a duplicate with
> google-cloud-sdk-208.0.2-1.el7.noarch httpd-2.4.6-80.el7.centos.x86_64
> has missing requires of httpd-tools = ('0', '2.4.6', '80.el7.centos')
> httpd-2.4.6-80.el7.centos.1.x86_64 is a duplicate with
> httpd-2.4.6-80.el7.centos.x86_64
> selinux-policy-targeted-3.13.1-192.el7_5.3.noarch has missing requires
> of selinux-policy = ('0', '3.13.1', '192.el7
> _5.3') selinux-policy-targeted-3.13.1-192.el7_5.4.noarch is a duplicate with selinux-policy-targeted-3.13.1-192.el7_5.3.no arch

2 个答案:

答案 0 :(得分:1)

尝试以下命令:

yum install php71w-mysqlnd

如果通过此命令执行安装,则安装将自动添加到php.ini配置文件中。

答案 1 :(得分:0)

MariaDB是MySQL的一个分支,因此请通过运行为MySQL安装PHP 7.1版的PDO驱动程序

yum install php7.1-mysql

这应将其自动添加到已加载的配置php.ini文件中。