Apache2 Datei-Handler wird nicht überschrieben?

Apache, Lighttpd, nginx, Cherokee
hjt
Posts: 24
Joined: 2003-06-04 15:53

Apache2 Datei-Handler wird nicht überschrieben?

Post by hjt » 2011-12-21 19:55

Hallo,

ich habe folgendes Problem mit meiner Apache-Konfig:
Für ein CMS, das Probleme mit php 5.3 hat, möchte ich parallel php 5.2 als cgi anbieten.
Dazu habe ich mich an folgender Anleitung orientiert (nur mit dem Unterschied, dass bei mir php 5.3 als Modul läuft und 5.2 als cgi, deshalb heißt es bei mir dann auch php52 statt php53)

http://bernhardhaeussner.de/blog/89_Howto:_PHP5.3_parallel_zu_PHP5_installieren

Das ganz funktioniert auch soweit - nur wenn ich den Handler für .php in einer .htaccess überschreiben will, hat das keinerlei Wirkung.

Also:
1. .php52 - Datein werden per cgi ausgeliefert
2. Mit

Code: Select all

AddHandler php52-cgi .phpx
in einer .htaccess funktioniert es auch (phpx-Datien werden als cgi ausgeliefert).
3. Mit

Code: Select all

AddHandler php52-cgi .php
in einer .htaccess erziele ich keinerlei Wirkung (php-Dateien werden über mod_php ausgeliefert)

D.h. neue Dateitype anlegen funktioniert, den für .php zu überschreiben (anscheinend) nicht.

Bei dem System handelt es sich um Ubunt 10.04, alles (bis auf php 5.2) ist über die Paketverwaltung installiert.

Für php5-cli habe ich eine Datei mit dem Namen "php52cgi.conf" in /etc/apache2/conf.d/ angelegt:

Code: Select all

AddHandler application/x-httpd-php5 .php52
ScriptAlias /bin-php52 /srv/www/cgi
Action application/x-httpd-php5 /bin-php52/php-cgi


<Directory /srv/www/cgi>
    AllowOverride None
    Options +ExecCGI +FollowSymlinks
    Order allow,deny
    Allow from all
</Directory>


Das php-cgi binary habe ich nach /srv/www/cgi kopiert, der Besitzer ist so gesetzt, dass er von suexec akzeptiert wird.

(Die komplette Apache-Konfig hier zu Posten dürfe wohl etwas den Rahmen sprengen)


Woran kann das liegen? Für sich allein genommen scheint ja beides zu funtionieren?

mfg
hjt

hjt
Posts: 24
Joined: 2003-06-04 15:53

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by hjt » 2011-12-22 10:29

Ich habe gerade versucht, es direkt in die Config des entsprechenden VHosts einzutragen:

Code: Select all

<Directory /srv/www/htdocs/kundenwebxyz/html>
AllowOverride FileInfo Options
AddHandler application/x-httpd-php5 .php
</Directory>


Leider wird auch dieses ingnoriert...

User avatar
Joe User
Project Manager
Project Manager
Posts: 11133
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by Joe User » 2011-12-22 11:32

Dein Stichwort lautet: SetHandler
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

hjt
Posts: 24
Joined: 2003-06-04 15:53

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by hjt » 2011-12-22 12:22

