pureFTP & nginx permissions

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von degoya, 18. Feb. 2015.

  1. degoya

    degoya New Member

    Hallo,
    ich habe mit den Server mit der Anleitung perfekt Webserver Setup unter debian wheezy installiert. Soweit alles prima.
    Nur folgendes Problem:

    Wenn ich einen FTP User erstelle kann dieser auch verbinden und files uploaden, leider können diese Files dann nicht mehr per CMS gelöscht werden weil www-data nicht der besitzer der Datei ist sondern z.B. web1:client1. Gleiches Problem auf dem Umgekehrten weg, File per FTP löschen die www-data angelegt hat geht nicht und resultiert in permission denied.

    klar könnte man für alle dateien per hand den chmod setzen aber das kann doch nicht die Lösung sein oder?
    Wie müssen hier Rechte gesetzt sein damit beide die Dateien lesen/schreiben/löschen können. habe ich hier irgendwas beim setup falsch gemacht dies sollte doch sicher defaultmäßig gehen?

    danke, schon mal im voraus.
     
  2. Till

    Till Administrator

    PHP läuft abre nicht als www-data unter ispconfig sondern als user des webs, also z.B. web1:client1.
     
  3. degoya

    degoya New Member

    komisch, sobald ich über das eingesetzte CMS (modx) einen File erstelle hat dieser www-data:www-data und 644.
    Server ist Nginx mit php5-fpm 5.4.36 unter ispconfig 3.0.5.

    habe folgende nginx direktive:

    location ~ /\.ht {
    deny all;
    }
    location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_read_timeout 600;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    }
     
  4. Till

    Till Administrator

    Deine nginx direktive ist das Problem, du überschreibst damit den php handler und verweist die webseite auf den falschen fpm damon. die komplette Direktive ist nicht notwendig und führt zu einer Fehlkonfiguration des systems, also einfach raus löschen.
     
  5. degoya

    degoya New Member

    Danke,till. jetrzt kommt gleich noch die nächste Frage dazu.
    Wie kann ich dann das Timeout usw. für PHP setzen? Und wie gehe ich mit dem htaccess um der in der vollen directive mit drinne steht?

    Hier meine volle direktive
    location / {
    rewrite ^/(en|de|fr|it)/css(.*)$ /css$2 break;
    rewrite ^/(en|de|fr|it)/js(.*)$ /js$2 break;
    rewrite ^/(en|de|fr|it)/img(.*)$ /img$2 break;
    rewrite ^/(en|de|fr|it)/assets(.*)$ /assets$2 break;
    rewrite ^/(en|de|fr|it)/fonts(.*)$ /fonts$2 break;
    rewrite ^/(en|de|fr|it)/theme(.*)$ /theme$2 break;
    rewrite ^/(en|de|fr|it)/content(.*)$ /content$2 break;
    if (!-e $request_filename){
    rewrite ^/(en|de|fr|it)?/?(.*)$ /index.php?cultureKey=$1&q=$2 last;
    }
    }
    location ~ /\.ht {
    deny all;
    }
    location ~ \.php$ {
    auth_basic "Protected";
    auth_basic_user_file /var/www/clients/client29/web65/tmp/.htpasswd;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_read_timeout 600;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    }
     
  6. Till

    Till Administrator

    Den Rest lässt Du drin und den timeout musste ich bei mir noch nie neu setzen. Du kannst ihn aber auch global anpassen.
     
  7. degoya

    degoya New Member

    wenn ich die direktive auf

    Code:
    location ~ \.php$ {
        auth_basic "Protected";
        auth_basic_user_file /var/www/clients/client29/web65/tmp/.htpasswd;
    }
    
    ändere, wird der php file zum download angeboten und nicht mehr vom server ausgeführt.

    Konfiguriert ist die Site wie folgt:
    [​IMG]
     
  8. degoya

    degoya New Member

    ich bekomme das PHP ohne diesen Rewrite irgendwie nicht zum laufen. Woran kann es denn liegen? Was ist das falsch konfiguriert? Bin eigentlich strikt nach der Anleitung vorgegangen.
     

Diese Seite empfehlen