Für unsere Anwendung müssen wir die Dateien oberhalb des Roots speichern, damit die Streaming Media Software auf sie zugreifen kann.
Ich habe erfolgreich einen Symlink von:
/var/www/vhosts/myhost.com.au/httpdocs/fileserver/videostream/
zu:
/usr/local/MediaServer/content/
und PHP wird mein Rohvideo problemlos verarbeiten, indem es diesem Symlink zur echten Datei oberhalb des Roots folgt.
Wenn ich jedoch versuche
file_exists('/var/www/vhosts/myhost.com.au/httpdocs/fileserver/videostream/myfile.mp4')
Ich stoße auf alle Arten von Fehlern wie "open_basedir restriction in effect".
Gibt es eine Möglichkeit, dieses Problem zu umgehen, oder muss ich einfach davon ausgehen, dass die Datei tatsächlich verarbeitet wurde, wenn meine Datenbankeinträge korrekt sind und besagen, dass sie verarbeitet wurde.
Würde es mit fopen besser funktionieren oder gibt es immer noch die basedir-Einschränkungen?
Wir sind auf einem dedizierten Host mit Root-Rechten, so dass wir alles tun können, was nötig ist.
Danke.
Ich habe einen Workaround gefunden, aber das löst die Frage nicht :-)
Ich kann CURL verwenden, um die Kopfzeilen der eigentlichen Datei einzuholen, und dadurch weiß ich, ob sie existiert oder nicht. Eine weitere Methode besteht darin, die Existenz der benutzerdefinierten URL des Streaming Media Servers für diese Datei mit CURL zu überprüfen. Problem gelöst, aber nicht ganz so, wie ich es haben wollte.