PHP in anderen Dateiendungen als .php  [GELÖST]

Locked
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

PHP in anderen Dateiendungen als .php

Post by mhagge »

Ich habe hier bei einem Kunden das Problem, dass PHP in .html-Dateien geparst werden soll.

Das übliche "Addtype usw" funktioniert mit Keyhelp anscheinend nicht, weil PHP als FPM ausgeführt wird (ich habe jedenfalls diverse Varianten ausprobiert, keine hat funktioniert)

Aufgrund eines irgendwo im Netz gefundenen Tips habe ich einfach die Konfiguration für PHP aus dem Apache gezogen und für ".html" in die .htaccess-Datei gepackt

Code: Select all

<FilesMatch "\.html$">
    SetHandler "proxy:unix:/run/php/keyhelp_xxxxx_php56.socket|fcgi://keyhelp_xxxx_php56.socket/
</FilesMatch>
Darauf gab es dann in den Error-Logs eine fehlermeldung bezüglich security.limit_extensions (es ist nur die Ausführung von .php-Dateien erlaubt)

Ich habe dann beim Benutzer in den PHP-Einstellungen

Code: Select all

security.limit_extensions = .php .html
eingefügt - leider ohne Erfolg. In der FPM-Conf-Datei der Domain wird daraus ein

Code: Select all

php_value[security.limit_extensions] = .php .html
Nun habe ich in die fpm-conf-Datei einfach

Code: Select all

security.limit_extensions = .php .html
eingegeben und den FPM neu gestartet - siehe da, damit funktioniert es. Nur ist es so ja nicht mehr Updatesicher - klar, man kann die Datei mit chattr +i gegen überschreiben schützen (habe ich nun auch getan), aber besonders elegant ist das nicht, finde ich.

Gibt es da evtl. einen einfacheren, insbesondere Update-sicheren Weg?
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Re: PHP in anderen Dateiendungen als .php

Post by select name from me; »

Alternativ könnte man die PHP Dateien mit der Endung .php hinterlegen und per Mod Rewrite einfach umbiegen.

Grob und ungetestet:

Code: Select all

RewriteEngine on 
RewriteBase / 
RewriteRule ^(.*).html$ $1.php
Viele Grüße, Christian
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php

Post by mhagge »

Danke für den Tipp - in die Richtung hatte ich als erstes auch gedacht - nur, die Dateien kommen als .html aus einem CMS raus (enthalten aber u.a. PHP).

In der Standard .htaccess, die mitgeliefert wird ist auch dieses "Addtype usw. .html" vorhanden, auf dem alten Server hat das auch out of the Box funktioniert (ich habe den Kunden auf einem Keyhelp-Server umgezogen, deswegen stellt sich das Problem gerade), hier ging es mit den verschiedensten Variante nicht (wie gesagt, der Unterschied ist denke ich die PHP-FPM-Konfiguration)
User avatar
Tobi
Community Moderator
Posts: 3236
Joined: Thu 5. Jan 2017, 13:24

Re: PHP in anderen Dateiendungen als .php

Post by Tobi »

Du kannst einen Root-Cronjob einrichten welcher nach Änderungen an der Datei deine Anpassungen wieder hinzufügt.

Ansonsten könnte man das CMS an sich noch patchen.
Welches wird denn verwendet?
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php  [GELÖST]

Post by mhagge »

Das CMS ist Perch.

Patchen würde ich es aber nicht wollen - ich bin nur der Webhoster, der seine Server umziehen will :lol:

Es müsste mal geupdatet werden, so wie ich das sehe - das will der Kunde aber nicht mehr(die Gründe kann ich allerdings teilweise auch nachvollziehen - es ist gerade so eben noch vertretbar und der Kunde wird sein Geschäft sehr wahrscheinlich im Laufe des Jahres 2019 aufgeben, dann wird die Webseite gar nicht mehr gebraucht ).

Nun könnte man sagen, dass das Problem sich dann ja auch von alleine erledigt - zu einem gewissen Grad stimmt das auch, aber zum einen: wer weiß ob ich nicht noch ähnliche Fälle bei den weiter anstehenden Umzügen finde, zum anderen ist das ja vielleicht auch für andere interessant (so exotisch ist der Fall, dass man .html als .php parsen will ja nun auch wieder nicht, denke ich)
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php

