symbolischer Link auf Verzeichnis

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Add-on Developer
Registriert
04. Jan. 2012
Beiträge
5.966
Reaktionspunkte
1.722
Punkte
234
Hallo,

mit
Rich (BBCode):
ln -s /volume2/web2/website /volume1/web/website
wollte ich ein Verzeichnis auf der SSD (2.HDD) dem Webserver im Ordner web auf Volume1 zur Verfügung stellen.
Das Ergebnis ist in der Filestation gar nicht zu sehen, und auf der Konsole oder per afp nur als Link-Datei mit den Eigenschaften:
Rich (BBCode):
lrwxrwxrwx    1 root     root            19 Aug  1 18:35 website -> /volume2/web2/website

Was mache ich da falsch?

Bildschirmfoto 2015-08-01 um 20.37.00.png
 
Zuletzt bearbeitet:
Hast Du das aktiviert?

Zwischenablage01.jpg
 
ja, habe ich (inkl. Neustart).

Gleiche Situation innerhalb eines gemeinsamen Ordners.

Ich habe es gerade auch noch einmal auf einer anderen DS probiert ==> genau das Gleiche. Das schreit ja regelrecht nach einem Fehler meinerseits …


Legt man richtigerweise eigentlich erst einen leeren Ordner an, der dann nach dem Erstellen des Links die Zieldateien zeigt?
 
sooo:

Habe mich jetzt noch einmal per smb an Stelle von afp verbunden, und da geht es schon mal :-)

Allerdings erscheint der Symlink nicht in der Filestation … und ist im Webserver auch nicht wie gewünscht sichtbar / aufrufbar.



EDIT:
Laut diesem Beitrag scheint es via Filestation wirklich nicht zu funktionieren.

Ein mount bind sollte hoffentlich helfen.
 
Zuletzt bearbeitet:
Hallo,

die Filestation kann keinen SymLinks folgen und auch für einen Apache sind Anpassungen nötig. Ohne das jetzt auf der DS geprüft zu haben sind aber z.Bsp. folgende Optionen nötig:

Rich (BBCode):
Options AllowOverride
Options +FollowSymLinks

Gruß Frank
 
Habe jetzt mit mount bind den Ordner aus Volume2 auch in /volume1/web/ sichtbar.
Allerdings kann ich immer noch keine Ressourcen per Webserver aufrufen (Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden).
Ich habe den Pfad zum Volume2 auch als PHP open_basedir hinzugefügt. Es werden auch nicht die einfachsten .txt-Dateien angezeigt.

Hallo,

die Filestation kann keinen SymLinks folgen und auch für einen Apache sind Anpassungen nötig. Ohne das jetzt auf der DS geprüft zu haben sind aber z.Bsp. folgende Optionen nötig:

Rich (BBCode):
Options AllowOverride
Options +FollowSymLinks

Gruß Frank

Muss ich auch bei mount bind bei dem Apache etwas ändern? Wenn ja, wo?


Das steht schon in der /etc/httpd/conf/httpd.conf-user:
Rich (BBCode):
<Directory />
    Options FollowSymLinks
    AllowOverride All

    RewriteEngine on
    RewriteCond %{HTTP:Transfer-Encoding} chunked
    RewriteRule ^(.*)$ http://localhost:412/$1 [P]
</Directory>

Sollte ich hier noch einen Directoryeintrag für den Ordner auf Volume2 hinzufügen / ich will ja meinen Webserver nicht abschießen:
Rich (BBCode):
<Directory "/volume2/web2">
    Options FollowSymLinks
    AllowOverride All

    RewriteEngine on
    RewriteCond %{HTTP:Transfer-Encoding} chunked
    RewriteRule ^(.*)$ http://localhost:412/$1 [P]
</Directory>
 
Zuletzt bearbeitet:
Ich habe noch einmal das Verzeichnis /volume2/web2/websitevolume2 (welches nur eine index.html enthält) nach /volume1/web/websitemount/ gemounted.
Beim Aufruf von http://ip/websitemount/index.html erscheint dieser Fehler in der /var/log/httpd/user-error_log:
[Sun Aug 02 13:33:17 2015] [crit] [client 192.168.170.56] (13)Permission denied: /var/services/web/websitemount/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Zum Test habe ich auch mal die .htaccess im Webroot deaktiviert.

Ich weiß nicht, was mir da dazwischenfunkt.
 
Muss ich auch bei mount bind bei dem Apache etwas ändern? Wenn ja, wo?

Bei mount bind muß meines Wissens nichts geändert werden. Um das SymLinks vom Apachen gefolgt werden kann, muß in der httpd.conf folgende Zeile stehen "Options AllowOverride" Ist ja wohl bei dir der Fall. Kann das gerade auf keiner DS prüfen.

