Jump to content
Froxlor Forum
  • 0

Jessie / Apache 2.4 / PHP5-FPM - Access denied because search permissions are missing on a component of the path


WebCF

Question

EDIT: Das Panel ansich funktioniert ?brigens...

 

 

Ich k?nnt schonwieder aus der Haut fahren..

 

Gestern Froxlor eingerichtet (latest master von gestern), alles top - Dienste auch mehrfach neu gestartet, alles top. Eine Website eingerichtet, l?uft alles.

 

Heute auch noch. Starte vorhin den Server neu, gabs kurz ein Problem, dass php5-fpm den User x nicht aufl?sen konnte, weil nicht bekannt (libnss race condition, ist ja bekannt, konnte ich aber unter Jessie noch nicht zuverl?ssig l?sen).

 

Nagut, neuer reboot: PHP-FPM ist gl?cklich.

 

Seitdem bekomme ich aber vom Apache nix mehr:

(13)Permission denied: [client ] AH00035: access to / denied (filesystem path '/var/customers/webs/x/y.x.de') because search permissions are missing on a component of the path

Toll.

 

nscd l?uft, kann den User auch aufl?sen. Hab via Froxlor die Configs neu erstellen lassen: dasselbe.

 

In dem Ordner siehts so aus:

root@s1:/var/customers/webs# ls -la
total 12
drwxr-xr-x 3 root   root   4096 Oct  4 14:39 .
drwxr-xr-x 6 root   root   4096 Oct  4 13:37 ..
drwxr-x--- 6 user user 4096 Oct  5 20:45 user
root@s1:/var/customers/webs# id user
uid=10001(user) gid=10001(user) groups=10001(user)
root@s1:/var/customers/webs# groups www-data
www-data : www-data froxlorlocal
root@s1:/var/customers/webs# ps aux | grep apache2
root      1707  0.0  0.1  92188  6900 ?        Ss   20:47   0:00 /usr/sbin/apache2 -k start
www-data  1711  0.0  0.0 1102440 5204 ?        Sl   20:47   0:00 /usr/sbin/apache2 -k start
www-data  1712  0.0  0.1 1299008 6924 ?        Sl   20:47   0:00 /usr/sbin/apache2 -k start
root@s1:/var/customers/webs# ps aux | grep php
root      1520  0.0  0.4 365232 29496 ?        Ss   20:45   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
user    1523  0.0  0.1 365208  9356 ?        S    20:45   0:00 php-fpm: pool y.x.de                                           
user    1524  0.0  0.1 365208  9420 ?        S    20:45   0:00 php-fpm: pool x.de                                                 
froxlor+  1525  0.0  0.4 369756 25568 ?        S    20:45   0:00 php-fpm: pool s1.x.de                                              
user    1526  0.0  0.1 365208  9420 ?        S    20:45   0:00 php-fpm: pool x.y.de

Was passt dem H?uptling denn nun wieder nicht? Hat doch bis vor dem reboot tadellos funktioniert.

 

Ein

service nscd restart
service php5-fpm restart
service apache2 restart

bringt auch nix.

 

 

Grob Ideen, was ich pr?fen k?nnte?

 

 

Apache Config:

# 30_froxlor_ssl_vhost_x.y.de.conf
# Created 05.10.2015 20:45
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

# Domain ID: 3 (SSL) - CustomerID: 2 - CustomerLogin: user
<VirtualHost 1.2.3.4:443>
  ServerName bla
  ServerAdmin blubb
  SSLEngine On
  SSLProtocol ALL -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCipherSuite ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!DH:!AES128
  SSLVerifyDepth 10
  SSLCertificateFile /etc/ssl/froxlor-custom/.crt
  SSLCertificateKeyFile /etc/ssl/froxlor-custom/.key
  SSLCertificateChainFile /etc/ssl/froxlor-custom/.pem
  DocumentRoot "/var/customers/webs/user/x.y.de/"
  SuexecUserGroup "user" "user"
  <FilesMatch \.php$>
  SetHandler proxy:unix:/var/lib/apache2/fastcgi/user-x.y.de-php-fpm.socket|fcgi://localhost
  </FilesMatch>
  <Directory "/var/customers/webs/user/x.y.de/">
    Require all granted
  </Directory>
  Alias /webalizer "/var/customers/webs/user/webalizer/x.y.de"
  ErrorLog "/var/customers/logs/user-x.y.de-error.log"
  CustomLog "/var/customers/logs/user-x.y.de-access.log" combined

 # Das kam von mir, wegen ownCloud - hatte ich Testweise schon rausgenommen. Lief aber damit
  <Directory "/var/customers/webs/user/x.y.de/">
    AllowOverride All
  </Directory>
