mCrypt nie jest obecny po aktualizacji Ubuntu do 13.10

92

Po uaktualnieniu systemu z Ubuntu 13.04 do 13.10 wystąpiło kilka problemów z konfiguracjami apache, mysql i php.

Większość z nich rozwiązałem, ale nie mogę uruchomić biblioteki mCrypt. Pakiet jest zainstalowany, więc nie muszę go pobierać. Serwer działa i wszystko wydaje się w porządku, ale kiedy próbuję uruchomić php artisan servez Laravel 4, pojawia się komunikat, że wymagany jest mCrypt.

Zrobiłem php --ri mcrypti wyjście było Extension 'mcrypt' not present. Próbowałem oddanie extension=mcrypt.sosię /etc/php5/apache2/php.ini, ale to nie działa.

Jakieś pomysły?

Wyjście 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
Vuk Stanković
źródło
Czy na pewno jest zainstalowanydpkg --get-selections | grep php5
tlenss
apt-get install php5-mcrypt?
Lajos Veres
1
Zaktualizowałem pytanie z wyjściem polecenia @tlenss. sudo apt-get install php5-mcryptwyjścia, że ​​jest zainstalowana i najnowsza wersja
Vuk Stanković
2
Może odpowiedź tutaj pomoże ci askubuntu.com/questions/360646/ ...
tlenss
Znalazłem błąd startera na tej stronie, który dał mi rozwiązanie. Dzięki
Vuk Stanković

Odpowiedzi:

273

Myślę, że znalazłem rozwiązanie na launchpad.net .

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

To zadziałało dla mnie.

Vuk Stanković
źródło
Dzięki za tę odpowiedź, w OpenCart 1.5.6 ten problem był przyczyną błędu ... Błąd krytyczny: wywołanie niezdefiniowanej funkcji mcrypt_create_iv () w / <ścieżka tutaj> /system/library/encryption.php on line 8
AndyGaskell
Warto zauważyć, że rozwiązanie to nie działa dla mnie z laravel / Artisan dopóki ja też sym-linked w /etc/php5/cli/conf.d
David M
Otrzymuję ten błąd. Który kod muszę zaktualizować? W którym pliku muszę zaktualizować? Uprzejmie zasugeruj ..
user2089987
To powodowało, że Webgility nie synchronizowało się. Zainstalowanie go naprawiło to dobrze. Dzięki!
Ryan,
2
W Ubuntu 14.04 / PHP5.5 pierwsza linia nie jest potrzebna. php5enmod tworzy link.
Wolk
27

Miałem ten problem z Ubuntu 14.04 i wykonałem następujące czynności, aby go rozwiązać:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart
eaykin
źródło
1
To właśnie zadziałało dla mnie, mam PHP w wersji 5.5.9-1ubuntu4.4 i nie miałem katalogu /etc/php5/conf.d.
flcoder
14

Mam też ten problem z Ubuntu 14.04 po instalacji.

Najpierw włącz mcrypt

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

Dodaj to polecenie w dowolnym wierszu

extension=mcrypt.so

Utwórz folder conf.d w / etc / php5

sudo mkdir conf.d

W tym folderze utwórz plik mcrypt.ini

sudo gedit mcrypt.ini 

Następnie dodaj to polecenie do tego pliku

extension=mcrypt.so

Następnie utwórz łącze do pliku

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

Włącz moduł mcrypt

sudo php5enmod mcrypt

Zrestartuj Apache

sudo service apache2 restart
Daroath
źródło
3
Nie trzeba extension=mcrypt.sow php.ini. Działa również bez niego, ponieważ rozszerzenia php (takie jak mcrypt) znajdują się w osobnych .iniplikach.
machineaddict
@machineaddict Dla mnie dodanie 'extension = mcrypt.so' działało po zainstalowaniu mcrypt. Lubuntu 14.04 Trusty Thar. Nie zostałem załadowany automatycznie
Clain Dsilva
11

Od Ubuntu 13.10 do 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Pracuje dla mnie.

Aleftos
źródło
Dla mnie WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Jednak plik znajdował się gdzie indziej. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/i uruchomił powyższe polecenia. Zaczerpnięte z www.devraju.com
machineaddict
3

Miałem też ten problem z Ubuntu 14.04 i Nginx, ale wskazówką dla mnie było zrestartowanie usługi FPM, więc zrobiłem:

Zainstaluj bibliotekę

apt-get install php5-mcrypt

Znajdź ścieżkę

updatedb && zlokalizuj mcrypt.so

Ustaw ścieżkę do mcrypt.so w pliku mcrypt.ini znajdującym się w /etc/php5/mods-available/mcrypt.ini

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

Następnie ponownie uruchom usługę FPM

restart usługi php5-fpm

Deric Lima
źródło
Po prostu potrzebowałem apt-get install php5-mcrypt, a następnie zrestartować php5-fpm na moim ubuntu 14.04.
deanpodgornik
Fajnie… W moim przypadku konieczne było ręczne znalezienie biblioteki mcrypt, ponieważ rozszerzenie było puste w pliku mcrypt.ini.
Deric Lima
0

Inne rozwiązanie, jeśli pakiet jest już zainstalowany:

sudo aptitude reinstall php5-mycript

To zadziałało po wykonaniu aktualizacji

rreimi
źródło
0

Wypróbuj ten kod:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Indrajeet Singh
źródło
0

Miałem ten sam problem z PHP 5.5.14 działającym na Mac OS X Yosemite. Próbowałem zainstalować Laravel 5.0. A kiedy próbowałem stworzyć nowy projekt otrzymałem błąd jak poniżej (nawet gdy próbowałem uruchomić serwer laravel z serwerem php artisan

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$ 

Dlatego właśnie dodałem poniższy wiersz na końcu mojego pliku php.ini za pomocą edytora nano:

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

Na koniec po prostu zrestartuj Terminal i zrestartuj serwer aplikacji laravel za pomocą

php artisan serve

I działa dobrze!

alexventuraio
źródło
0

właśnie znaleziony na php.net

Uwaga, w przypadku Ubuntu samo zainstalowanie php5-mcrypt nie zapewniło działania mcrypt. Aby ją włączyć, musisz wykonać następujące polecenia jako root:

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

SharkWeb
źródło
0

Czasami ten „problem” występuje, ponieważ wprowadzono polecenie rzemieślnika na komputerze lokalnym, a nie na maszynie wirtualnej. Jeśli używasz Homestead, mcrypt jest już zainstalowany. Potraktuj to jako przypomnieniehomestead ssh

Chukky Nze
źródło