dedlfix: Kann ich den Dateinamen meiner php.ini ändern?

Beitrag lesen

echo $begrüßung;

Reduziere die Verzeichnisse, in dem Scripte gestartet werden auf 1. mod_rewrite hilft dir, die aufgerufenen URLs auf Scripte in diesem Verzeichnis umzubiegen. Schon brauchst du nur noch eine php.ini.
Mein Verständnis für mod_rewrite ist nicht besonders Gross, wie könnte ich das realisieren bzw. wie muss ich da vorgehen?

Ein Tutorial suchen, lesen, probieren, bei konkreten Fragen googeln oder forumen. :-)

Die URI Manipulieren ist ja eine Sache, aber die Scriptpfade ändern ist mir ein bisschen zu hoch.

Man hat ja meist bei allen Seiten ein gleiches Aussehen, nur der Inhalt ändert sich. Man kann das so lösen, dass man die gemeinsamen Teile in jedes einzelne Seiten-Script hinzulädt. Man kann sich auch so organisieren, dass ein Startscript die gemeinsamen Teile behandelt und nur den speziellen Inhalt gegebenenfalls aus ausgelagerten Dateien holt. mod_rewrite benötigt man dabei nur, wenn man /foo/bar statt /index.php?was=foo;nochwas=bar haben möchte.

Ich hab beispielsweise auch in den Scriptverzeichnissen noch zusätzliche Verzeichnisse, um meine Funktionen auszulagern, muss ich die ausgelagerten auch berücksichtigen oder nur die Scripte, die ausgeführt werden?

Beispielsweise mein Root:

index.php             # hier werden alle Scripte ausgeführt
funktionen/           # Hier habe ich Funktionen, die ich mittels require_once '' in die Index lade
funktionen/sonstiges/ # Wenn die Funktionen umfangreicher werden


>   
> Müsste ich in diesem Beispiel alle Verzeichnisse berücksichtigen?  
  
Günstiger wäre es, wenn Dateien, die nicht direkt aufrufbare Ressourcen darstellen, außerhalb des DocumentRoots zu liegen kommen. Dann ist die Gefahr, dass sie versehentlich ausgeliefert werden erst einmal deutlich geringer. (Null ist sie nicht, denn irgendwer könnte ja auch das "außenliegende" Verzeichnis versehentlich zum DocumentRoot umkonfigurieren.) Weniger gut ist, den Zugriff auf diese Verzeichnisse per Apache-Konfiguration zu verbieten. Für das php.ini-Problem sind diese Verzeichnisse aber nicht relevant. Nur wenn aufrufbare Scripte in Unterverzeichnissen liegen, benötigst du dort eine eigene php.ini.  
  

> Ich kann das Lokal nicht mal richtig testen, da Apache nur die xampp eigene php.ini aus dem xampp\apache\bin Verzeichnis ladet, warum das so ist, habe ich auch noch nicht so recht verstanden.  
  
Das gehört sich so. Es gibt zwei Arbeitsweisen je nach Art der PHP-Einbindung im Apachen. Im Xampp wirst du PHP als mod\_php eingebunden haben. In dem Fall startet PHP zusammen mit dem Apachen und wertet nur zu diesem Zeitpunkt die php.ini aus. Weitere verzeichnisspezifische Konfigurationen können nur über die .htaccess eingestellt werden. Bei deinem Provider 1&1 läuft PHP als CGI, was bedeutet, dass bei jedem Request PHP gestartet wird und damit die im Verzeichnis des aufgerufenen Scripts liegende php.ini ausgewertet werden kann.  
  

> Für mich das eigentlich wichtige, wie kann ich verhindern, das [meine php.ini](http://dj-tut.de/php.ini) so einfach aufzurufen ist?  
  
In dem Fall kannst du nur mit einer Verbotsdirektive in der .htaccess den Zugriff darauf verbieten. Siehe <Files>, Order, Allow und Deny der Apache-Konfiguration.  
  
Zum Inhalt zwei Anmerkungen: Du begibst dich freiwillig in den Safe Mode? Der fällt übrigens mit PHP 6 weg. Den session.save\_path würde ich nicht auf das allgemeine /tmp legen. Da werden deine Session-Dateien womöglich von den Session-Einstellungen der anderen beeinflusst. Leg das doch in ein Unter-Verzeichnis deines Kundenverzeichnisses (vorausgesetzt, kein DocumentRoot zeigt direkt auf das Kundenverzeichnis.  
  
  
echo "$verabschiedung $name";