PHP 致命错误:使用 laravel4 找不到类 'PDO'



经过一个小时的尝试来解决这个问题,我失败了):我的错误消息是:

Generating autoload files
PHP Fatal error:  Class 'PDO' not found in /usr/share/nginx/html/laravel/app/config/database.php on line 16
{"error":{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Class 'PDO' not found","file":"/usr/share/nginx/html/laravel/app/config/database.php","line":16}}Script php artisan clear-compiled handling the post-update-cmd event returned with an error

  [RuntimeException]                                                                                                    
  Error Output: PHP Fatal error:  Class 'PDO' not found in /usr/share/nginx/html/laravel/app/config/database.php on li  
  ne 16                                                                                                                 


update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]

我正在使用 linux centos 6.4 php 5.5.3 和 laravel 4。

你能帮我非常感谢吗?

您需要:

  1. 安装 PDO 支持。
  2. 在 PHP 配置中启用 PDO。这可以通过添加以下内容来完成:

extension=pdo.so

extension=pdo_mysql.so

到您的php.ini文件。

您可以使用

此脚本检查是否支持 PDO 以及哪些驱动程序可用:

<?php
if (defined('PDO::ATTR_DRIVER_NAME')) {
    print_r(PDO::getAvailableDrivers());
} else {
    echo 'PDO unavailable';
}

如果它显示"PDO不可用",则必须安装并启用它。

要在 centos 类型上安装 PDO:

yum install php-pdo

以下是我对 CentOS 7 上使用 NGINX+PHP-FPM 的 Laravel 5 的回答。

CentOS 7 仅支持 PHP 5.4(在撰写本文时)。 您可以使用WebTatic 存储库安装 PHP 版本 5.5 或 5.6(也许还有其他版本)。 最后,我决定启动一个干净的 CentOS 7 实例,这是我的食谱:

  1. CentOS 7 的最低 ISO 安装量 + yum install epel-release(如果不使用最小安装量,请尝试 yum 删除 php 和其他 php-* 软件包)。

  2. 安装 WebTatic 存储库:sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  3. 为 Laravel 5 安装最少的 PHP 5.6 软件包集: sudo yum 安装 php56w php56w-opcache php56w-common php56w-pdo php56w-mbstring

  4. 对于NGINX PHP支持,我使用PHP-FPM:sudo yum install php56w-fpm

对于所需的任何其他 PHP 软件包,假设安装了 WebTatic 存储库,请在软件包名称中将 php- 替换为 php56w-。

另一个问题是命名空间,所以使用\PDO而不仅仅是PDO

最新更新