php und symbolische links

Diskutiere mit über: php und symbolische links im Web-Programmierung Forum

  1. dbr

    dbr Thread Starter MacUser Mitglied

    Beiträge:
    45
    Zustimmungen:
    0
    Registriert seit:
    28.05.2005
    pro's gefragt: php und symbolische links

    habe ein ziemlich schwerwiegendes etwas ominöses problem:

    habe mehrere webprojekte die mit den selben php-scripts arbeiten, jedoch jeweils eine eigene datenbank verwenden.

    dazu habe ich mit ln -s symolische links erstellt die auf bestimmte verzeichnisse linken in denen die scripts zentral bereitstehen.

    das ganze sieht ca. so aus:
    /scriptdir/admin/
    /scriptdir/lib/
    /scriptdir/upload

    und für ein jeweiliges projekt folgende verzeichnisstruktur:
    /project/admin -> ../scriptdir/admin
    /project/lib -> ../scriptdir/lib
    /project/upload -> kein link!!

    das problem ist jetzt folgendes.. wenn ich im projektfolder /admin/ ein uploadscript (upload.php) ausführe.. und ich der move_uploaded_file funktion einen relativen pfad zum uploadverzeichnis angebe also "../upload/uploadedfile.ext"


    aus irgendeinem mir unersichtlichen grund führt diese angabe nicht zum /project/upload folder... sondern in den /scriptdir/upload folder... d.h. das script lässt sich vom symolischen link nicht "täuschen" und geht vom original aus (also der pfad unter dem das script tatsächlich lieggt (/scriptdir/admin/upload.php )

    hoffe ich konnte es einigermaßen verständlich formulieren.

    hat jemand eine idee wie man dieses problem lösen könnte... ?

    big thx in advance!

    Dbr
     
    Zuletzt bearbeitet: 04.10.2005
  2. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    Registriert seit:
    30.01.2005
    ich vermute, dass der pfad des upload-dirs relativ zu deiner zentralen installation ermittelt wird. sprich: aus der sicht des skriptes wird der upload-pfad richtig ermittelt - was dir natürlich nicht weiterhilft. es scheint aber alles OK zu sein.

    du könntest den pfad zum "richtigen" upload "hart-verdrahten"... z.B.

    $folder = $clientBaseFolder."/upload/";

    echo $clientBaseFolder könnte z.B. sein:
    /var/www/kunde_1

    echo $folder wäre dann z.B.
    /var/www/kunde_1/upload/


    hoffe, das hilft weiter.
    gruss, cat.
     
  3. dms

    dms Gast

    Oder Du baust Dir eine Funktion die den Pfad übersetzt. An den aktuellen Pfad kommst Du per $_SERVER["PATH_TRANSLATED"]. Dann brauchst Du eine Funktion die den relativen Pfad auf diesen Absoluten anwendet.

    Diese Funktion könntest Du vom jeweiligen Nutzer (falls es z.B. um virtual Hosting geht) verstecken indem Du sie in die Funktion move_uploaded_file einbindest.

    -originale move_uploaded_file-Funktion umbenennen: rename_function()
    -eigene Funktion move_uploaded_file erstellen, die die Pfadumwandlung enthält und die orignale move_uploaded_file-Funktion danach aufruft.

    Das ganze kannst Du in eine Datei schreiben die Du grundsätzlich in PHP einbindest (php.ini -> auto_prepend_file)

    Ist ein dreckiger Hack, aber sollte funktionieren. :)
     
    Zuletzt von einem Moderator bearbeitet: 13.10.2005
  4. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    Registriert seit:
    30.01.2005
    "dreckiger hack" in kombination mit "file upload" erzeugt bei mir eine gänsehaut :)
     
  5. dms

    dms Gast

    Nachts um 3 kommt man schon auf spannende Ideen. ;)
     
  6. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Aus welchem Grund kein absoluter Pfad bei der Uploadfunktion?

    Oder sonst mit document root (gibt URL an, nicht Filesystem) ($_SERVER["DOCUMENT_ROOT"]/project/upload/)
     
  7. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    Registriert seit:
    30.01.2005
    documentroot ist nicht immer gleich speicherort der projektdateien. das ist doch nur das wurzelverzeichnis des webservers.

    in dem fall wären alle projekte öffentlich zugänglich, das sie unterhalb des roots liegen.
     
    Zuletzt bearbeitet: 14.10.2005
  8. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Es ist der upload-Ordner. Sehe kein Problem drin, das der per URL zugänglich ist. Wenn er's denn ist, sonst geht's nicht damit, ja.
     
  9. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    ich arbeite bei sowas mit virtuellen hosts in der httpd.conf und kann so per

    /path/to/somewhere/$_SERVER['HTTP_HOST']/...

    beliebig unterscheiden. Auf die Art betreibe ich bequem 5 Webserver auf einem PIII mit 500 MHz :)
     
  10. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    Registriert seit:
    30.01.2005
    wenn es nur der ist, dann ist es ok. in deinem beispiel ist aber der upload-ordner unterhalb des projektes

    > $_SERVER["DOCUMENT_ROOT"]/ !! project !! /upload/

    du meintest bestimmt

    > $_SERVER["DOCUMENT_ROOT"]/upload/
     
Die Seite wird geladen...
Ähnliche Themen - php symbolische links Forum Datum
Wordpress&Soundcloud -> Einbinden von privaten links Web-Programmierung 25.11.2016
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
PHP Array in Google Maps Wegpunkte umwandeln Web-Programmierung 13.03.2015
Links zu Ordnern und/oder files verschicken á la DropBox Web-Programmierung 05.12.2014

Diese Seite empfehlen

Benutzerdefinierte Suche