Synology: PHP-Version für CLI anpassen

Wer seine Synology Diskstation auch als kleinen Webserver nutzen möchte (zum Beispiel für Testzwecke) und dabei die CLI-Variante (PHP auf der Konsole) verwendet, wird schnell feststellen, dass es sich nicht um die gleiche Version handelt, die auch für Webzugriffe aufgerufen wird, sondern eine sehr beschränkte Version.

Diese Version enthält zum Beispiel keine MySQL-Unterstützung und die mysql.so und mysqli.so lassen sich auch nachträglich über die /etc/php/php.ini nicht laden, weil diese Version nicht entsprechend kompiliert ist („Cannot load module ‚mysql‘ because required module ‚mysqlnd‘ is not loaded“ ist die entsprechende Fehlermeldung).

Dies lässt sich jedoch recht einfach komplett umgehen, indem einfach die per Kommandozeile aufgerufene Version „umgebogen“ wird.

Dazu ist einfach folgender Befehl einzugeben (möglicherweise muss ein „sudo“ vorangestellt werden für die notwendigen Rechte):

ln -s /usr/local/bin/php56 /sbin/php

Dieser Befehl erstellen symbolische Links zur auch vom Webserver verwendeten php-Version (alternativ auch PHP7 möglich – je nach Einstellung der Synology und Bedarf).

Alternativ kann auch im jeweiligen PHP-Skript direkt einer der PHP-Befehle verwendet werden, der zur jeweiligen Version führt. Vorher einfach mal ins Verzeichnis /usr/local/bin schauen und dort die Files mit php listen (dazu einfach /usr/local/bin/php eingeben und mehrfach Tab drücken). Dann erscheinen – je nach System – folgende Dateien (bzw. Aliases):

php56  php56-cgi  php56-fpm  php70  php70-cgi  php70-fpm  phpdbg56  phpdbg70

die bereits angelegt sind und für Aufrufe von PHP genutzt werden können.

Synology mit zwei installierten PHP-Versionen
Synology mit zwei installierten PHP-Versionen

Auch für die virtuellen Hosts auf der Synology lässt sich die verwendete PHP-Version wählen:

Virtualhost Einstellungen in der Synology Verwaltungs-Oberfläche
Virtualhost Einstellungen in der Synology Verwaltungs-Oberfläche

Idee gefunden im Synology-Forum

Schreibe einen Kommentar