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.