2016-07-29 105 views
1

我知道这个错误信息之前已经被描述和我试着像加pdo.so为php.ini的修复等PHP70 PDO错误+未捕获的错误:类“PDO”

主要的区别我有是PDO适用于我运行的服务器上的网站 - 它只是用于更新数据库的命令行脚本失败。所以基本上它可以工作,但不是在所有情况下

这是工作之前我升级到PHP7.0.8/9

sudo yum list installed php70* 
Loaded plugins: priorities, replace, update-motd, upgrade-helper 
958 packages excluded due to repository priority protections 
Installed Packages 
php70.x86_64     7.0.8-1.13.amzn1      @amzn-updates 
php70-cli.x86_64    7.0.8-1.13.amzn1      @amzn-updates 
php70-common.x86_64   7.0.8-1.13.amzn1      @amzn-updates 
php70-json.x86_64   7.0.8-1.13.amzn1      @amzn-updates 
php70-php-bcmath.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-cli.x86_64   7.0.9-1.el6.remi      @remi-safe 
php70-php-common.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-fpm.x86_64   7.0.9-1.el6.remi      @remi-safe 
php70-php-gd.x86_64   7.0.9-1.el6.remi      @remi-safe 
php70-php-json.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-mbstring.x86_64 7.0.9-1.el6.remi      @remi-safe 
php70-php-mcrypt.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-mysqlnd.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-opcache.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-pdo.x86_64   7.0.9-1.el6.remi      @remi-safe 
php70-php-pear.noarch  1:1.10.1-4.el6.remi     @remi-safe 
php70-php-pecl-igbinary.x86_64 
          1.2.2-0.2.20160715gita87a993.el6.remi @remi-safe 
php70-php-pecl-redis.x86_64 3.0.0-1.el6.remi      @remi-safe 
php70-php-process.x86_64  7.0.9-1.el6.remi      @remi-safe 
php70-php-xml.x86_64   7.0.9-1.el6.remi      @remi-safe 
php70-process.x86_64   7.0.8-1.13.amzn1      @amzn-updates 
php70-runtime.x86_64   1.0-5.el6.remi      @remi-safe 
php70-xml.x86_64    7.0.8-1.13.amzn1      @amzn-updates 

有没有办法手动包括PDO类?

为什么这只会在命令行上失败? 注意:我使用与Web和命令行相同的database.class.php(我写的) - 相同的类但结果不同。

想法?

+0

您使用的是Red Hat或Centos吗? tbh它可能是其他的口味,但我会猜测你在bash中的路径指向错误的php可执行文件。老实说很难说,虽然 – bassxzero

+0

是的Centos - 好的,我会看看路径...谢谢你 – Adam

+0

也许它的PHP .8和.9的混合 - 安装从2个不同的位置 - remi和amzn – Adam

回答

1

你有2个不同的PHP堆栈安装。

  • php70- *(7.0.8自AMZN),这些可能是 “基地” 的软件包,并可能提供的/ usr/bin中/ PHP的,但没有PDO扩展(PHP-PDO封装)

  • php70-PHP的*(7.0.9从雷米),这是一个软件集合,设计并行安装,将提供与php70命令(也可以用 “SCL使php70 PHP” 命令)

有关SCL的更多信息,请登录Remi's FAQ

+0

你完全正确,现在非常明显。我已经删除了AWS php包并通过remi重新安装了php。现在所有版本都在同一版本,并且一切正常。非常感谢你的时间......谢谢! – Adam