Verlinkung zu Dateien außerhalb des xampp-Ordners

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Oldiefan » 15. March 2021 14:07

Hallo zusammen*,

Ich habe mir u. a. eine Datenbank erstellt zum Thema Musik, genauer gesagt kann ich in diversen Charts platzierte Songs je nach Suchwunsch anzeigen lassen. Ich wollte nun die Suchergebnisse verlinken mit dem jeweiligen Song, der dann mit Klick auf ein Lautsprechersymbol gespielt werden soll. Ich habe das auch hinbekommen, aber nur, wenn ich die Lieddatei (also z. B. eine .mp3, bei mir durchwegs .flac) im htdocs-Verzeichnis abspeichere. Meine Songs habe ich aber in der Musikbibliothek gespeichert. Und dort sollen sie eigentlich auch bleiben. Sobald es im Hierarchiebaum über den xampp-Ordner hinausgeht, funktioniert der Link nicht mehr.

Nach meinen vergeblichen Versuchen habe ich xampp (Version 8.0.3) ein zweites Mal (auf einem anderen Laufwerk) installiert in der Hoffnung auf eine Lösung. Leider ohne Erfolg. Ein „normaler“ Link aus htdocs heraus z. B. in die Musikbibliothek funktioniert, jedoch dann nicht, wenn er auf dem Ergebnis einer Datenbankabfrage beruht.

Fragen:
Gibt es eine Möglichkeit, das Ergebnis einer Datenbankabfrage mit einer Datei außerhalb des xampp-Ordners zu verlinken?

Wenn nein, müsste ich dann den htdocs-Ordner in die Musikbibliothek verschieben? Wenn ja, welche Dateien wären ggf. wie anzupassen?

Gibt es noch eine andere Möglichkeit?

Danke.
Oldiefan
 
Posts: 3
Joined: 15. March 2021 09:37
XAMPP version: 8.0.3
Operating System: Windows

Re: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Altrea » 15. March 2021 14:41

Hi,

Du kannst mit einem simplen Apache Alias ein Verzeichnis außerhalb des Stammverzeichnisses an einen Teil der URL mappen.

Beispiel:

Code: Select all
Alias /musik "C:/Musik"

mappt
http://localhost/musik
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: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Altrea » 15. March 2021 14:53

Fast unterschlagen:
Du musst dann dem Apache natürlich auch noch erlauben, Dateien von dem Ordner auszuliefern.
Dafür schreibst du eine Require Regel auf Dateisystemebene im Apache, zum Beispiel folgendes:
Code: Select all
<Directory "C:/musik">
    Require all granted
</Directory>


Das schreibst du zusammen mit dem Alias einfach ans Ende der \xampp\apache\conf\httpd.conf, speicherst die Datei und startest den Apache neu.
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: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Oldiefan » 16. March 2021 15:33

Hallo Altrea,

zunächst mal vielen Dank für Deine Hilfe. Ich habe versucht, sie zu verstehen und dann umzusetzen. Es ist mir leider nicht gelungen.

Ich habe in die von Dir benannte Datei (httpd.conf im Ordner apache/conf) folgendes geschrieben:

Alias /Music "G:/Music"
<Directory "G:/Music">
Require all granted
</Directory>

Meine Musikbibliothek ist im Laufwerk G gespeichert. Mit folgender beispielhaften Pfadangabe (hier auf ein Bild) aus htdocs heraus funktioniert der Link; dies habe ich mit einer einfachen html-Datei getestet. Als Link aus dem Ergebnis einer Datenbankabfrage passiert nach wie vor nichts.

Code: Select all
<img src="..\..\..\..\Music\2 CD\2 Hits international\5th Dimension, The\Greatest Hits On Earth.jpg">


Musik muss dabei mit c geschrieben werden, sonst klappt's auch nicht (in der Ordnerstruktur allerdings mit k geschrieben!?).

Und so schaut der in der Datenbank hinterlegte Code aus, der, befindet sich die Datei im htdocs-Ordner, ebenfalls zum gewünschten Ergebnis führt.

Code: Select all
<input onclick="play(1)" type="image" src="lautsprecher.png" alt="Lautsprecher" class="lautsprecher"><br>
<div class ="song"><audio onended="cont(1)" id="1" src="..\..\..\..\Music\2 CD\2 Hits international\5th Dimension, The\Up-Up And Away.flac" controls preload="none"></audio></div>


Muss ich vielleicht den Alias-Eintrag anders schreiben (ich bin da völliger Laie)?

