Nach der Veröffentlichung der neuen Ubuntu Version (ich nutze Kubuntu) habe ich meinen Arbeitsrechner zuhause auf die neue Version aktualisiert.
Leider liefen meine Magento Shops in der lokalen Umgebung nicht mehr durch. Dies liegt vor allem ein zwei Dingen…
Die Funktionen
json_encode
undjson_decode
werden nicht mehr mit PHP gebündelt. Dies liegt an einer Lizenzproblematik auf die ich jetzt nicht weiter eingehen möchte.Mcrypt wurde nicht mehr geladen.
Wird ein Produkt in den Warenkorb gelegt, erscheint die folgende Meldung:
Notice: Use of undefined constant MCRYPT_MODE_ECB - assumed 'MCRYPT_MODE_ECB'
Eine kurzer Aufruf von n98-magerun.phar sys:check
zeigte mir dann diesen Output:
Check: PHP
Required PHP Module simplexml found.
Required PHP Module mcrypt not found!
Required PHP Module hash found.
Required PHP Module gd found.
Required PHP Module dom found.
Required PHP Module iconv found.
Required PHP Module curl found.
Required PHP Module soap found.
Required PHP Module pdo found.
Required PHP Module pdo_mysql found.
Bytecode Cache apc found.
Als hier konnte ich zumindest feststellen, dass mcrypt nicht mehr geladen wurde.
Hier die Lösungen für beide Probleme:
JSON Funktionen
Diese können über ein alternatives PECL Modul nachinstalliert werden.
pecl install jsonc
Ubuntu hat inzwischen ein Paket bereitgestellt:
apt-get install php5-json
mcrypt Modul
Auf Stackoverflow habe ich eine kurze Anleitung gefunden, die bei mir direkt funktionierte.
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart
Man beachte die neuen php5enmod und php5dismod* Befehle die Analog zu den bereits für Apache vorhanden Befehlen eingeführt wurden. Damit lässt sich praktisch ein PHP Modul aktivieren und deaktivieren (auch für bestimmte SAPIs).
Ich hoffe ich konnte mit der kleinen Anleitung ein bisschen helfen…