mCrypt non è presente dopo l'aggiornamento di Ubuntu alla 13.10


92

Dopo aver aggiornato il mio sistema da Ubuntu 13.04 a 13.10, si sono verificati diversi problemi con le configurazioni di apache, mysql e php.

Ho risolto la maggior parte di loro ma non riesco a far funzionare la libreria mCrypt. Il pacchetto è installato, quindi non è necessario ottenerlo con apt. Il server funziona e tutto sembra a posto, ma quando provo a eseguire php artisan serveLaravel 4, ricevo un messaggio che indica che è richiesto mCrypt.

Ho fatto php --ri mcrypte l'uscita è stato Extension 'mcrypt' not present. Ho provato a mettere extension=mcrypt.soa /etc/php5/apache2/php.ini, ma non ha funzionato.

Qualche idea?

Uscita di dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

Sei sicuro che sia installatodpkg --get-selections | grep php5
tlenss

apt-get installa php5-mcrypt?
Lajos Veres

1
Ho aggiornato la domanda con l'output del comando @tlenss. sudo apt-get install php5-mcryptemette che è installato e la versione più recente
Vuk Stanković

2
Forse la risposta qui ti aiuterà a askubuntu.com/questions/360646/…
tlenss

Ho trovato un bug del launchpad su quella pagina che mi ha dato una soluzione. Grazie
Vuk Stanković

Risposte:


273

Penso di aver trovato la soluzione su launchpad.net .

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

Questo ha funzionato per me.


Grazie per questa risposta, in OpenCart 1.5.6 questo problema causava l'errore ... Errore fatale: chiamata alla funzione non definita mcrypt_create_iv () in / <path here> /system/library/encryption.php on line 8
AndyGaskell

Da notare, questa soluzione non ha funzionato per me con Laravel / Artisan fino a quando non ho anche collegato il sym in /etc/php5/cli/conf.d
David M

Ricevo questo errore Quale codice devo aggiornare? In quale file devo aggiornare? Si prega di suggerire ..
user2089987

Ciò causava la mancata sincronizzazione di Webgility. L'installazione lo ha risolto bene. Grazie!
Ryan

2
Con Ubuntu 14.04 / PHP5.5 la prima riga non è necessaria. php5enmod crea il collegamento.
Wolk

27

Ho avuto questo problema con Ubuntu 14.04 e ho fatto quanto segue per risolverlo:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Questo è ciò che ha funzionato per me, ho la versione PHP 5.5.9-1ubuntu4.4 e non avevo una directory /etc/php5/conf.d.
flcoder

14

Ho anche questo problema con Ubuntu 14.04 dopo l'installazione.

Per prima cosa abilita il file mcrypt

sudo gedit /etc/php5/apache2/php.ini

Aggiungi questo comando in qualsiasi riga

extension=mcrypt.so

Crea la cartella conf.d in / etc / php5

sudo mkdir conf.d

E all'interno di quella cartella crea il file mcrypt.ini

sudo gedit mcrypt.ini 

Quindi aggiungi questo comando a quel file

extension=mcrypt.so

Quindi creare un collegamento al file

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

Abilita il modulo mcrypt

sudo php5enmod mcrypt

Riavvia Apache

sudo service apache2 restart

3
Non hai bisogno extension=mcrypt.sodi entrare php.ini. Funziona anche senza di esso, poiché le estensioni php (come mcrypt) sono in .inifile separati .
macchineaddict

@machineaddict Per me l'aggiunta di "extension = mcrypt.so" ha funzionato dopo aver installato mcrypt. Lubuntu 14.04 Trusty Thar. Non sono stato caricato automaticamente
Clain Dsilva

11

Da Ubuntu 13.10 a 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Per me va bene.


Per me: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Tuttavia, il file si trovava da qualche altra parte. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/e ha eseguito i comandi sopra. Tratto da www.devraju.com
machineaddict

3

Ho anche avuto questo problema con Ubuntu 14.04 e Nginx, ma il suggerimento per me è stato riavviare il servizio FPM, quindi ho fatto:

Installa la libreria

apt-get install php5-mcrypt

Trova il percorso

updatedb && trova mcrypt.so

Imposta il percorso di mcrypt.so all'interno del file mcrypt.ini che si trova in /etc/php5/mods-available/mcrypt.ini

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

Quindi riavvia il servizio FPM

riavviare il servizio php5-fpm


Avevo solo bisogno di apt-get installare php5-mcrypt e poi riavviare php5-fpm sul mio ubuntu 14.04.
deanpodgornik

Bello .. Nel mio caso è necessario trovare manualmente la libreria mcrypt perché l'estensione era vuota nel file mcrypt.ini.
Deric Lima

0

Un'altra soluzione se il pacchetto è già installato:

sudo aptitude reinstall php5-mycript

Questo ha funzionato per me dopo aver eseguito l'aggiornamento


0

Prova questo codice:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart

0

Ho avuto lo stesso problema con PHP 5.5.14 in esecuzione su Mac OS X Yosemite. Stavo cercando di installare Laravel 5.0. E quando ho provato a creare un nuovo progetto ho ricevuto un errore come di seguito (anche quando ho provato ad avviare il server laravel con php artisan serve

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

Quindi ho appena aggiunto la riga sottostante alla fine del mio file php.ini con l'editor nano:

extension=mcrypt.so
sudo nano /etc/php.ini

Infine riavvia semplicemente il Terminale e riavvia il server delle app laravel con

php artisan serve

E funziona bene!


0

appena trovato su php.net

Nota, per Ubuntu, la semplice installazione di php5-mcrypt non faceva funzionare mcrypt. È necessario eseguire i seguenti comandi come root per abilitarlo:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

A volte, questo "problema" si verifica perché hai immesso un comando artisan sulla tua macchina locale invece che sulla tua macchina virtuale. Se stai usando Homestead, mcrypt è già installato. Consideralo un promemoria perhomestead ssh

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.