Viel Grüße
Oldie
Oldiefan
 
Posts: 3
Joined: 15. March 2021 09:37
XAMPP version: 8.0.3
Operating System: Windows

Re: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Nobbie » 16. March 2021 17:00

So geht das nicht. Die "relative" Verlinkung (insbesondere mit den vielen Punkten) funktioniert nicht im Alias. Man kann nicht "src=../../../." usw. angeben, das geht nicht.

Du musst den absoluten Pfadnamen von Deinem Music Ordner wissen, also nicht "../../../Music/....." usw., sondern wie lautet der volle Pfad unter Windows, meinetwegen so etwas: G:/MeineDateien/Privat/Music oder so. Anders geht es nicht. Und diesen Pfad musst Du beim Alias angeben:

Alias /MyMusic G:/MeineDateien/Privat/Music


Hier habe ich bewusst mal "MyMusic" gewählt, damit Du es auseinanderhalten kannst vom Ordner "Music". Damit Du verstehst, was wo stehen muss.

Und in der src-Angabe wird der ALIAS dann benutzt:

src="/MyMusic/2 CD/2 Hits international/5th Dimension, The/Up-Up And Away.flac"


Das ist aber immer noch schluderig und unsauber, in eine URL (so nennt man diese Angabe) gehört das Protokoll (http oder https) und der Domainname (hier wohl localhost), also am Ende muss es so aussehen:

src="http://localhost/MyMusic/2 CD/2 Hits international/5th Dimension, The/Up-Up And Away.flac"


Beachte auch, dass ich Slashes "/" statt Backslashes "\" benutzt habe, das solltest Du Dir auch angewöhnen, Windows verträgt das (Linux und MacOS sowieso) und der Backslash ist in PHP ein Sonderzeichen, das geht schnell mal schief, wenn man den benutzt und nicht genau die Regeln beachtet.

Eine generelle Problematik sind dann noch Laufwerksbuchstaben a la "G:", die erkennt Apache bisweilen nicht, das hängt davon ab, was damit gemeint ist. Wenn das eine eingebaute Festplatte ist, dann ist das kein Problem, ist das aber ein NAS Laufwerk oder so, passiert es sehr schnell, dass Apache das Laufwerk nicht findet, das liegt an WIndows, die Netzwerksbuchstaben gelten nur für den eingeloggten User, aber Apache läuft meistens mit "SYSTEM" als User.

P.S.:
Oldiefan wrote:Muss ich vielleicht den Alias-Eintrag anders schreiben (ich bin da völliger Laie)?


Auch völlige Laien (auch alte völlige Laien) dürfen übrigens auch Dokumentationen lesen, die sind zum Lesen geschrieben worden. Es gibt eine komplette Dokumentation u.a. von Apache selbst und Google findet die auch in Nullkommanix, da steht u.a. auch drin, was ALIAS bewirkt und wie man den Eintrag schreiben muss. Auf diesem Weg (und nur auf diesem Weg) schafft man es, nicht für immer ein Laie zu sein. Jeder, der kein Laie ist, hat das Wissen vom Lesen der Dokumentation: https://httpd.apache.org/docs/2.4/mod/mod_alias.html

P.P.S.: Wenn Dir das ganze Geknöse mit ALIAS und Co. zu schwierig ist, wenn diese Liedchen nur auf Deinem PC liegen und nur Du via Apache oder so darauf zugreifst, dann kannst Du die ganzen Probleme umgehen, indem Du bei der src="..." Angabe nicht http:// angibst (Du gibst gar nichts an, das bedeutet, es wird das Protokoll des darüber liegenden Formulars gewählt und das war dann http:), sondern file://

Das sieht dann ungefähr so aus:

src="file:///G:/MeineDateien/Privat/Music/2 CD/2 Hits international/5th Dimension, The/Up-Up And Away.flac"


Der entscheidende Unterschied zu http:// ist die Tatsache, dass bei http:// grundsätzlich alles relativ auf htdocs berechnet wird (der sog. DocumentRoot), während bei file:// einfach der Pfad so genommen wird, wie er da steht. So wie Du es auch erwarten würdest. Die drei /// am Anfang sehen ein wenig wild aus, aber da gewöhnt man sich dran, das ist eben die etwas wilde Syntax. Aber ansonsten kannst Du alles reinpacken, wie Du willst, es wird erreicht, auch wenn es nicht unter htdocs liegt. Funktioniert aber nur auf Deinem eigenen PC, nicht als remote Server.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Altrea » 16. March 2021 18:03

