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.