【问题标题】:php artisan migrate - Laravelphp 工匠迁移 - Laravel
【发布时间】:2015-09-07 23:55:58
【问题描述】:

很快,我在 ubuntu 终端上按 Enter 'php artisan migrate' 命令。错误如下:- [PDOException] 找不到驱动程序

我无法解决这个问题,因为我是新手。

请帮我解决这个问题。

【问题讨论】:

  • 您的 CLI 是否有单独的 php 配置?可能模块不是仅在 CLI 中加载的
  • php -i | grep php.ini 应该返回使用了哪个 php.ini 文件。

标签: php laravel laravel-5


【解决方案1】:

你应该在你的 php.ini 中为你的数据库管理器启用 PDO 扩展

;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll //In my Case the extension enable is for pgsql
;extension=php_pdo_sqlite.dll

对于启用,您应该删除 ;扩展名行中的字符 重启服务器,瞧

【讨论】:

  • 牧师先生您好。我只是在等待这个答案。当我搜索发布在堆栈溢出的许多答案时。每个人都在询问是否启用了 PDO。但是,对我来说,“;extension=php_pdo_mssql.dll”是可用的。所以,它已启用。现在,下一步该做什么?
  • 我要安装 php5-sqlite 吗?
  • 嗯,你有吗? php-mssql 扩展。 sudo apt-get install php5-php5-sybase 和之后的 pear install --nodeps MDB2_Driver_mssql
  • 是的。我安装了这个 sybase
  • 你给我看你的 phpinfo() 吗??请仅使用 PDO 部分。
【解决方案2】:

我在“项目文件夹名称/config/database.php”中进行了更改。而且,它奏效了。添加 'unix_socket' => '/opt/lampp/var/mysql/mysql.sock',

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'DatabaseName'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', ''),
        'unix_socket'   => '/opt/lampp/var/mysql/mysql.sock', //Your sock got from above
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

【讨论】:

  • 这不是正确的解决方案,因为 /opt/lampp/var/mysql/mysql.sock 与默认配置相差甚远,它会破坏您在其他环境/系统上的应用程序。
【解决方案3】:

我认为您的 CLI 有一个单独的配置文件 (php.ini)。

尝试在您的控制台中执行php -i | grep php.ini。并在该文件中启用所需的模块。

它应该返回如下内容:

sander@sander-Laptop:~$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

如您所见,它使用另一个 php.ini 文件,然后是 phpinfo(); 返回的内容

打开该文件并在其中启用所需的扩展

所以更改您需要的扩展行: ;extension=extension.so 到 extension=extension.so

还有一个提示:如果你使用 Laravel,你可以使用 Homestead (vagrant, virtualbox),它是一个为你的 laravel 应用程序预装的虚拟机

http://laravel.com/docs/5.1/homestead

【讨论】:

    猜你喜欢
    • 2018-12-02
    • 2017-11-29
    • 2016-07-08
    • 1970-01-01
    • 2019-04-22
    • 2015-12-18
    • 2017-11-29
    • 2017-12-12
    • 2016-02-11
    相关资源
    最近更新 更多