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.