2015-04-02 10 views
5

Sto cercando di installare cakePHP 3.0.0 con WT-NMP, ma ho ottenuto questo messaggio:CakePHP 3 non è in grado di connettersi al database a causa di un'estensione PHP mancante

CakePHP non è in grado di connettersi al database.

database dei driver torta \ Database \ Driver \ MySQL non può essere utilizzato a causa di un mancante estensione PHP o di dipendenza non soddisfatta

mio php.ini ha questo:

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 

l'app.php ha questo

'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, 

Cosa mi manca? o questo è un bug di CakePHP 3.0? O qualsiasi cosa abbia a che fare con WT-NMP. Sono rimasto bloccato per l'intera giornata.

risposta

8

risolto questo per fortuna !:

extension = php_intl.dll 
extension = php_pdo_mysql.dll 
intl.default_locale = en_utf8 
intl.error_level = E_WARNING 
+0

LeDuyKhanh Grazie. – Chinmay235

+2

Spiega con più passaggi. –

3

messaggio L'errore è a causa del extension = php_pdo_mysql.dll non essere installato e abilitato php.ini. Se non si dispone di php_intl.dll attivato, si verificherà un errore prima di verificare la connessione al database.

tuo php.ini indica che avete ottenuto php_pdo_mysql.dll abilitato, tuttavia potrebbe essere stato che avevi bisogno di riavviare il CakePHP serverbin/cake server.

1

Non dipende solo dalla lettura di php.ini. Basta controllare se hai installato l'estensione php [v] -mysql. È possibile verificare se php_mysql.dll esiste nella directory di estensione php (molto probabilmente <path to your php installation>/ext) nel server basato su Windows. In Linux è possibile utilizzare il seguente comando per verificare se è installato.

yum list installed | grep php 

Elencherà tutte le estensioni php installate.

0

Prova questo:

Per PHP 7,0

sudo apt-get install php7.0-mysql 

Per PHP 5:

sudo apt-get install php5-mysql 
Problemi correlati