2015-12-26 37 views
33

Ogni volta che provo ad accedere phpMyAdmin, ricevo il seguente errore: ". L'estensione mbstring manca Abilita le configurazioni di PHP"non è possibile inizializzare mbstring con PHP 7

Sono eseguire uno stack LEMP su un server CentOS 7. Ho scelto di utilizzare PHP 7 per questa installazione. Non ho riscontrato questo errore su configurazioni identiche con versioni precedenti di PHP.

extension_loaded('mbstring') restituisce false anche se mbstring.ini (/etc/php.d/) contiene:

; Enable mbstring extension module 
extension=mbstring.so 

Sono sicuro al 100% che il modulo mbstring è installato sul mio server.

Sono completamente perplesso, quindi se qualcuno ha qualche idea di sorta, per favore fatemelo sapere. Grazie.

+0

Hai guardato 'phpinfo();'? – Andrea

+1

@Andrea Yep, segue il tema senza menzione di _mbstring_. – NoahMCM

+0

in questo caso, mbstring non è installato e funzionante. 'extension =' non dovrebbe andare in 'mbstring.ini' btw, penso che dovrebbe andare in' php.ini' – Andrea

risposta

5

Una soluzione viene raggiunto con il seguente metodo:

metto extension=mbstring.so all'interno php.ini anche se questo non è il metodo PHP usa predefinita per caricare moduli.

Da php.ini stessa:

Note: packaged extension modules are now loaded via the .ini files found in the directory /etc/php.d; these are loaded by default.

sembrava per risolvere il mio problema. Sarei ancora interessato a sapere se qualcun altro ha una presa diversa su questo argomento.

+0

Forse la distribuzione di PHP 7 che hai usato non usa gli stessi percorsi di configurazione? – Andrea

+0

Ho già installato 'php7.0-mbstring' ma per qualche ragione' phpenmod mbstring' non l'ha abilitato.Ho dovuto abilitarlo manualmente usando questo metodo. Inoltre, il mio ambiente richiedeva un 'sudo service apache2 restart' per rendere effettive le modifiche. –

76

Per coloro che hanno debian:

sudo apt-get install php7.0-mbstring 

Altrimenti in CentOS (testati in CentOS 6.6)

sudo yum install php70w-mbstring 

e, come detto @mpen è possibile attivarlo

sudo phpenmod mbstring 
+2

PS: Può essere abilitato con 'sudo phpenmod mbstring' – mpen

+0

Avevo bisogno di riavviare anche apache' servizio httpd restart' –

+8

Per CentOS 7 + PHP 7, il nome del pacchetto era 'php70u-mbstring'. Se ottieni 'Nessun pacchetto php70w-mbstring disponibile ', devi fare' sudo yum list | grep "\ -mbstring" 'per trovare il pacchetto corrispondente. –

0

I ha avuto questo problema per molto tempo. Ho trovato il modo corretto (per me) per correggerlo ... ed è abbastanza semplice :)

Juste aggiungere "universo" sui xenial-aggiornamenti

# cat /etc/apt/sources.list.d/* 
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-backports main 
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial main universe 
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-proposed main 
deb [arch=amd64] http://security.ubuntu.com/ubuntu xenial-security main 
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-updates main **universe** 
-1

run sudo apt-get update, sudo apt-get upgrade prima di installare con sudo apt-get install php-mbstring.

Ho avuto lo stesso problema oggi e ho trovato questo modo.