Config Problemchen

Alles, was den Apache betrifft, kann hier besprochen werden.

Config Problemchen

Postby delicioustube » 13. October 2011 21:01

Hallo an Alle,

ich benötige folgendes:

In den Grundeinstellungen der httpd.conf möchte ich alles so einstellen, dass generell .php Dateien von meinem Server verarbeitet werden, aber der Zugriff von außen geschützt ist.

d.h. in php kann ich mit "require ("testdatei.php");" diese Datei benutzen und normal ausführen, aber jemand der:

http://www.meinserver/testdatei.php eingibt soll eine Fehlermeldung bekommen.

Außerdem will ich ein neues Dateiformat php zuordnen das ich .core nenne.

.core - Dateien sollen wie .php Dateien behandelt werden, aber dem generellen Zugriff von außen nicht eingeschränkt sein. (index.core als Verzeichnislisting)

Kann mir jemand helfen ?

Vielen lieben Dank !

MfG Thomas
delicioustube
 
Posts: 2
Joined: 13. October 2011 20:56

Re: Config Problemchen

Postby Altrea » 14. October 2011 00:02

Hallo Thomas,

delicioustube wrote:In den Grundeinstellungen der httpd.conf möchte ich alles so einstellen, dass generell .php Dateien von meinem Server verarbeitet werden, aber der Zugriff von außen geschützt ist.

d.h. in php kann ich mit "require ("testdatei.php");" diese Datei benutzen und normal ausführen, aber jemand der:

http://www.meinserver/testdatei.php eingibt soll eine Fehlermeldung bekommen.

Da PHPs require Konstrukt direkt auf Dateiebene passiert, ist dies möglich und dafür gibt es sogar gleich mehrere Möglichkeiten.

Du könntest all die Dateien, die nicht direkt aufgerufen werden können sollen, OBERHALB des DocumentRoot platzieren, d.h. im Falle von XAMPP oberhalb oder auf derselben Ebene wie das htdocs Verzeichnis, oder besser direkt VHosts einsetzen und dort einen DocumentRoot definieren der ein, zwei Ebenen unterhalb von htdocs liegt.
Diese kannst du dann relativ oder absolut adressieren.

Nächste Möglichkeit wäre über Apache RewriteRules einfach alle Anfragen eines bestimmten Musters (zum Beispiel alle *.php Dateien) auf eine andere Datei umleiten. So ein Konstrukt wird gerne für Frontcontroller verwendet. Diese eine Datei muss dann natürlich all die Logik enthalten, mit den verschiedenen Requests umgehen zu können, wenn du dort differenzieren möchtest.
So ein Reqrite definiert man geschickterweise aber nicht in der httpd.conf sondern in einer .htaccess, denn zum Einen handelt es sich um eine sehr nah an das Projekt bezogene Konfiguration, und zum Anderen kannst du dann die Einstellung ändern oder ergänzen, ohne den Apache jedesmal neustarten zu müssen.

Dritte Möglichkeit direkt mit Frontcontroller wäre, im Frontcontroller eine Konstante zu definieren und in allen anderen .php Dateien auf diese Konstante zu prüfen. Wenn Sie nicht vorhanden ist dementsprechend einen Fehler ausgeben oder noch besser auf eine Fehlerseite umleiten. DIeses Konstrukt verwendet zum Beispiel das beliebte Framework codeigniter

Das sind alles sinnvolle Konstrukte, aber nicht jedes ist für jeden Anwendungsfall sinnvoll. Alle *.php Requests auf eine Fehlerseite umzuleiten halte ich dagegen für ziemlich sinnfrei, denn dadurch nimmst du dir selbst die Möglichkeit *.php Dateien per HTML zu verlinken und musst Alle Requests per Rewrite umbiegen.

delicioustube wrote:Außerdem will ich ein neues Dateiformat php zuordnen das ich .core nenne.

.core - Dateien sollen wie .php Dateien behandelt werden, aber dem generellen Zugriff von außen nicht eingeschränkt sein. (index.core als Verzeichnislisting)

Dafür musst du dem Apache einfach nur sagen, dass er alle .core Dateien durch den PHP Interpreter jagen soll.
Dies wird bei XAMPP in der Datei \xampp\apache\conf\extra\httpd-xampp.conf definiert. Zeile 20 und 43 müsstest du dort dementsprechend mit core ergänzen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Config Problemchen

Postby delicioustube » 14. October 2011 12:48

Coole Antwort, danke :D Ich werde das PhP Verzeichnis unter das htdocs-Verzeichnis legen !
delicioustube
 
Posts: 2
Joined: 13. October 2011 20:56

Re: Config Problemchen

Postby Altrea » 14. October 2011 17:41

Ich weiß nicht, ob du mich richtig verstanden hast, daher ein kleines Anschauungsbeispiel:

Nehmen wir an, XAMPP ist direkt auf C:\ installiert, dein Standard-DocumentRoot (Dokumentenwurzelverzeichnis) ist also C:\xampp\htdocs\
Alles was oberhalb von htdocs liegt, also direkt im Verzeichnis c\xampp\ oder gar C:\ kann man nicht per HTTP requesten.

Du könntest also ein Verzeichnis C:\xampp\safe\ erstellen und dort all deine Scripte reinpacken (Das Verzeichnis muss natürlich nicht "safe" heißen, ist nur ein Beispiel).
Diese Scripte kannst du dann mit require '../safe/dateiname.php'; einbinden.

Das ist die einfache Methode ohne VHosts. Dafür sind also quasi kaum weitere Apache Kenntnisse erforderlich.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to Apache

Who is online

Users browsing this forum: No registered users and 32 guests