Jump to content
Froxlor Forum
  • 0

[solved] PHP-FPM + mod_rewrite = Problem


Nosxxx

Question

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. ;)

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

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

Link to comment
Share on other sites

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?!

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...