Danke für den Tip. Nur leider wird der SetHandler-Eintrag auch ignoriert :-(
(sowohl in der .htaccess als auch in der VHost-Defininition)

Ich habe jetzt noch einmal versucht mod_php durch "php_admin_flag engine off" loszuwerden. Ergebnis:

1. php-Dateien werden zum Download angeboten
2. php52-Dateien (und auch die in der .htaccess-Datei definierten .phpx-Dateien) werden wie gewünscht von php5.2 via cgi ausgeliefert ...

Irgendwie bekommen ich den Handler für .php nicht auf mein cgi umgebogen...

Meine aktuelle .htaccess:

Code: Select all

Options +ExecCGI
SetHandler application/x-httpd-php5
AddHandler application/x-httpd-php5 .phpx


Und der VHost (durch confixx erstellt):

Code: Select all

<Directory "/srv/www/htdocs/webxyz/html">
  Options -FollowSymLinks -SymLinksIfOwnerMatch
  DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.wml
  <IfModule mod_access.c>
    Allow from all
  </IfModule>
  <IfModule mod_authz_host.c>
    Allow from all
  </IfModule>
  php_admin_flag engine on
  <Files ~ "\.shtml$">
    deny from all
  </Files>
</Directory>

<VirtualHost ipmeinesservers:80>
  ServerName www.kundendomain123.com
  ServerAlias www.kundendomainxzy.de kundendomain123.com kundendomainxzy.de php5.kundendomainxzy.de www.php5.kundendomainxzy.de  \
  webxyz.confixx.kundendomain456.de
  DocumentRoot /srv/www/htdocs/webxyz/html
  SuexecUserGroup webxyz webxyz
  php_admin_value open_basedir /srv/www/htdocs/webxyz/html/:/srv/www/htdocs/webxyz/phptmp/:/srv/www/htdocs/webxyz/files/:/srv/www/htdocs/webxyz/atd/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /srv/www/htdocs/webxyz/phptmp/

php_admin_value error_reporting 0
php_admin_flag display_errors off
php_admin_flag log_errors Off
php_admin_flag register_globals on
Options -All +FollowSymlinks
php_admin_value file_uploads 1
php_admin_value safe_mode Off
php_admin_value open_basedir /srv/www/htdocs/webxyz
php_admin_value  safe_mode_exec_dir  /usr/local/php/
php_admin_value sendmail_from info@kundendomainxzy.de
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@kundendomainxzy.de -F \"kundexyz GmbH & Co. KG\""
php_admin_flag engine off
<Directory /srv/www/htdocs/webxyz/html>
php_admin_flag engine off
AllowOverride FileInfo Options
SetHandler application/x-httpd-php5
</Directory>
</VirtualHost>

User avatar
Joe User
Project Manager
Project Manager
Posts: 11133
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by Joe User » 2011-12-22 12:58

Auch SetHandler benötigt die Fileextension als zweiten Parameter.

Dein Fehler liegt aber vermutlich im Mix von pplication/x-httpd-php5 und php52-cgi, entscheide Dich bitte für eine Variante (die Zweite).


BTW: Deine php_{admin}[_value|flag] sind zum Teil sehr gefährlich...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

hjt
Posts: 24
Joined: 2003-06-04 15:53

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by hjt » 2011-12-22 13:37

Die "php52-cgi-Sachen" habe ich in den ersten Tests verwendet (stammen aus der Anleitung der ich gefolgt bin)

Ich habe dann komplett auf pplication/x-httpd-php5 umgestellt (hatte ich vergessen explizit zu erwähnen - sorry)

Meine php52cgi.conf sieht mittlerweile so aus:

Code: Select all

AddHandler application/x-httpd-php5 .php52
ScriptAlias /bin-php52 /srv/www/cgi
Action application/x-httpd-php5 /bin-php52/php-cgi


<Directory /srv/www/cgi>
    AllowOverride None
    Options +ExecCGI +FollowSymlinks
    Order allow,deny
    Allow from all
</Directory>


Zu den php-Optionen kann ich jetzt garnichts genaues sagen. Die sind irgendwann einmal nach den Anforderungen des cms (webEdition) eingestellt worden.

hjt
Posts: 24
Joined: 2003-06-04 15:53

Re: Apache2 Datei-Handler wird nicht überschrieben?

Post by hjt » 2011-12-22 16:23

So wie es aussieht werde ich meinen Versuch jetzt aufgeben. :-(
Wir haben das Web auf einen älteren Server umgezogen, das gibt dem Kunden dann die Zeit, die er braucht, um sein CMS auf eine aktuelle Version upzudaten.

Trotzdem vielen Dank für die Hilfe!