Jump to content
Froxlor Forum
  • 0

[solved] PHP-FPM + mod_rewrite = Problem


Nosxxx

Question

Posted

Guten Abend,

 

ich habe einen Debian Squeeze-Server mit Froxlor, FastCGI, SuExec und PHP-FPM aufgesetzt. Die wichtigen Stellen eines vHosts sehen dann so aus:

<VirtualHost 46.38.***.*:80>
 SuexecUserGroup "test" "test"
 FastCgiExternalServer /var/customers/webs/test/webspell/fpm.external  -socket /var/run/apache2/test-webspell.domain.net-php-fpm.socket -user  test -group test
 Alias /fastcgiphp /var/customers/webs/test/webspell/fpm.external

<FilesMatch "\.php{:content:}quot;>
 	SetHandler php5-fastcgi
 	Action php5-fastcgi /fastcgiphp
 	Options +ExecCGI
</FilesMatch>

 

Jetzt sorgt die Webspell-htaccess f?r eine Endlosschleife...

RewriteEngine on
IndexIgnore */*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ _route.php?p=$1 [L,QSA]
RewriteRule ^index\.php$ _route.php [L,QSA]

 

Okay, kann ich verstehen. Und beheben:

RewriteEngine on
IndexIgnore */*
[b]RewriteCond %{REQUEST_URI} !^/fastcgiphp/*[/b]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ _route.php?p=$1 [L,QSA]
RewriteRule ^index\.php$ _route.php [L,QSA]

 

Aber - womit wir beim eigentlichen Problem w?ren: Wie kann ich das l?sen au?er durch Erg?nzung der .htaccess? Das kann (bzw. darf in diesem Fall) keine L?sung sein. Ich habe mehrere Ans?tze versucht, diese Rewrite Condition in den vHost zu schreiben - ohne Erfolg.

 

 

Ideen?

Ich danke. ;)

4 answers to this question

Recommended Posts

Posted

Hallo,

 

ich greife das Thema noch mal auf, da ich hier in ?hnliche Problem mit Drupal gerannt bin. Generell tritt dieses Thema immer genau dann auf wo andere Rewrite-Rules auf das existieren einer Datei und/oder Verzeichnis pr?fen und im Fehlerfall dann auf eine andere Datei umleiten. Das Problem l?sst sich also relativ einfach l?sen, indem das Verzeichnis des Aliases einfach ausserhalb des Docroots liegt. (So wie bei den fcgid starter files)

 

eine funktionieren aber nicht vollst?ndige L?sung hab ich hier:

 

https://github.com/blackice2999/Froxlor/tree/fixes-php-fpm-rewrite

 

Ich habe die Class: phpinterface_fpm um die Methode: getAliasConfigDir() erweitert. Diese gibt nun per Default das Verzeichnis: /var/www/php-fpm/ + loginname + / + domain + / zur?ck.

 

In den Vhost settings ?bernehmen wir jetzt diese damit wir z.b. folgenden Path erhalten:

 

FastCgiExternalServer /var/www/php-fpm/froxlor.panel/domainxyz.de/fpm.external ...

 

Auch wenn es die Datei fpm.external nicht wirklich gibt, so ist dennoch wichtig das, dass Verzeichnis existiert und erreichbar ist.

 

Was fehlt:

In den settings fehlt die UI f?r den alias config path.

 

Gru? Dennis

Posted

In den Vhost settings ?bernehmen wir jetzt diese damit wir z.b. folgenden Path erhalten:

 

FastCgiExternalServer /var/www/php-fpm/froxlor.panel/domainxyz.de/fpm.external ...

 

Auch wenn es die Datei fpm.external nicht wirklich gibt, so ist dennoch wichtig das, dass Verzeichnis existiert und erreichbar ist.

 

Was fehlt:

In den settings fehlt die UI f?r den alias config path.

 

Das funktioniert? Denn unsere Tests damals mit FastCgiExternalServer gingen irgendwie nicht, kann aber sein, dass es daran lag, dass wir das mit Sockets machen wollten wie in Lighttpd und Nginx...wenn das so klappt, reich den Patch doch ein?!

Posted

Das mit dem Alias /fastcgiphp ist bei apache+fpm leider bisher die einzige m?glichkeit - andere implementierungen wie bei nginx oder lighttpd haben bei den tests mit apache damals leider nicht funktioniert.

Posted

Das mit dem Alias /fastcgiphp ist bei apache+fpm leider bisher die einzige m?glichkeit - andere implementierungen wie bei nginx oder lighttpd haben bei den tests mit apache damals leider nicht funktioniert.

 

okay danke ;)

Archived

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



×
×
  • Create New...