Brak rozszerzenia Mcrypt na serwerze 14.04 dla mysql


112

Rozszerzenie php mcrypt na Ubuntu 14.04 pokazuje, że jest poprawnie zainstalowane, ale phpmyadmin mówi:

 The mcrypt extension is missing. Please check your PHP configuration.

Moja obecna konfiguracja php jest tutaj . Jeśli potrzebujesz więcej informacji, skontaktuj się ze mną poprzez komentarze.

$ 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
Przyjęta odpowiedź nie jest najlepszą praktyką. Najprostszych, a prawidłowa odpowiedź: http://askubuntu.com/a/477608/139249 ma także najwięcej głosów.
Mike Stewart

Dla odniesienia innych „najprostsza” odpowiedź nie działała dla mnie. php5enmod mcryptzamroził Apache. php5dismod mcryptuwolniłem to ponownie. Poszedłem z zaakceptowaną odpowiedzią i zmodyfikowałem ścieżkę extension=..i tym razem php5enmod mcryptzadziałało. Tak, jest kompleksowy i powinien być przyjętą odpowiedzią.
Oliver Williams

Odpowiedzi:


138

Spróbuj tego:

sudo updatedb 
locate mcrypt.ini

Powinien pokazać go w / etc / php5 / mods-available

locate mcrypt.so

Edytuj plik mcrypt.ini i zmień rozszerzenie, aby dopasować ścieżkę do pliku mcrypt.so, przykład:

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

Teraz to:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Sprawdź, czy istnieją tutaj nowe pliki (powinny zostać automatycznie utworzone na podstawie powyższego problemu)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

W przeciwnym razie wykonaj następujące czynności

Utwórz teraz łącza symboliczne

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

Uruchom ponownie Apache

sudo service apache2 restart

Uruchom ponownie php5 lub php5-fpm

sudo service php5 restart

To jest źle! Myślę, że miałeś na myśli coś takiego: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini I nie na odwrót.
wolfdawn

14
Praca po prostu php5enmod mcryptdziałała dla mnie sprawnie.
diosney,

3
Uruchomienie php5enmod mcryptutworzy dla Ciebie te dowiązania symboliczne. Nie musisz tego robić ręcznie (tzn. Możesz pominąć ln -spolecenia).
Serrano

1
działa php5enmod mcryptw prawidłowy sposób Ubuntu / Debian. Ta odpowiedź jednak zadziała, jest uciążliwa i nie jest najlepszą praktyką.
Mike Stewart

1
wiele powyższych kroków nie jest koniecznych. Zobacz odpowiedź @ MURATSPLAT.
Raptor

155

Spróbuj to zrobić:

sudo php5enmod mcrypt

I wtedy:

sudo service apache2 restart 

Na moim komputerze zainstalowałem świeżą wersję Ubuntu 14.04 (wersja na komputery). W ten sposób można włączyć mcrypt, który został już zainstalowany.


5
Uwaga: jeśli używasz nginx z php5-fpm - to php5-fpm service restart(lub załaduj ponownie, jeśli w końcu zostanie załatany)
Mike Stewart

2
To, co robią te dwie komendy, to: pierwsza linia włącza moduł o nazwie „mcrypt”, a następnie ponownie uruchamia apache2, aby zaktualizować konfigurację. Możesz zobaczyć włączony moduł z /etc/apache2/mods-available. Ciesz się życiem LAMPY :)
itiskj

sudo service apache2 reloadwystarczy, nie trzeba zrestartować komputera (zresztą 14.04 i tak to wypróbowałem)
Jasper

55

Zainstaluj mcryptrozszerzenie dla PHP, włącz je i uruchom ponownie Apache. Oto polecenia do wykonania:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
Prosty. Doskonały. Działa bez problemów, przynajmniej dla mnie na Ubuntu 14.04.1 LTS (zaufany)
Gor

Działa również na Ubuntu 14.10
Coca Akat

Polecam nie umieszczać mcryptw pierwszym wierszu. Jest domyślnie instalowany jako zależność php5-mcrypt, ale jeśli go zainstalujesz, apt-get nie będzie wiedział, jak go usunąć, jeśli później zdecydujesz się odinstalować ph5-mcryptpakiet.
beldaz

