Cosa è necessario per PHP mcrypt_decrypt ()?
Domanda
Ho uno script che utilizza la funzione mcrypt_decrypt (), ma viene visualizzato il seguente errore
Errore irreversibile: chiamata alla funzione indefinita mcrypt_decrypt ()
Quali moduli / librerie devo includere per usare questa funzione? O c'è un altro motivo per cui sto ricevendo l'errore?
Grazie
Soluzione
Vedi:
Devi compilare il tuo PHP con --with-mcrypt [= DIR]
e avere libmcrypt Versione 2.5.6 o successiva sul tuo computer.
Altri suggerimenti
sudo apt-get install php5-mcrypt
funziona su Ubuntu.
Configura php5-mcrypt con php5-fpm (Ubuntu 14.04)
Suppongo che tu abbia già installato e funzionante nginx e php-fpm.
php5-mcrypt dovrebbe essere già installato (viene fornito in bundle con php5-fpm). Solo per sicurezza, apt-get install php5-mcrypt
Crea collegamento simbolico a mods-avaliable, ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
Abilitalo. php5enmod mcrypt
Riavvia php-fpm, servizio php5-fpm restart
Riavvia nginx, riavvio del servizio nginx
Fatto!
Dal manuale :
Devi compilare PHP con --with-mcrypt [= DIR] per abilitare questa estensione. DIR è il directory di installazione di mcrypt. Assicurarsi compili libmcrypt con l'opzione le discussioni --disable-posix-.
Generalmente se PHP afferma che una funzione non è definita, significa che è necessario compilare in alcune librerie.
I sopra non funziona, puoi provare questo:
crea il file mcrypt.ini in /etc/php5/conf.d con contenuto
extension=mcrypt.so
Ho aggiornato PHP a 5.4 tramite http://php-osx.liip.ch/ e ha funzionato.
per php 5.3.X
dipende dalla disponibilità del pacchetto yum mcrypt, è possibile utilizzare i pacchetti yum
in questo modo: yum installa php53-mcrypt e riavvia httpd
E fai attenzione alla cartella nella pagina phpinfo: " Scansiona questa directory per ulteriori file .ini " e il successivo: " File .ini aggiuntivi analizzati " ;.
Dopo l'aggiornamento a php 5.4 in esecuzione (Works)
sudo php5enmod mcrypt
sudo service apache2 restart