Nobbie wrote:P.P.S.: Wenn Dir das ganze Geknöse mit ALIAS und Co. zu schwierig ist, wenn diese Liedchen nur auf Deinem PC liegen und nur Du via Apache oder so darauf zugreifst, dann kannst Du die ganzen Probleme umgehen, indem Du bei der src="..." Angabe nicht http:// angibst (Du gibst gar nichts an, das bedeutet, es wird das Protokoll des darüber liegenden Formulars gewählt und das war dann http:), sondern file://

Das sieht dann ungefähr so aus:

src="file:///G:/MeineDateien/Privat/Music/2 CD/2 Hits international/5th Dimension, The/Up-Up And Away.flac"


Der entscheidende Unterschied zu http:// ist die Tatsache, dass bei http:// grundsätzlich alles relativ auf htdocs berechnet wird (der sog. DocumentRoot), während bei file:// einfach der Pfad so genommen wird, wie er da steht. So wie Du es auch erwarten würdest. Die drei /// am Anfang sehen ein wenig wild aus, aber da gewöhnt man sich dran, das ist eben die etwas wilde Syntax. Aber ansonsten kannst Du alles reinpacken, wie Du willst, es wird erreicht, auch wenn es nicht unter htdocs liegt. Funktioniert aber nur auf Deinem eigenen PC, nicht als remote Server.

Dann muss man bedenken, dass die Chromium basierten Browser (Google Chrome, Microsoft Edge) lokale file Verlinkungen nur per Drittanbieterplugin erlauben, Firefox erst nach Konfigurationsanpassung. Einzig der alte Internet Explorer wird die file Verlinkungen klaglos ausführen.
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: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Oldiefan » 16. March 2021 19:03

Hallo Altrea und Nobbie,

vielen Dank für Eure Hilfe und die ausführlichen Erklärungen. Ich werde mich in den nächsten Tagen weiter damit beschäftigen. Vielleicht gelingt mir ja die Lösung des Problems. Ich nutze üblicherweise Opera als Browser.

Deinen milden Vorwurf in Sachen Dokumentation und Lesen, Nobbie, habe ich zur Kenntnis genommen. Aber weißt du, ich bin Anwender und kein Programmierer. Und manchmal habe ich halt Ideen, die ich versuche zu verwirklichen. So wie hier. Tatsächlich habe ich vor meinem zweiten Posting nach PHP und Alias gesucht, aber nichts gefunden, was mir auf die Sprünge geholfen hätte. Und die Dokumentation ist in Englisch. Und mit meinem Schulenglisch, das ich vor über einem halben Jahrhundert erworben habe, komme ich zwar immer noch durch Amerika, aber nicht problemlos durch fachspezifische Anleitungen.

In diesem Sinne nochmals danke und einen schönen Abend
Oldie
Oldiefan
 
Posts: 3
Joined: 15. March 2021 09:37
XAMPP version: 8.0.3
Operating System: Windows

Re: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Altrea » 17. March 2021 17:41

Ich habe euren privaten Twist hier mal entfernt. Da ist ein Community Forum und als solches sollen die Beiträge für andere Benutzer zum Nachlesen und hilfreich sein. Private Anschuldigungen helfen nicht bei der Problemfindung.

Ich kann an der Frage zur Benutzung und Handhabung eines Alias nichts verwerfliches finden. Nicht jedem muss direkt klar sein, wie URLs und Dateipfade miteinander funktionieren, auch nicht nach lesen der einen oder anderen Seite Dokumentation.
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: Verlinkung zu Dateien außerhalb des xampp-Ordners

Postby Nobbie » 17. March 2021 22:39

Ok, mit anderen Worten: es liegt an Dir, dass Oldiefan Deine Erklärung falsch umgesetzt hat und nicht an der Materie an sich. Was meine Erklärungen anscheinend besser macht. Das ehrt mich ungemein.

Das hätte ich eigentlich auch nicht so gesehen, aber wenn es denn so sein soll, dann musst Du eben an Dir arbeiten und bessere Erklärungen entwickeln. An der Materie liegt es ja angeblich nicht. Dann gib Dir mal mehr Mühe, dass die Anwender Deine Erklärungen auch richtig umsetzen, statt alles falsch zu machen und statt im Internet zu suchen hier weiter fragen. Ist ja Sinn der Community.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 45 guests