Post by mhagge »

Vielleicht noch ein kurzer Nachtrag, warum ich den Kunden überhaupt umziehe (die Frage könnte man sich dann ja stellen :D ):

Das ist ein guter Freund von mir, mit dem ich abgesprochen hatte dass ich anhand seiner Webseite den Umzug teste ;) Insofern ist das auch ganz gut, dass das nicht völlig problemfrei ging, das war durchaus Sinn und Zweck des Testes
User avatar
Tobi
Community Moderator
Posts: 3236
Joined: Thu 5. Jan 2017, 13:24

Re: PHP in anderen Dateiendungen als .php

Post by Tobi »

Laut https://docs.grabaperch.com/perch/getti ... xtensions/ ist aber die Dateiendung .PHP Standard.

Eventuell kann man die Umstellung auf HTML rückgängig machen?
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php

Post by mhagge »

Wie gesagt, an der Seite will ich eigentlich nichts machen - ausser sie 1zu1 auf den neuen (Keyhelp)-Server übertragen. Ich hab sie seinerzeit auch nicht gemacht
User avatar
Fiesi
Posts: 155
Joined: Wed 15. Nov 2017, 12:32

Re: PHP in anderen Dateiendungen als .php

Post by Fiesi »

schau mal hier,

das hatte mir auch mal geholfen da ich ein ähnliches problem mal hatte

https://stackoverflow.com/questions/468 ... -php-files
Ein Systemadministrator schläft nicht. Er root! :)
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Re: PHP in anderen Dateiendungen als .php

Post by select name from me; »

Als üblen Hack könntest Du alle Anfragen an eine HTML Datei per Mod Rewrite an eine PHP Datei umleiten, die dann die HTML Datei per include einbindet. :mrgreen:
Viele Grüße, Christian
User avatar
Enigma
Posts: 258
Joined: Thu 2. Aug 2018, 19:18

Re: PHP in anderen Dateiendungen als .php

Post by Enigma »

mhagge wrote: Tue 6. Nov 2018, 08:56 Ich habe dann beim Benutzer in den PHP-Einstellungen

Code: Select all

security.limit_extensions = .php .html
eingefügt - leider ohne Erfolg. In der FPM-Conf-Datei der Domain wird daraus ein

Code: Select all

php_value[security.limit_extensions] = .php .html

Prinzipiell kannst Du dafür eine Datei namens .user.ini in den Document Root der Domain legen, die die von Dir gewünschten php.ini-Änderungen enthält. Diese werden dann auch in die Unterverzeichnisse "vererbt".

Bei mir funktionierte die Vererbung zunächst nicht. Laut Support (Alexander himself) gibt es einen Fehler bei Servern mit Debian 9 sowie Ubuntu 18. Dieser wurde intern bereits behoben und wird mit der nächsten KeyHelp-Version ausgerollt. Ich habe den Patch bei mir aber bereits im Voraus einspielen lassen, sodass das Feature auf meinem Ubuntu-18-System nun problemlos funktioniert.

Gruß
Jan
This message has been ROT-13 encrypted twice for higher security.
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php

Post by mhagge »

Ah, das klingt schon besser, Danke für den Tipp!

Hier ists in der Tat en Debian 9, aber mich denke extra vorab patchen brauchts dann auch nicht - erstmal hoffe ich, dass es bis zur nächsten Version nicht mehr soweit hin ist, zum anderen funktioniert mein Workaround mit schreibgeschützter Config soweit ja bzw. würde sowieso erst bei einem Update evt. problematisch werden.

Also mal auf Wiedervorlage bis nach Keyhelp-Update legen :D
User avatar
mhagge
Community Moderator
Posts: 563
Joined: Wed 8. Aug 2018, 15:19

Re: PHP in anderen Dateiendungen als .php

Post by mhagge »

Jetzt wollte ich das nach dem Update mal angehen - aber geht auch nicht (hätte ich aber auch selber drauf kommen können)

security.limit_extensions gehört auch im Original nicht in die php.ini, sondern in die fpm-Configuration. Dort kann man zwar im Prinzip auch Einstellungen der php.ini setzen, aber andersrum geht es halt nicht. Von daher kann man das auch mit funktionierender .user.ini nicht über die .user.ini setzen :(
Locked