Header always add Strict-Transport-Security "max-age=15768000"
</VirtualHost>

Danke :)381239.png

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

Ah - Problem gefunden.

 

Ich erw?hnte ja nscd, ne? Harr.. Ja - die ganzen Customer sind/sollen ja Mitlgieder von www-data (sein). Wenn nscd nicht funzt, sind die kein Mitglied, ergo kann auch niemand was aufrufen.

 

Also wie immer nscd Schuld xD - die Tipps (insserv override) haben (bei mir) aber nix gebracht, nach 10 reboots klappte es jetzt aufeinmal. Ich such mal weiter.

 

Warum wird das problem nicht gleich zentral vom Package Maintainer gefixed?

Link to comment
Share on other sites

Achso? Dachte du nutzt selber auch Debian - daher st?ndig deine Aussage "Gibt doch zig posts hier im Forum dar?ber" xD

 

Ja, gut - is auch ne L?sung :P

 

Ich mach mich nochmal gezielt schlau und w?rde das hier posten - damit es, _bitte_ ind die jessie.xml zur nscd/libnss-Konfig mit reinkommt ;)

Link to comment
Share on other sites

Was hat die Aussage "[dies und jenes] findest du hier im Forum" damit zu tun ob ich die Fehler selber auch habe/hatte? Ich weiss halt, dass es diese Problematik schon h?ufiger gab und wir das hier im Forum auch schon diverse male durchgekaut haben...ende

Link to comment
Share on other sites

Hallo zusammen,

 

ich hatte das Problem kuerzlich auch, als ich einen neuen Kunden angelegt habe. Schuld ist tatsaechlich der nscd, der die Gruppen-Zuordnungen cached. Ich habe das bei mir durch folgenden kleinen Patch geloest (gegen git tag 0.9.35.1):

diff --git a/scripts/jobs/cron_tasks.php b/scripts/jobs/cron_tasks.php
index a614613..87adb3b 100644
--- a/scripts/jobs/cron_tasks.php
+++ b/scripts/jobs/cron_tasks.php
@@ -159,6 +159,12 @@ while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) {
                        if (Settings::Get('system.mod_fcgid') == 1 || Settings::Get('phpfpm.enabled') == 1) {
                                // fcgid or fpm
                                safe_exec('chmod 0750 ' . escapeshellarg($userhomedir));
+                               // clear nscd cache
+                               safe_exec('nscd --invalidate=group');
+                               // Restart apache to apply new group
+                               if(isset($webserver)) {
+                                       $webserver->reload();
+                               }
                        } else {
                                // mod_php -> no libnss-mysql -> no webserver-user in group
                                safe_exec('chmod 0755 ' . escapeshellarg($userhomedir));

Ich will hier garkeine grosse Diskussion anstossen, ob wie oder warum man das so machen koennte, sondern nur mit euch teilen, was ich persoenlich fuer mich gemacht habe, damit das erst garkein Problem gibt. Feel free to do whatever you want with it :)

 

Viele Gruesse

 

Max

 

EDIT: Sorry, ich habe gerade das pinned Topic zu dem Thema entdeckt mit einem sehr ähnlichen Lösungsvorschlag (nur ohne Eingriff in Froxlor). Über die Foren-Suchfunktion war das Thema komischerweise nicht zu finden.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...