logo
Artikel Diskussion (0)
PHP
(it.linux)
    

Inhalt
             1. für nextcloud
             2. Upstream-Handler
             3. php.ini
             4. Notwendige Module für PHP:
                4.1. Modul ZIP (php-zip)
                4.2. Modul APCu - OCPHintException: [0]: Memcache OCMemcacheAPCu not available for local cache (Is the matching PHP module installed and enabled?)

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.

1. für nextcloud

PHP muss in apache2 oder nginx intergriert werden und kann insoweit als Modul von apache2 betrachtet werden.

2. Upstream-Handler

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;

3. php.ini

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.

4. Notwendige Module für PHP:

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:

Auf diesen Artikel verweisen: keine Verweise