@beldaz istnieje co najmniej jeden serwer, na którym zainstalowano php5-mcrypt zgodnie z apt-get, ale brakowało mcrypt, z powodu którego moduł pnp nie włączał się, co prowadzi do problemu z instalacją Joomla. więc włączenie mcrypt ma dla mnie sens.
tagMacher

6

Php5-mcrypt pakiet Ubuntu zainstalować plik konfiguracyjny mcrypt.iniw /etc/php5/conf.d/którym jest stary PHP config układ katalogów.

Obecny sposób pracy nad włączeniem modułów w PHP5 polega na umieszczeniu plików ini w /etc/php5/mods-availablekatalogu. Następnie, aby włączyć moduł w PHP5, musisz utworzyć symboliczne łącze do powiązanych plików ini z /etc/php5/apache2/conf.dkatalogu, aby włączyć moduł, gdy PHP jest używane pod Apache lub / i /etc/php5/cli/conf.djeśli chcesz, aby ten moduł był włączony, gdy używasz PHP poza Apache, w skryptach uruchamianych z wiersza poleceń lub z crontab.

Zauważ również, że w conf.dkatalogu możesz utworzyć łącze do pliku ini, umieszczając przed nim liczbę, aby moduły były ładowane w określonej kolejności. Przydatne, gdy trzeba załadować moduł w zależności od innego.

Oczywiście nie zapomnij zrestartować Apache, jeśli włączyłeś moduł dla Apache:

 sudo service apache2 restart

4

Wymagana tylko moja instalacja serwera 14.04 (po zainstalowaniu php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Jeśli problem nadal występuje,

włącz moduł, dodając: extension=mcrypt.sodo

/etc/php5/cli/php.ini

i

/etc/php5/apache2/php.ini


1
Dla mnie dodanie „rozszerzenia = mcrypt.so” działało po zainstalowaniu mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva

To działa i jest DROGA prostsze niż zaakceptowana odpowiedź ... która również się zepsuje podczas aktualizacji.
Eric

Postępowałem zgodnie z każdą instrukcją tutaj i w innych miejscach, ale na próżno. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Wersja serwera: 5.7.10 - MySQL - Wersja klienta bazy danych: libmysql - 5.5.47 - phpMyAdmin Wersja: 4.0.10deb1 .... ktoś ma pomysł?
Jadeye

2

W Ubuntu 16.04 LTS, aby włączyć moduł mcrypt z php 5.6:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

lub z php 7.0:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

i wtedy

sudo service apache2 restart

1

Z PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart

$ sudo phpenmod mcrypt OSTRZEŻENIE: Plik ini mcrypt modułu nie istnieje w /etc/php/7.1/mods-available
Jewgienij Afanasiew

$ sudo /etc/init.d/apache2 restart sudo: /etc/init.d/apache2: nie znaleziono polecenia
Jewgienij Afanasyjew

0

Powinieneś być w stanie zainstalować rozszerzenie mcrypt dla PHP, uruchamiając:

sudo apt-get install php5-mcrypt

cóż, mówi, że (linia poleceń) jest poprawnie zainstalowany, ale jakoś wspomniano na serwerze, jak wspomniano powyżej
matthapkidokarate

1
@ jkt123: Zauważyłem, że podczas instalowania modułu Ubuntu, takiego jak php5-mcrypt, wszystkie pliki są tam później, ale moduł nie jest włączony w głównej konfiguracji PHP. Musisz aktywować go ręcznie, jak opisano w zaakceptowanej odpowiedzi.
Benoit

nie działa bez dodania rozszerzenia = mcrypt.so do php.ini
Eric

0

Zauważ, że w Ubuntu 14.04 php5-mcrypt znajduje się w repozytorium wszechświata, które można wyłączyć. W takim przypadku, aby go zainstalować, musisz włączyć repozytorium za pomocą:

sudo add-apt-repository universe


0

Jest to najlepszy sposób na dodanie rozszerzenia php 5.5 mcrypt na serwerze Ubuntu 14.04

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

@ Odpowiedź Kevsina działała dla mnie, ale musiałem uruchomić mkdir -p /etc/php5/apache2/conf.d/i ręcznie uruchomić, sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.iniaby dostać się do pracy. sudo php5enmod mcryptdziałało dobrze dla pierwszego dowiązania symbolicznego.

Uwaga: korzystam z PHP5-FPM. To mogła być różnica.


0

Dla tych, którzy to znajdą, dla Ubuntu 16.04 (używając PHP7), oto co zrobiłem, aby włączyć mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.