web-dev-qa-db-ja.com

PHP拡張子がないため、CakePHP3はデータベースに接続できません

WT-NMPでcakePHP3.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

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,

何が足りないのですか?またはこれはcakePHP3.0のバグですか? OR WT-NMPとは何でも。私は一日中立ち往生しています。

9
Le Duy Khanh

運によってこれを解決しました!:

extension = php_intl.dll
extension = php_pdo_mysql.dll
intl.default_locale = en_utf8
intl.error_level = E_WARNING
11
Le Duy Khanh

MySQLデータベース接続用のモジュール をインストールすると解決しました:

#Install the package
Sudo apt-get install php5-mysql
#Restart Apache
Sudo service Apache2 restart

ソース: http://guru4cakephp.blogspot.nl/2015/04/install-cakephp-3-on-ubuntu.html

パッケージの詳細: https://packages.debian.org/sid/php5-mysql

8
Ash

エラーメッセージは、extension = php_pdo_mysql.dllphp.iniにインストールおよび有効化されていないことが原因です。 php_intl.dllを有効にしていない場合、データベース接続を確認する前にエラーが発生します。

php.iniは、php_pdo_mysql.dllが有効になっていることを示していますが、 CakePHPサーバーbin/cake serverを再起動する必要があった可能性があります。

4
icc97

これを試して:

PHP 7.0

Sudo apt-get install php7.0-mysql

PHP 5の場合:

Sudo apt-get install php5-mysql
2
Amit Dangwal

Php.iniの読み取りだけに依存しないでください。 php [v] -mysql拡張機能がインストールされているかどうかを確認してください。 php_mysql.dllがphp拡張ディレクトリに存在するかどうかを確認できます(おそらく<path to your php installation>/ext)Windowsベースのサーバーで。 Linuxでは、次のコマンドを使用して、インストールされているかどうかを確認できます。

yum list installed | grep php

インストールされているすべてのphp拡張機能が一覧表示されます。

1
Johna