PHP Hypertext Preprocessor. PHP ist eine sog. serverseitig interpretierte Skriptsprache. Dies ermöglicht die dynamische Erzeugung von HTML-Code auf Basis von Benutzereingaben. Nextcloud basiert z.B. auf PHP. PHP kann somit einen Teil der Aufgaben übernehmen, die sonst von CGI-Scripts erledigt werden, daher kann man PHP selbst als eine CGI-Variante betrachten.
Im Gegensatz zu javascript wird PHP nicht
vom Client ausgeführt, sondern von einem
Programm (Interpreter) auf dem Server der die
Seiten zur Verfügung stellt. Der vom Interpreter erzeugte HTML-Code
kann von jedem Browser gelesen werden.
PHP, dessen Syntax sich an C orientiert, liegt seit 2000 in Version 4
vor. Und mittlerweile (2024) in Version 8.
memory_limit = 512MB
Erfordert einen Neustart. Unklar ist noch wo überall das Limit geändert werden muss.
Vorversion: PHP 8.1.2-1ubuntu2.19. PHP 8.1
Am einfachsten ist es, wenn einem Major-Update auf eine neu LTS auch ein neues PHP kommt, dann genügt das Majo-Update mit anschließender Anpassung des Systems.
PHP muss in apache2 oder nginx intergriert werden und kann insoweit als Modul von apache2 betrachtet werden.
Wenn es Probleme mit dem Upstream-Handler gibt, sollten man prüfen, ob unter
/etc/nginx/conf.d
der für die Version richtige Handler eingetragen ist:
upstream php-handler { server unix:/run/php/php8.1-fpm.sock;
Die php.ini enthält die Konfigurationsdaten für das PHP-Modul. Es gibt jeweils eine davon in den Verzeichnissen
/etc/php/8.1/cli/
/etc/php/8.1/fpm/
/etc/php/8.1//phpdbg/
Dabei sind die Einstellungen im Unterverzeichnis cli (= Comand Line Interface) maßgeblich für die PHP-Skripte die über die Lokal über das Command Line Interface interpretiert werden. Überprüfen kann man mit dem Befehl:
php --ini | grep php.ini
Die Antwort lautet dann:
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
Die php.ini im Verzeichnis ./fpm ist maßgeblich für die Interpretation der PHP-Skripte durch den Webservr (z.B. nginx). Was man wiederum über eine index.php mit dem folgendem Befehl als einzigem Inhalt:
phpinfo();
ermittlen kann. Die Antwort sollte lauten:
PHP Version => 8.1.2-1ubuntu.2.17
(...)
Configuration File (php.ini) Path /etc/php/8.1/fpm
Loaded Configuration File /etc/php/8.1/fpm/php.ini
Scan this dir for additional .ini files /etc/php/8.1/fpm/conf.d
D.h. je nach Anwendungsfall (Command Line oder Webserver) wird eine andere ini-Datei gelesen.
Ergänzend werden die jeweiligen .ini-Datein in dem jeweiligen Verzeichnis conf.d eingelesen. Hier gibt es für verschiedene PHP-Module nochmals eigene Einstellungen.
Folgende Module müssen auch mit
apt-get install ...
geladen werden. Dass kann in einem Befehl zusammengefasst werden:
apt-get install php-xml php-cli ...
Mit dem Kommando
php -m
kann man sich zuvor die installierten Module anzeigen lassen.
php-xml
php-cli
php-cgi
php-mbstring
php-gd
php-curl
php-apcu
Modul ZIP (php-zip)
Modul APCu - OCPHintException: [0]: Memcache OCMemcacheAPCu not available for local cache (Is the matching PHP module installed and enabled?)
APCu (= APC User Cache) Ist eine Form des APC (Alternative PHP Cache) der zur Beschleunigung von Zugriffen auf PHP-Sites dient.
Ist Nextcloud für die Nutzung von APCu konfiguriert führt ein fehlen des Moduls zu einem "Internal Server Error".
In dem file:
/etc/php/8.1/mods-available/apcu.ini
Muss am Ende eingefügt werden:
apc.enable_cli=1
Werbung:
|