由于缺少PHP扩展,CakePHP 3无法连接到数据库

Le *_*anh 8 mysql cakephp

我正在尝试使用WT-NMP安装cakePHP 3.0.0,但我收到此消息:

CakePHP无法连接到数据库.

由于缺少PHP扩展或未满足的依赖性,无法使用数据库驱动程序Cake\Database\Driver\Mysql

我的php.ini有这个:

extension = php_bz2.dll
extension = php_curl.dll
extension = php_gd2.dll
extension = php_imap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_pdo_mysql.dll
extension = php_pdo.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_sqlite3.dll
extension = php_openssl.dll
extension = php_fileinfo.dll
extension = php_intl.dll
Run Code Online (Sandbox Code Playgroud)

app.php有这个

    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        /**
         * CakePHP will use the default DB port based on the driver selected
         * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
         * the following line and set the port accordingly
         */
        'port' => '3306',
        'username' => 'root',
        'password' => '',
        'database' => 'test',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
Run Code Online (Sandbox Code Playgroud)

我错过了什么?或者这是cakePHP 3.0的错误?或者与WT-NMP有关.我被困了一整天.

Le *_*anh 11

运气解决了这个问题!:

extension = php_intl.dll
extension = php_pdo_mysql.dll
intl.default_locale = en_utf8
intl.error_level = E_WARNING
Run Code Online (Sandbox Code Playgroud)

  • 请解释更多步骤. (4认同)
  • 更多的解释会更好。 (2认同)

Ash*_*Ash 8

为MySQL数据库连接安装模块为我解决了这个问题:

#Install the package
sudo apt-get install php5-mysql
#Restart Apache
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

资料来源:http://guru4cakephp.blogspot.nl/2015/04/install-cakephp-3-on-ubuntu.html

包详情:https://packages.debian.org/sid/php5-mysql


Ami*_*wal 6

尝试这个:

对于 PHP 7.0

sudo apt-get install php7.0-mysql
Run Code Online (Sandbox Code Playgroud)

对于 PHP 5:

sudo apt-get install php5-mysql
Run Code Online (Sandbox Code Playgroud)


icc*_*c97 5

错误消息是因为extension = php_pdo_mysql.dll未在php.ini. 如果您没有php_intl.dll启用,您将在检查数据库连接之前收到错误消息。

php.ini表示您已php_pdo_mysql.dll启用,但是您可能需要重新启动CakePHP 服务器 bin/cake server