• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Webserver Verzeichnisse

tobi-848

New member
Hallo Leute

Ich wollte mal eure Meinung hören in Sachen Datei-Ablage auf dem Webserver.

Meine Webseiten bestehen immer aus einem Admin und einem Navigierbereich für Besucher. Bisher hatte ich alle Dateien im Hauptverzeichnis abgelegt. Ich möchte jedoch jetzt die Admin Dateien in einen Unterordner verschieben (/admin).

Leider gibt es immer Probleme beim Navigieren mit den Verweisen. Da sich die logout.php-Datei beispielsweise im Unterverzeichnis befindet und ich momentan im Hauptverzeichnis bin (bsp. index.php oder .o.Ä.), muss der Link für die logout Datei /admin/logout.php lauten. Andernfalls nur /logout.php.

Lösen kann man das Problem sicher mit absoluten Links, was mir aber nicht gefällt, da ich die Daten auf einem lokalen Webserver erstelle und dann auf den externen Webserver kopiere. Die Verzeichnisse müssten also immer angepasst werden.

Sehr ideal wäre es Alias/symbolische Verknüpfung zu erstellen. Dies lässt jedoch der externe Webserver nicht zu (.htaccess -> Error 500).

Nun meine Frage. Wie würdet ihr das Problem lösen oder was gibt es für weitere Möglichkeiten.

Ich freue mich auf kreative Antworten.

Besten Dank.
 
Du bist der Administrator Deines lokalen Servers. Richte ihn so ein, wie den tatsächlichen Server. Dabei kann man beliebig viele virtuelle Server einrichten, wie man Projekte / Kunden hat.
Dies als Ausgangsbasis und alle Links sind auf Live- und Development-Server immer identisch zu handhaben.
Durch die Servervariablen von PHP werden auch die Pfade im Dateisystem transparent, weil die Skripte nur das wissen müssen, was im Projektordner und darunter liegt. Dadurch kann der komplette Auftritt beliebig von einer Domaine auf die nächste verschoben / dupliziert werden, ohne dass größere Einstellungen erforderlich werden.
 
Das Problem ist, dass der lokale Server/Webserver nur zum Testen da ist und überhaupt nicht für das Internet konfiguriert ist. Auf dem Internet-Host bin ich leider nicht Administrator und habe deshalb nur eingeschränkt Zugriff darauf.

Gruss
 
Das Problem ist, dass der lokale Server/Webserver nur zum Testen da ist und überhaupt nicht für das Internet konfiguriert ist. Auf dem Internet-Host bin ich leider nicht Administrator und habe deshalb nur eingeschränkt Zugriff darauf.
Der lokale Server muss nicht fürs Internet konfiguriert werden, er ist ja nur zum Testen da. Aber auf genau diesem Rechner/Dienst bist Du der Admin, kannst also die Konfiguration beliebig anpassen. Dazu gehören unter anderem Virtual Hosts. Also kann man das Live-System beliebig genau nachbauen, und sich die Arbeit stark vereinfachen, d.h. man muss nachher keinerlei Pfade korrigieren, wenn man die Sachen aufspielt.
Tust Du es nicht, dann selber Schuld.
 
Der lokale Server muss nicht fürs Internet konfiguriert werden, er ist ja nur zum Testen da. Aber auf genau diesem Rechner/Dienst bist Du der Admin, kannst also die Konfiguration beliebig anpassen. Dazu gehören unter anderem Virtual Hosts. Also kann man das Live-System beliebig genau nachbauen, und sich die Arbeit stark vereinfachen, d.h. man muss nachher keinerlei Pfade korrigieren, wenn man die Sachen aufspielt.
Tust Du es nicht, dann selber Schuld.



Heisst das ich kann theoretisch symbolische Links auf dem Testserver erstellen und nachher direkt per FTP ins Internet kopieren? Das wäre natürlich genial ;-)

Gruss und Danke
 
Heisst das ich kann theoretisch symbolische Links auf dem Testserver erstellen und nachher direkt per FTP ins Internet kopieren? Das wäre natürlich genial ;-)
Das glaube ich nicht. Oder vielmehr wird FTP die verlinkte Datei duplizieren, was den Effekt des Links wieder rückgängig macht, da Du wieder zwei unterschiedliche Dateien auf dem Server pflegen musst.
Ob Du überhaupt symbolische Links anlegen kannst, hängt natürlich auch vom Betriebssystem des Webservers ab.

Was ich meinte ist eher die Verwendung von virtuellen Hosts. Also http://kunde1.internerserver.domain/index.php zeigt auf /var/www/kunde1 und http://kunde2.internerserver.domain/index.php zeigt auf /var/www/kunde2. Innerhalb der Verzeichnisse kunde1 und kunde2 können dann aber wieder absolute Pfade verwendet werden, weil Document Root entsprechend gesetzt ist und der Webbrowser nichts davon mitbekommt.

Wenn Du dagegen nur froh bist einen laufenden Webserver zu haben und da nicht rumkonfigurieren willst, dann hast Du vermutlich bei gleiche Verzeichnisstruktur eher folgende URLs: http://internerserver.domain/kunde1/index.php und http://internerserver.domain/kunde2/index.php. Jetzt hast Du eine Verzeichnisebene mehr, als auf dem Live Server (Internet) und folglich funktionieren hier nicht mal die absoluten Links.
Während im ersten Beispiel die Dateien ohne Pfadänderungen auf den Live Server übertragen werden können, müssen im zweiten Fall eventuell Änderungen vorgenommen werden. Das ist sicherlich fehleranfälliger und sollte vermieden werden.
 
Ich interessiere mich sehr für die erste Variante.

Kannst du mir eine Webseite angeben, wo man lernen kann, wie man solche virtuellen Hosts erstellen und verwalten kann?

Danke

Gruss
 
Alles ich habe das mit den Vhosts hingekriegt. Der Document_root liegt jetzt auf

http://mein_Vhost_name.ch

Das ganze so weit, so gut. Wenn ich jetzt Verweise verwenden möchte, die ins richtige Verzeichnis zeigen habe ich ja folgende Möglichkeiten:

1. Absolute Verweise.. http://mein_Vhost_name.ch/www/blablabla/, oder
2. Relative Verweise.. www/blablabla/

Das die relativen Links mein oben beschriebenes Problem nicht lösen, ist klar.
Bei den Absoluten Links ist das Problem, dass ich kein http:// verwenden kann beim includen von, bsp., einem Header. Es erscheint dann folgende Meldung:

URL file-access is disabled in the server configuration. Nehme nicht an, dass die Änderung in der Konfigurationsdatei auf dem Apache-Server sinnvoll betreffend der Sicherheit ist...

Gruss und Danke
 
Du meinst relative Links auf das document_root verzeichnis.

habe es jetzt so gemacht. bei den clientseitigen Sprachen ein "/" am Anfang des Links und bei serverseitigen Sprachen (in meinem Fall PHP) "$_SERVER['DOCUMENT_ROOT']" am Anfang des Links.

Oder was meinst du mit der dritten Variante?

Gruss
 
Zurück
Oben