[PHP] Problem mit Alias

Dieses Thema im Forum "Webentwicklung" wurde erstellt von dermuedejoe, 31. Juli 2009 .

Schlagworte:
  1. 31. Juli 2009
    Problem mit Alias

    Hallo

    ich arbeite gerade an einem PHP-Script, welches verschiedene Datei-Operationen (copy, mkdir und sowas in der Art) durchführt. Das funktioniert auch wunderbar wenn ich im DocumentRoot arbeite.

    Nun musste ich allerdings eine weitere Festplatte hinzufügen, auf der einige Daten abgelegt werden. Auf diese Ordner habe ich auch einen Alias erstellt, welcher zuverlässig funktioniert. Nur eben bei den o.g. PHP-Funktionen nicht.

    Was habe ich bisher probiert:
    - Symlink auf den Ordner -> funktioniert im Apache, allerdings kommt PHP damit auch nicht klar
    - absolute Pfade benutzt -> funktioniert Perfekt, allerdings will ich das ehrlich gesagt nicht so lassen
    - Rechte etc überprüft etc, daran scheitert es nicht

    Was ich gern möchte:
    - hat jemand vielleicht eine Idee wie ich PHP dazu bekomme mit einem Alias zu arbeiten
    (quasi
    Code:
    mkdir("/aliasname/bla/blubb", 0777); 
    
    )?


    Aktuell sieht es so aus, dass ich diese Dateioperationen alle mit absoluten Pfaden mache, dem User aber dann relative Pfade als Link ausgebe. Das muss allerdings besser gehen ^^


    Der Grund für das ganze ist übrigens recht knapper Speicherplatz. Ich hätte ja einfach die Platte vergrößert und mit Acronis die Partitionsgröße geändert, aber das will mein Chef nicht!

    Ach ja, xampp 1.7.1 und winxp sp3, virtuell aufn esx...
     
  2. 31. Juli 2009
    AW: Problem mit Alias

    Machs doch so:

    PHP:
    define ( 'PFAD' '/dein/pfad/bis/zur/festplatte' );

    $userpfad  '/what/ever' ;

    mkdir PFAD  $userpfad 0777  );
    echo 
    $userpfad ;
    Also ich mein du kannst bei den Dateioperationen einfach immer einen absoluten Teil des Pfades vorhängen.

    Grüße
     
  3. 31. Juli 2009
    AW: Problem mit Alias

    Solang ich nicht nen Pfad von Alias sondern vom DocRoot nehme geht das. Sobald ich mit dem Alias anfange erkennt er es nicht. Aber ich probiers aus, danke schonmal

    Rückmeldung kommt halt erst am Montag, ich arbeite ja am WE nix ^^
     
  4. 1. August 2009
    AW: Problem mit Alias

    Hats vlt einfach was mit den Rechten zu tun?

    PHP laeuft mit www-data normalerweise als User, wenn der keine Schreibrechte im Aliasordner hat, kanner der auch keine Ordner dort erstellen. Du kannst ja das Warning oder Errorlevel in PHP mal hochsetzen und schauen was er fuer Fehler wirft.
     
  5. 1. August 2009
    AW: Problem mit Alias

    Ich denke nicht dass es an den Rechten liegt, da ich mit absoluten Pfadangaben wunderbar zugriff bekomme.

    Als Fehler kommt übrigens File not found bzw directory not found
     
  6. 1. August 2009
    AW: Problem mit Alias

    glaube nicht dass du es über windows (xp) und php über den üblichen weg hinbekommen wirst.

    PHP: symlink - Manual
    und
    PHP: link - Manual

    In den Kommentaren sind aber noch eine Tipps, z.b.
    PHP:
    <? php
    if(! function_exists ( 'link' )){  // Assume a windows system
        
    function  link ( $target $link ){
            if(
    is_dir ( $target )){
                
    // junctions link to directories in windows
                
    exec ( "junction  $link   $target " $lines $val );
                return 
    ==  $val ;
            }elseif(
    is_file ( $target )){
                
    // Hardlinks link to files in windows
                
    exec ( "fsutil hardlink create  $link   $target " $lines $val );
                return 
    ==  $val ;
            }
            
            return 
    false ;
        }
    }
    ?>
    Junction

    es sollte daher reichen wenn du mit junction nen symlink erstellst. aber ob das auch wirklich mit mkdir funktionieren wird ist auch fraglich.

    achja. google ftw
     
  7. 2. August 2009
    AW: Problem mit Alias

    den Symlink über Junction (gibts als Tool von Sysinternals bzw angeblich auch im win2003 Resource Kit ) hab ich schon erstellt. Der funktioniert auch wunderbar in Windows / im Apache, nur frisst den PHP genauso wenig wie den Alias.
    Es ist genau wie du gesagt hast, dass mkdir (und copy, und unlink... ) damit nicht klar kommen.

    Das andere Probier ich morgen mal aus, vielen Dank schonmal!
     
  8. 5. August 2009
    AW: Problem mit Alias

    was mir noch eingefallen ist:

    du kannst dir auch einfach 'wrapper' schreiben und das als befehle auf der windows 'shell' ausführen (system, exec, ...), wenn du sagst das mit den links funktioniert in windows.

    PHP:
    function  smkdir ( $pathname )
    {
       
    $cmd  "mkdir " . $pathname ;
       
    $result  exec ( $cmd );
       if(
    $result  ==  "" )
          return 
    false ;
       else
          return 
    true ;
    }
    oder falls dir das nicht taugt, es gibt bestimmt tools die den link von junction auslesen können.
    PHP:
    function  mkdir_alias ( $pathname )
    {
       
    // pathname mit explode zerlegen, verzeichnisse einzeln wechseln und immer überprüfen ob DIR oder ALIAS, wenn alias dann ziel auslesen und mit bisherigen verzeichnispfad ersetzen ;)
    }
     
  9. 6. August 2009
    AW: Problem mit Alias

    Probier ich aus, dank dir

    der Rest läuft übrigens nicht!
     
  10. 6. August 2009
    AW: Problem mit Alias

    auch wenns eher suboptimal is, aber das funktioniert:
    PHP:
    <? php
    print  'path: '  getcwd () .  PHP_EOL ;
    chdir ( lnk_target ( './HTML.lnk' ));  //zeigt auf H:\HTML
    print  'path: '  getcwd () .  PHP_EOL ;

    function 
    lnk_target ( $lnkFile ) {
        
    $match  = array();
        
    preg_match ( '~Data.([\w_\\\/\.\-:]+)~' file_get_contents ( $lnkFile ),  $match );
        return  
    $match [ 1 ];
    }
    ausgabe bei mir:
    Code:
    path: C:\Dokumente und Einstellungen\Murdoc\Desktop
    path: H:\HTML
     
  11. 6. August 2009
    AW: Problem mit Alias

    haha coole sache :-D genau die funktion die ich suchte
    selber getippt ? bw geht ma klar

    damit kannste ja jetz ganz einfach dein pfad auslesen und fix drau zugreifen
     
  12. 7. August 2009
    AW: Problem mit Alias

    klingt doch schonmal gut, wird probiert

    Ich komm die nächsten Tage nicht auf arbeit, also nicht wundern wenn sich hier nix tut...

    PS: BWs gabs für jeden Beitrag
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.