Apache/PHP + SymLink -> Forbidden

  1. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Hallo,

    Ich habe nun meine Bilderdatenbank auf mein iBook übertragen. Ich habe die PHP-Skripte in ibook.local/~martin/ liegen und kann auch auf die MySQL Datenbank zu greifen. Soweit eigentlich alles normal.

    Da ich nur eine 30gb Festplatte und schon über 10gb Bilder habe, habe ich die Bilder auf meine USB Platte kopiert und über das Terminal symbolisch verlinkt.

    In den PHP-Skripte kommt getimagesize und filesize zum Einsatz. Diese Funktionen können dem SymLink problemlos folgen und es werden die richtigen Daten angezeigt. Die Bilder an sich werden jedoch nicht an gezeigt. Als ich dann "Bild in neuem Tab öffnen" gewählt habe, um die Fehlermeldung zu sehen, sah ich "You don't have permission to access /~martin/PHP-Programme/bilderdb/bestand/2006-04-16/128/PICT1232.jpg on this server." Dieser Pfad wird aus den Daten in der Datenbank zusammengebaut. Da allerdings die Datei gefunden, aber verboten ist, ist der Pfad anscheinen korrekt.

    Die Rechte habe ich an allen Stellen auf 777 gestellt, allerdings kommt die Meldung immer noch. Ich glaube, dass der Apache zwar das PHP Modul durchlässt, allerdings selbst nicht den Link auflöst und die Dateien ausgibt.

    Was muss ich machen, damit das ganze funktioniert?
     
    martinibook, 20.06.2006
  2. asylum

    asylumMacUser Mitglied

    Mitglied seit:
    10.06.2005
    Beiträge:
    747
    Zustimmungen:
    1
    mhh nur ne Vermutung: versuch doch mal den Ordner "2006-04-16" bzw "128" auf 777 zu setzen
     
    asylum, 20.06.2006
  3. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Wie schon gesagt, ich habe in OSX alle Rechte auf 777 gesetzt, quasi "chmod -R 777"

    Also daran liegt es nicht. Ich kopiere die Daten jetzt auf meinen Debainserver, da da die eingebaute Platte ausreichend groß ist.

    Martin
     
    martinibook, 20.06.2006
  4. moses_78

    moses_78MacUser Mitglied

    Mitglied seit:
    08.04.2005
    Beiträge:
    1.264
    Zustimmungen:
    22
    Sieht so aus, als würde der Apache in seiner Standard-
    konfiguration Symlinks nicht folgen, weswegen du bei
    "Options" noch "FollowSymLinks" hinzufügen musst.

    Steht übrigens auch alles bei apache.org ;)
     
    moses_78, 20.06.2006
  5. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Das hier steht in meiner httpd.conf:
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>

    Martin
     
    martinibook, 20.06.2006
  6. moses_78

    moses_78MacUser Mitglied

    Mitglied seit:
    08.04.2005
    Beiträge:
    1.264
    Zustimmungen:
    22
    Achso, das steht schon als Defaultwert drin :o
     
    moses_78, 20.06.2006
  7. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Ich habe es momentan auf meinem Debianserver am laufen, allerdings fände ich es auf dem iBook besser. Es scheint ja so, dass er die Datei findet, aber irgendwas nicht mit den Rechten stimmt. Aber mehr als 777 gibts ja net.

    Martin
     
    martinibook, 20.06.2006
  8. naomi_watts

    naomi_wattsMacUser Mitglied

    Mitglied seit:
    11.02.2006
    Beiträge:
    111
    Zustimmungen:
    0
    die httpd.conf ist ja nun nicht das selbe wie die .htaccess für das jeweilige verzeichnis.
     
    naomi_watts, 21.06.2006
  9. xlqr

    xlqrMacUser Mitglied

    Mitglied seit:
    08.09.2003
    Beiträge:
    1.942
    Zustimmungen:
    15
    ist das nicht so gemeint, dass du in der httpd.conf sagst er solle überhaupt auf symlinks reagieren und ist die .htaccess nicht sowas ? :kopfkratz:
     
    xlqr, 21.06.2006
  10. naomi_watts

    naomi_wattsMacUser Mitglied

    Mitglied seit:
    11.02.2006
    Beiträge:
    111
    Zustimmungen:
    0
    "Die Direktive Options legt fest, welche besonderen Eigenschaften ein bestimmtes Verzeichnis (mitsamt seinen Unterverzeichnissen) besitzen soll. Das nähere Verhalten einiger dieser Optionen wird durch andere Direktiven geregelt; hier geht es zunächst einmal darum, ob eine bestimmte Eigenschaft grundsätzlich unterstützt werden soll oder nicht. Im Einzelnen sind folgende Optionen definiert, die Sie als Werte der Direktive angeben können:
    - None. Schaltet sämtliche Optionen ab.
    - Indexes. Wenn die angeforderte URL ein Verzeichnis ist, wird die mittels DirectoryIndex festgelegte Indexdatei ausgeliefert oder – falls diese nicht vorhanden ist – ein durch mod_autoindex generierter Index.
    - FollowSymLinks. Symbolische Links innerhalb des Verzeichnisses werden aufgelöst – Apache liefert das entsprechende Ziel des Links aus.
    - SymLinksIfOwnerMatch. Symbolische Links werden nur dann verfolgt, wenn der Eigentümer des SymLinks demjenigen der Zieldatei entspricht."

    vielleicht hilft dir dies:

    <Directory "/~martin/PHP-Programme/bilderdb">
    Options +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride All
    </Directory>
     
    naomi_watts, 21.06.2006
Die Seite wird geladen...
Ähnliche Themen - Apache PHP SymLink
  1. mawa
    Antworten:
    5
    Aufrufe:
    1.613
  2. keykiller
    Antworten:
    13
    Aufrufe:
    885
  3. Kaito
    Antworten:
    95
    Aufrufe:
    5.264
  4. misthupper
    Antworten:
    7
    Aufrufe:
    980
    produnis
    06.08.2008
  5. auto01
    Antworten:
    2
    Aufrufe:
    1.235