L'estensione Mcrypt manca nel server 14.04 per mysql


112

L'estensione php mcrypt su Ubuntu 14.04 mostra che è installato correttamente, ma phpmyadmin dice:

 The mcrypt extension is missing. Please check your PHP configuration.

La mia attuale configurazione php è qui . Se hai bisogno di ulteriori informazioni, ti prego di contattarmi attraverso i commenti.

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

7
La risposta accettata non è la migliore pratica. La risposta più semplice e corretta: http://askubuntu.com/a/477608/139249 ha anche il maggior numero di voti.
Mike Stewart,

Per riferimento degli altri, la risposta "più semplice" non ha funzionato per me. php5enmod mcryptcongelò Apache. php5dismod mcryptliberato di nuovo. Sono andato con la risposta accettata e modificato il percorso per extension=..e questa volta ha php5enmod mcryptfunzionato. Quindi sì, è completo e dovrebbe essere la risposta accettata.
Oliver Williams,

Risposte:


138

Prova questo:

sudo updatedb 
locate mcrypt.ini

Dovrebbe mostrarlo in / etc / php5 / mods-available

locate mcrypt.so

Modifica mcrypt.ini e modifica l'estensione in modo che corrisponda al percorso di mcrypt.so, ad esempio:

extension=/usr/lib/php5/20121212/mcrypt.so

Ora questo:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Verifica che qui esistano nuovi file (dovrebbero essere creati automaticamente dal problema sopra)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

Altrimenti, procedi come segue

Crea collegamenti di simboli ora

sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

Riavvia Apache

sudo service apache2 restart

Riavvia php5 o php5-fpm

sudo service php5 restart

Questo è sbagliato! Penso che volevi dire qualcosa del tipo: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini E non viceversa.
Wolfdawn,

14
Fare ha php5enmod mcryptfunzionato senza problemi per me.
Diosney,

3
Correre php5enmod mcryptcreerà quei collegamenti simbolici per te. Non è necessario farlo manualmente (ovvero è possibile saltare i ln -scomandi).
Serrano,

1
l'esecuzione php5enmod mcryptè il modo corretto Ubuntu / Debian. Questa risposta funzionerà, è ingombrante e non è una buona pratica.
Mike Stewart,

1
molti passaggi di cui sopra non sono necessari. Vedi la risposta di @ MURATSPLAT.
Raptor,

155

Prova a fare solo questo:

sudo php5enmod mcrypt

E poi:

sudo service apache2 restart 

Ho installato Ubuntu 14.04 (versione desktop) sul mio computer. In questo modo funziona per abilitare mcrypt che era già installato.


5
Nota, se stai eseguendo nginx con php5-fpm - quindi php5-fpm service restart(o ricaricalo se è finalmente patchato)
mike stewart

2
Quello che fanno questi due comandi è questo: la prima riga abilita il modulo chiamato 'mcrypt', quindi riavvia apache2 per aggiornare la configurazione. Puoi vedere il modulo abilitato da /etc/apache2/mods-available. Goditi la vita della LAMPADA :)
itiskj

