Zrobiłem to wiele razy:
sudo aptitude install php5-mcrypt
sudo apache2ctl restart
aptitude mówi, że mcrypt jest zainstalowany. Przeinstalowałem go już 3 razy. Ponownie uruchomiłem apache około 20 razy, odkąd go zainstalowałem. Kiedy patrzę na phpInfo, nie widzę mcrypt na liście. Kiedy próbuję wykonać mój kod, mówi, że funkcja mcrypt (wybierz jedną - dowolną) nie istnieje. mcrypt najwyraźniej nie jest włączony.
Czy ktoś ma pojęcie, co może być nie tak? Nie wiem, które elementy powinny być gdzie i jak to wszystko ma do siebie pasować.
Zainstalowałem PHP 5.5.3
apt-get
/aptitude
)? Pakietphp5-mcrypt
może skonfigurować rozszerzenie tylko dla tych, ophp.ini
których „wie”. Po drugie, nie teraz, jeśli ponownieapache2ctl
ładuję moduły. „Normalny” sposób ponownego uruchomienia Apache byłby podobnysudo service apache2 restart
. Po trzecie, w jaki sposób PHP jest podłączony do twojego Apache? Jeśli używasz czegoś takiego jak (f) cgi lub php-fpm (w przeciwieństwie do mod-php), prawdopodobnie będziesz musiał zrestartować PHP samodzielnie, dodatkowo do restartowania Apache.php.ini
są wymienione w wynikachphpinfo
(około 5 do 7 pozycji)? Powinien to być plik/etc/php5/
. Jeśli szukasz w tym plikumcrypt
, co się pojawia?mcrypt
paczką. Jest to program wiersza poleceń, który używa libmcrypt, podobnie jak rozszerzenie PHP. Musisz więc upewnić się, że pakietlibmcrypt4
jest zainstalowany. Czy jest tamphp.ini
fragment kodu/etc/php5/conf.d/mcrypt.ini
? To powinno załadować lib. Czy ten fragment kodu jest ładowany przez PHP (patrzphpinfo
)? Znów próbowałeś zrestartować Apachesudo service apache2 restart
zamiastapache2ctl
?Odpowiedzi:
Spróbuj tego
źródło
Miałem podobny problem na Ubuntu 13.10. Po uruchomieniu instalacji kompozytora wygenerował ten sam błąd, kończący się na.
Zainstalowałem
mcrypt
izphp5-mcrypt
aptitude i nadalphp -m
nie wyświetlałem sięmcrypt
jako załadowane rozszerzenie:Uruchomiłem
updatedb
i wtedylocate mcrypt
. Znalazłem sięmcrypt.ini
w/etc/php5/conf.d
. Jednak wszystkie inne rozszerzenia (jak json) miały swoje pliki .ini w/etc/php5/apache2/conf.d
i/etc/php5/cli/conf.d
. Oba były linkami do../../mods.available
.Następnie przeniosłem się
mcrypt.ini
do/etc/php5/available-modules
i ustawiłem linki:I podobnie dla
/etc/php5/apache2/conf.d
.I voila, pojawiło się
php -m
!źródło
Wygląda na to, że brakuje fragmentu ini, który ładuje libmcrypt, gdy PHP jest wywoływane przez Apache. Powinien istnieć plik
/etc/php5/apache2/conf.d/mcrypt.ini
o następującej treściPowinieneś być w stanie skopiować go z konfiguracji innych integracji PHP, takich jak
/etc/php5/cli/conf.d/mcrypt.ini
lub/etc/php5/conf.d/mcrypt.ini
, w zależności od tego, co jest zainstalowane w twoim systemie.źródło
Moduł mcrypt nie jest domyślnie włączony. Włącz moduł mcrypt, a następnie uruchom ponownie apache ( kredyt )
źródło
Cóż, to jest to. Wygląda na to, że czasami szukamy najbardziej splątanego sposobu zrobienia czegoś tak prostego jak „enmod”; ) Jak Boinst mówi:
sudo php5enmod mcrypt
. Następnie załaduj ponownie Apache.źródło