Ich habe das schon oft gemacht:
sudo aptitude install php5-mcrypt
sudo apache2ctl restart
aptitude sagt, dass mcrypt installiert ist. Ich habe es schon 3 Mal neu installiert. Ich habe Apache ungefähr 20 Mal neu gestartet, seit ich es installiert habe. Wenn ich mir phpInfo anschaue, sehe ich mcrypt nicht aufgelistet. Wenn ich versuche, meinen Code auszuführen, heißt es, dass die mcrypt-Funktion (pick one - any one) nicht existiert. mcrypt ist eindeutig nicht aktiviert.
Hat jemand eine Idee woran das liegen könnte? Ich weiß nicht, welche Teile wo sein sollen und wie das alles zusammenpassen soll.
Ich habe PHP 5.5.3 installiert
apt-get
/aptitude
) aus installiert ? Das Paketphp5-mcrypt
kann die Erweiterung nur fürphp.ini
diejenigen konfigurieren, von denen es "weiß". Zweitens tue ich es jetzt nicht, wennapache2ctl
die Module neu geladen werden. Die "normale" Art, Apache neu zu starten, wäre so etwas wiesudo service apache2 restart
. Drittens, wie ist PHP mit Ihrem Apache verbunden? Wenn Sie etwas wie (f) cgi oder php-fpm verwenden (im Gegensatz zu mod-php), müssen Sie PHP wahrscheinlich neu starten, zusätzlich zu Apache.php.ini
steht in der Ausgabe vonphpinfo
(ca. 5. bis 7. Eintrag)? Es sollte eine Datei in sein/etc/php5/
.mcrypt
Was passiert, wenn Sie in dieser Datei nach suchen ?mcrypt
Paket kümmern . Dies ist das Befehlszeilenprogramm, das libmcrypt verwendet, ebenso wie die PHP-Erweiterung. Sie müssen also sicherstellen, dass das Paketlibmcrypt4
installiert ist. Gibt es einenphp.ini
Ausschnitt bei/etc/php5/conf.d/mcrypt.ini
? Das sollte die lib laden. Wird dieses Snippet von PHP geladen (siehephpinfo
)? Haben Sie erneut versucht, Apache mitsudo service apache2 restart
anstelle von neu zu startenapache2ctl
?Antworten:
Versuche dies
quelle
Ich hatte unter Ubuntu 13.10 ein ähnliches Problem. Beim Ausführen der Composer-Installation trat derselbe Fehler auf, der auf endete.
Ich habe installiert
mcrypt
undphp5-mcrypt
mit aptitude, und immerphp -m
noch nichtmcrypt
als geladene Erweiterung angezeigt:Ich lief ein
updatedb
und dannlocate mcrypt
. Ich habe meinemcrypt.ini
in gefunden/etc/php5/conf.d
. Dennoch hatten alle anderen Erweiterungen (wie json) ihre INI-Dateien in/etc/php5/apache2/conf.d
und/etc/php5/cli/conf.d
. Diese beiden waren Links zu../../mods.available
.Also, ich ziehe dann
mcrypt.ini
auf/etc/php5/available-modules
und legen Sie die Links:Und ähnlich für
/etc/php5/apache2/conf.d
.Und voila, es zeigte sich in
php -m
!quelle
Es fehlt anscheinend das ini-Snippet, das libmcrypt lädt, wenn PHP von Apache aufgerufen wird. Es sollte eine Datei
/etc/php5/apache2/conf.d/mcrypt.ini
mit folgendem Inhalt vorhanden seinSie sollten in der Lage sein, es von den Konfigurationen anderer PHP-Integrationen wie
/etc/php5/cli/conf.d/mcrypt.ini
oder zu kopieren/etc/php5/conf.d/mcrypt.ini
, je nachdem, was auf Ihrem System installiert ist.quelle
Das mcrypt-Modul ist standardmäßig nicht aktiviert. Aktiviere das mcrypt Modul und starte Apache neu ( credit )
quelle
Nun, das ist es. Es sieht so aus, als ob wir manchmal auf der Suche nach dem verworrensten Weg sind, etwas so Einfaches wie 'enmod' zu tun. ) Wie Boinst sagt:
sudo php5enmod mcrypt
. Laden Sie dann Apache neu.quelle