sudo service apache2 reloadè sufficiente, non è necessario alcun riavvio effettivo (comunque il 14.04, è quello su cui l'ho provato)
Jasper

55

Installa l' mcryptestensione per PHP, abilitala e riavvia Apache. Di seguito sono riportati i comandi da eseguire:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
Semplice. Perfetto. Funziona senza problemi, almeno per me su Ubuntu 14.04.1 LTS (fidato)
Gor

Funziona anche su Ubuntu 14.10
Coca Akat,

Consiglierei di non includere mcryptnella prima riga. È implicitamente installato come dipendenza di php5-mcrypt, ma se lo si installa esplicitamente apt-get non saprà rimuoverlo se in seguito si sceglie di disinstallare il ph5-mcryptpacchetto.
Beldaz,

@beldaz esiste almeno un server in cui è stato installato php5-mcrypt come da apt-get ma mancava mcrypt a causa del quale il modulo pnp non veniva abilitato portando al problema di installazione di joomla. quindi includere mcrypt ha senso per me.
tagMacher,

6

Il pacchetto Ubuntu php5-mcrypt installa il file di configurazione mcrypt.iniin /etc/php5/conf.d/cui è il vecchio layout della directory di configurazione di PHP.

Il modo attuale di lavorare per abilitare i moduli in PHP5 è mettere i file ini nella /etc/php5/mods-availabledirectory. Quindi, per abilitare il modulo in PHP5, devi creare un collegamento simbolico ai relativi file ini dalla /etc/php5/apache2/conf.ddirectory per abilitare il modulo quando PHP è usato in Apache o / e da /etc/php5/cli/conf.dse vuoi avere questo modulo abilitato quando usi PHP fuori Apache, negli script eseguito dalla riga di comando o da crontab.

Si noti inoltre che nella conf.ddirectory è possibile creare il collegamento al file ini mettendo un numero davanti ad esso per caricare i moduli in un ordine specifico. Utile quando è necessario caricare un modulo a seconda di un altro.

Ovviamente, non dimenticare di riavviare Apache se hai abilitato il modulo per Apache:

 sudo service apache2 restart

4

La mia installazione del server 14.04 era necessaria (dopo l'installazione di php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Se il problema persiste,

abilitare il modulo aggiungendo: extension=mcrypt.soa

/etc/php5/cli/php.ini

e

/etc/php5/apache2/php.ini


1
Per me l'aggiunta di 'extension = mcrypt.so' ha funzionato dopo l'installazione di mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva,

Funziona ed è SEMPRE più semplice della risposta accettata ... che si interromperà anche quando si aggiorna.
Eric,

Ho seguito tutte le istruzioni qui e in altri posti, ma invano. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Versione server: 5.7.10 - MySQL - Versione client database: libmysql - 5.5.47 - Versione phpMyAdmin: 4.0.10deb1 .... qualcuno ha un'idea?
Jadeye,

2

In Ubuntu 16.04 LTS, per abilitare il modulo mcrypt, con php 5.6:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

o con php 7.0:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

e poi

sudo service apache2 restart

1

Con PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart

$ sudo phpenmod mcrypt AVVERTENZA: il file del modulo mcrypt ini non esiste in /etc/php/7.1/mods-available
Yevgeniy Afanasyev

$ sudo /etc/init.d/apache2 restart sudo: /etc/init.d/apache2: comando non trovato
Yevgeniy Afanasyev

0

Dovresti essere in grado di installare l'estensione mcrypt per PHP eseguendo:

sudo apt-get install php5-mcrypt

bene, dice che (riga di comando) è installato correttamente, ma in qualche modo manca dal server come menzionato sopra
matthapkidokarate

1
@ jkt123: Ho notato che quando installi alcuni moduli php come php5-mcrypt in Ubuntu, tutti i file sono lì in seguito, ma il modulo non è abilitato nella configurazione principale di PHP. Devi attivarlo manualmente come descritto nella risposta accettata.
Benoit,

non funziona senza aggiungere l'estensione = mcrypt.so a php.ini
Eric

0

Si noti che in Ubuntu 14.04 php5-mcrypt si trova nel repository dell'universo che potrebbe essere disabilitato. In questo caso per installarlo è necessario abilitare il repository con:

sudo add-apt-repository universe

0

Devi abilitare il modulo mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart

0

Questo è il modo migliore per aggiungere l'estensione php 5.5 mcrypt su Ubuntu 14.04 Server

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt 
sudo service apache2 restart

0

La risposta di @ Kevsin ha funzionato per me, ma ho dovuto correre mkdir -p /etc/php5/apache2/conf.d/ed eseguirlo manualmente sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.iniper mettermi al lavoro. sudo php5enmod mcryptha funzionato bene per il primo link simbolico.

Nota: sto eseguendo PHP5-FPM. Potrebbe essere stata la differenza.


0

Per coloro che lo trovano, per Ubuntu 16.04 (usando PHP7), ecco cosa ho fatto per abilitare mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.