PHP-FPM und seperate User pro vHost

TerraX

Active Member
[Gelöst] PHP-FPM und seperate User pro vHost

Szenario: Server mit Archlinux - für Webserver kommt Apache zum Einsatz. Zukünftig soll php-fpm eingesetzt werden, bisher klassische FastCGI-Konfiguration.

Jeder vHost bekam über suexec-Direktive einen eigene User/Group zugewiesen unter dem dann die PHP-Scripte ausgeführt wurden.

Ausgehend von diesen Info's: http://wiki.apache.org/httpd/PHP-FPM verstehe ich das soweit richtig, dass das suexec-Effekt damit ersetzt wird, dass ich für jeden vHost einen eigenen Pool aufmachen muss (Port 9000, Port 9001 usw.)?
 
Last edited by a moderator:
Ich ändere mal die Frage ab: scheinbar hab' ich irgendwie Brett vor dem Kopf oder so. Aber ich bekomme php-fpm unter Archlinux einfach nicht zum laufen. hat jemand eine Empfehlung für ein gutes How-To also Apache + php-fpm? (php-fpm und NGinx gibt es massenhaft für Archlinux -.- )
 
Mal was etwas abseits vom eigentlichen Problem.
Mir ist aufgefallen, dass bei Arch Linux die Beispielconfigs nicht so schön sind, wie bei Debian (mit den vHosts, site-*, mod-*).

Bezüglich FPM schau mal hier: http://php.net/manual/de/install.fpm.php

Ohne den FPM läuf der Deamon mit einem einzigen User auf einem Socket oder Port. Soweit ich weiß gibt es ohne dieses Tool oder andere mögliche Lösungen keine Möglichkeit dem Deamon mitzuteilen, dass er Prozesse unter einem anderen User forkt.

Hab mich mit dem FPM aber auch noch nie beschäftigt.
 
Ah, der Wald und die Bäume. Habe vermutlich die Lösung für den ersten Teil meines Problems gefunden (hatte mich vorher schon an dem von bibabu vorgeschlagenen How-To orientiert aber dort wie auch in anderen Debian-verwandten fehlt eine Angabe).

Code:
LoadModule fastcgi_module modules/mod_fastcgi.so

<IfModule mod_fastcgi.c>  
    FastCGIExternalServer /usr/bin/php-fpm -host 127.0.0.1:9000
    AddHandler php-fastcgi .php  

    Action php-fastcgi /usr/bin/php-fpm.fcgi  
    ScriptAlias /usr/bin/php-fpm.fcgi /usr/bin/php-fpm  

   [B]<Directory /usr/bin>  
      Options ExecCGI FollowSymLinks  
      SetHandler fastcgi-script  
      Order allow,deny  
      Allow from all  
   </Directory>[/B]
</IfModule>
Quelle: https://blogs.oracle.com/opal/entry/php_fpm_fastcgi_process_manager

Ich habe mich gestern immer mit dem 403er Error im Kreise gedreht, sobald das Binary aufgerufen werden sollte. Jetzt ist mir klar wieso - das fettgedruckte fehlte. Ich werde das heute abend mal ausprobieren und mich dann dem 2. Teil widmen, sprich der eigentlichen Eingangsfrage.
 
Last edited by a moderator:
Mal was etwas abseits vom eigentlichen Problem.
Mir ist aufgefallen, dass bei Arch Linux die Beispielconfigs nicht so schön sind, wie bei Debian (mit den vHosts, site-*, mod-*)....
Das ist nett umschrieben und war für mich erstmal sehr ungewohnt. Bei Debian bekommt man ja oft schon relativ strikte Vorkonfigurationen und gerade bei Apache auch eine Struktur. Bei Archlinux ist erstmal in der Konfig alles aktiviert - die mitgelieferten Standard-Konfigs kann man daher getrost nach .example umbenennen und muss zwingend seine eigene komplett neu aufsetzen.
 
Code:
[web3]

listen = 127.0.0.1:9012
listen.allowed_clients = 127.0.0.1

user = web3
group = client1

pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 0

chdir = /

php_admin_value[open_basedir] = /var/www/clients/client1/web3/web:/var/www/clients/client1/web3/private:/var/www/clients/client1/web3/tmp:/usr/share/php5:/usr/share/php:/tmp
php_admin_value[session.save_path] = /var/www/clients/client1/web3/tmp
php_admin_value[upload_tmp_dir] = /var/www/clients/client1/web3/tmp

Für jedes Web existiert ein eigener Pool. Die Konfiguration oben wurde von ISPConfig3 erstellt.
 
Back
Top