
Bei der Installation des Programms -> OneClick für Online-Umfragen bin ich auf das Problem gestoßen, dass die Administrationsseiten einfach leer angezeigt wurden und im Log-File der Fehler
angezeigt wurde. Die Überprüfung des Scripts förderte keine Fehler zutage und auch der Versuch mit Online-Syntax-Checkern wie -> phpcodechecker oder -> PHP code syntax check führte zu keinen sinnvollen Ergebnissen. Allerdings stand in der Installationsanleitung von OneClick, dass in der php.ini das short_open_tag auf On gestellt werden muss und im Script waren auch tatsächlich die Anweisungen für Start und Stop der Code-Interpretation ?> und <? enthalten. Dabei handelt es sich um die Kurzform von
Die Änderung des short_open_tag in der php.ini im Verzeichnis /etc/php/7.0/apache2 hatte keinen Erfolg, was sich durch den Aufruf des Scripts
kontrollieren lässt. Bei der älteren Version PHP 5.6 funktioniert das, wobei man darauf achten muss, dass das short_open_tag in der Ini-Datei mindestens zweimal vorkommt. Auf php.net schließlich ist nachzulesen, dass PHP 7.0 keine short_open_tags mehr unterstützt.
Es gibt also nur zwei Lösungen:
Entweder man ersetzt im Code alle short_open_tags komplett komplett durch die Langversion oder man installiert eine Version (z.B. PHP 5.6), die mit den short_open_tags zurecht kommt. Die parallele Installation macht durchaus Sinn, da man dann phpMyAdmin weiterhin mit PHP 7.0 verwenden kann und den Code eben nicht umschreiben muss. Da PHP 5.6 nicht mehr in den offiziellen Ubuntu-Repositories ist, benötigt man das PPA wie -> hier beschrieben. Die Installation erfolgt mit
:~$ sudo apt-get update
:~$ sudo apt-get install php5.6 php7.0 php5.6-dev php5.6-mysql php-gettext php5.6-mbstring php-mbstring php-xdebug libapache2-mod-php5.6 php5.6-mcrypt
Nach der Installation wird für den Apache2 PHP 7.0 deaktiviert und PHP 5.6 aktiviert.
:~$ sudo a2enmod php5.6
:~$ sudo service apache2 restart
Im konkreten Fall benötigen wir nur die Änderung für den Apache2 und lassen das CLI außen vor. Welche Version gerade aktiviert ist stellt man für den Apache2 mit test.php (siehe oben) und für die Shell mit
fest.
Wechselt man auf für den Apache wieder auf PHP 7.0
:~$ sudo a2enmod php7.0
:~$ sudo service apache2 restart
und prüft mit test.php nach, ist das short_open_tag auf On.
2 Comments