Die Zeile "Options +FollowSymLinks" kann entweder auch in der httpd-conf (scheinbar auch schon der Fall) stehen oder aber wenn AllowOverwrite in der .conf vorhanden ist, dann auch in der .htaccess.

Bei Änderungen der .conf immer daran denken den Apachen neu zu starten.

Ich würde nochmals prüfen ob dir nicht vieleicht eine vorhandene .htaccess die Option wieder deaktiviert oder aber ob dein Apache überhaupt Zugriffsrechte auf dein eingehangenes Verzeichnis hat. Helfen kann hier auch das Log des Apachen bzw. den Loglevel hochsetzen.

Gruß Frank
 
...
Das steht schon in der /etc/httpd/conf/httpd.conf-user:
...
Ergänze dort für doch mal ein Require all granted für das Webroot, d.h.
Code:
<Directory "/var/services/web">
    Options MultiViews FollowSymLinks ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
   [COLOR=#b22222] Require all granted[/COLOR]
</Directory>
 
… Ich würde nochmals prüfen ob dir nicht vieleicht eine vorhandene .htaccess die Option wieder deaktiviert oder aber ob dein Apache überhaupt Zugriffsrechte auf dein eingehangenes Verzeichnis hat. Helfen kann hier auch das Log des Apachen bzw. den Loglevel hochsetzen.

.htaccess hatte ich umbenannt und auch immer Apache neu gestartet.

Bzgl. der Zugriffsrechte:
Noch mal hier meine Frage von oben:
Rich (BBCode):
<Directory />
    Options FollowSymLinks
    AllowOverride All

    RewriteEngine on
    RewriteCond %{HTTP:Transfer-Encoding} chunked
    RewriteRule ^(.*)$ http://localhost:412/$1 [P]
</Directory>

Sollte ich hier noch einen Directoryeintrag für den Ordner auf Volume2 hinzufügen / ich will ja meinen Webserver nicht abschießen:
Rich (BBCode):
<Directory "/volume2/web2">
    Options FollowSymLinks
    AllowOverride All

    RewriteEngine on
    RewriteCond %{HTTP:Transfer-Encoding} chunked
    RewriteRule ^(.*)$ http://localhost:412/$1 [P]
</Directory>

Ergänze dort für doch mal ein Require all granted für das Webroot, d.h.
Code:
<Directory "/var/services/web">
    Options MultiViews FollowSymLinks ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
   [COLOR=#b22222] Require all granted[/COLOR]
</Directory>

Das hat meine Wordpressseite gekillt:
Errorlog:
[Sun Aug 02 14:12:31 2015] [error] [client 93.202.47.204] (104)Connection reset by peer: FastCGI: comm with server "/php-fpm-handler" aborted: read failed, referer: https://MeineDOMAIN/
[Sun Aug 02 14:12:31 2015] [error] [client 93.202.47.204] FastCGI: incomplete headers (0 bytes) received from server "/php-fpm-handler", referer: https://MeineDOMAIN/

Require all granted wieder rausgenommen, und alles wieder OK.

Beim Neustart des Apache findet sich auch folgende Errormeldung im Log.
Ist das unbedenklich, oder hackt es noch an einer anderen Stelle?

[Sun Aug 02 14:12:09 2015] [notice] caught SIGTERM, shutting down
[Sun Aug 02 14:12:11 2015] [error] FastCGI: access for server (uid 1023, gid 1023) failed: read not allowed
[Sun Aug 02 14:12:11 2015] [error] FastCGI: can't create dynamic directory "/run/httpd/fastcgi/dynamic": access for server (uid 1023, gid 1023) failed: read not allowed
[Sun Aug 02 14:12:11 2015] [notice] Digest: generating secret for digest authentication ...
[Sun Aug 02 14:12:11 2015] [notice] Digest: done
[Sun Aug 02 14:12:11 2015] [error] FastCGI: access for server (uid 1023, gid 1023) failed: read not allowed
[Sun Aug 02 14:12:11 2015] [error] FastCGI: can't create dynamic directory "/run/httpd/fastcgi/dynamic": access for server (uid 1023, gid 1023) failed: read not allowed
[Sun Aug 02 14:12:11 2015] [notice] FastCGI: process manager initialized (pid 1929)
[Sun Aug 02 14:12:11 2015] [notice] Apache/2.2.29 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_ssl/2.2.29 OpenSSL/1.0.1p-fips configured -- resuming normal operations
 
Und wenn Du das nur auf Deine Webseite eingrenzt, also einen zusätzlichen Eintrag ergänzen mit
Code:
<Directory "/var/services/web/website">
   [COLOR=#b22222] Require all granted[/COLOR]
</Directory>
 
Soooo - jetzt habe ich den Bösewicht gefunden :D

Auf /volume2/web2/ fehlte die Berechtigung für die Gruppe http.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat