nurweilesgeht
Goto Top

PHP-FPM session.savepath error

Tach,

ich bin gerade ein wenig am Verzweifeln.
Ich habe mich ein wenig schlau gemacht zu einer besseren Absicherung meiner virtuellen Hosts auf meinem Linux-Server.
Ziel: Für jeden vHost/Webspace vom Webserver wird ein Nutzer auf Linux Ebene erstellt. Zusätzlich bekommt jeder Webspace seinen eigenen PHP Prozess. So sollen PHP Scripte nur auf deren Ordnern vom jeweiligen Webspace Zugriff haben.

Problem:
  • Bspw. bei der Einrichtung einer Limesurvey-Instanz (oder auch Mediawiki) wird gemeckert, dass nicht auf den session.save_path schreibend zugriffen werden kann.
Auch wenn ich chmod -R 777 auf die directory setze, bekomme ich die Meldung. Das /upload Verzeichnis ist allerdings beschreibbar, nur das Unterverzeichnis /tmp/sessions darf nicht beschrieben werden. /tmp darf beschrieben werden.
Wenn ich dort versuche redis einzusetzen, bekomme ich auch die selbe Meldung. Welche genau weiß ich nicht, Statuscodes vom php Dienst und vom Webserver sind 200.
Ich habe mir Testweise ein PHP-Script www.the-cake-shop.de/redis-als-php-session-handler-nutzen/ zum Testen des redis heruntergeladen und dieser zählt auch munter hoch.

Was habe ich falsch konfiguriert? Selinux habe ich (leider) zum Test deaktiviert, hat keine Auswirkungen gezeigt.
Auch ohne die abgeschotetere PHP-Umgebung funktioniert dies auf dem System nicht.

Der genutzte Webserver ist ein nginx und PHP-FPM in der Version 8.1

Regards,
nurweilesgeht


PHP-FPM config für den Webspace:
chroot = /var/www/host1123de/chroot/
chdir = /

; Flags & limits
php_flag[display_errors] = off
php_admin_flag[log_errors] = on
php_admin_flag[expose_php] = off
php_admin_value[memory_limit] = 32M
php_admin_value[post_max_size] = 24M
php_admin_value[upload_max_filesize] = 20M
php_admin_value[cgi.fix_pathinfo] = 0

; Session
php_admin_value[session.entropy_length] = 1024
php_admin_value[session.cookie_httponly] = on
php_admin_value[session.hash_function] = sha512
php_admin_value[session.hash_bits_per_character] = 6
php_admin_value[session.gc_probability] = 1
php_admin_value[session.gc_divisor] = 1000
php_admin_value[session.gc_maxlifetime] = 1440

; Pathes
php_admin_value[include_path] = .
php_admin_value[open_basedir] = /data/:/tmp/misc/:/tmp/upload/:/dev/urandom
php_admin_value[sys_temp-dir] = /tmp/misc
php_admin_value[upload_tmp_dir] = /tmp/upload
php_admin_value[session.save_path] = /tmp/session
php_admin_value[soap.wsdl_cache_dir] = /tmp/wsdl
php_admin_value[sendmail_path] = /bin/sendmail -f -i
php_admin_value[session.entropy_file] = /dev/urandom
php_admin_value[openssl.capath] = /etc/ssl/certs

Content-ID: 3955160587

Url: https://administrator.de/contentid/3955160587

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

3803037559
3803037559 16.09.2022 aktualisiert um 13:38:09 Uhr
Goto Top
Schau mal in die Dienst-Konfiguration von systemd für php-fpm bzw. Nginx, dort kann global festgelegt werden wohin der Prozess überhaupt schreiben/lesen darf, noch oberhalb der Filesystem-Permissions
Die Direktiven
https://www.freedesktop.org/software/systemd/man/systemd.exec.html#ReadW ...

Cheers
certguy