• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Keine Daten über Apache mit cifs gemountetem ordner

Swisstaz

Newbie
Hallo zusammen
Ich habe einen openSuSE 10.3 Webserver (text-mode) aufgebaut.
Darauf möchte ich nebst statischen Seiten und PHP-Applikatiönchen( funktioniert alles einwandfrei) auch Dateien auf einem MS W2K3-Server anbieten. Dazu habe ich über's fstab einen Share mit cifs gemountet auf den Ordner /srv/www/htdocs/transfer.

Nun, der Apache findet die Files und der Webbrowser schlägt bei einem Excel-File sogar vor, es mit Excel zu öffnen. Nun werden aber keine Daten aus dem File übermittelt (HTML-Dateien sind leer und auch das geöffnete Excel enthält keine Daten). :(

Wenn ich aber mit einem x-beliebigen Benutzer auf das System einlogge, in den Ordner gehe und die Files anschaue (mit Midnight Commander oder vi), dann sehe ich die vollen Daten. :)

Muss ich da beim Apache noch was einstellen?
Vielen Dank für Eure Hilfe
Gruss
Mario
 

Dr. Glastonbury

Advanced Hacker
Zunächst: der Apache schlägt nicht vor eine .xlc-Datei mit Excel zu starten... das übernimmt einzig der Browser.
Was ich mir aber vorstellen kann, sind falsche Berechtigungen auf den Ordner...

Hast du schon mal die access/error.log vom Apachen gecheckt?
Kannst du uns bitte sagen, wie du das Share mountest?
Wem gehören die Dateien, mit welchem Dateimodus sind sie versehen?

Gib bei deinem Hilfsgesuch^^ immer so viele Infos wie möglich an, dann kann dir auch schnell geholfen werden ;)
 
OP
S

Swisstaz

Newbie
Vielen Dank für die Antwort.

Es stimmt, meine Angaben sind spärlich. Ich werde Besserung geloben. :wink:

Also: Der openSuSE 10.3 läuft im Text-Mode auf einem VMWare-Server. Das Laufwerk ist im /etc/fstab wie folgt notiert:

Code:
//192.168.0.10/transfer /srv/www/htdocs/transfer cifs username=Benutzi,password=passi,uid=wwwrun 0 0

Der Webserver hat beim Boot für "Mount CIFS File Systems from /etc/fstab..." ein "done" ausgegeben.

Der Windows-Benutzer hat da alle Rechte. Die UID habe ich mit ps -aux herausgefunden. Es ist möglich
- Files mit less anzuzeigen
- Files mit vi zu editieren
- Files mit WinSCP auf meinen Rechner zu ziehen und dann ganz normal zu bearbeiten

Daher habe ich das als Apache-Problem angeschaut. Ich habe aber gestern Abend zu Hause noch einen Tread in der Sparte SAMBA gefunden und auch meinen Beitrag dazu gegeben. http://www.linux-club.de/viewtopic.php?f=6&t=85276. Sorry, dass ich dahin noch keinen Querverweis gemacht habe.

Die Logs: Im Error-Log habe ich keinen Hinweis gefunden, welche auf dieses Problem schliessen lassen. Alle Einträge waren erklärbar (nicht vorhandene Dateien, welche nichts mit dem /transfer zu tun hatten).

Hoffentlich habe ich nichts vergessen.

Gruss
Mario
 

Dr. Glastonbury

Advanced Hacker
Swisstaz schrieb:
Das Laufwerk ist im /etc/fstab wie folgt notiert:
Code:
//192.168.0.10/transfer /srv/www/htdocs/transfer cifs username=Benutzi,password=passi,uid=wwwrun 0 0
Du könntest evtl. noch versuchen durch eine vorgegebene umask von 133 den Dateien unter Linux einen festen Modus vorzugeben. Dadurch wäre sicher gestellt, dass es sich um kein Berechtigungsproblem handelt:
Code:
//192.168.0.10/transfer /srv/www/htdocs/transfer cifs username=Benutzi,password=passi,uid=wwwrun,gid=wwwrun,umask=133
Die beiden 0er am Ende solltest du nicht benötigen, denn die geben nur Aussage darüber, ob das Dateisystem mit fsck überprüft werden soll... was natürlich bei einem Netzlaufwerk eh keinen Sinn macht ;)

Ahja, zur Not kannst du auch mal eine umask=000 probieren, dann haben die Dateien am Webserver alle Berechtigungen...
 
OP
S

Swisstaz

Newbie
Hallo Dr. Glastonbury

Ich habe die Lösung gefunden.

Die Sache liegt nicht direkt am CIFS sondern am Apache. Wenn Du eine Datenquelle eines anderen Servers einbindest, dann benutzt Apache die "Sendfile"-Funktion. Das heisst, er reicht das File vom Server, wo er es holt, gleich zum Client weiter. Nun kommt es aber bei SMB und NFS vor, dass er strauchelt. File's unter 255 Bytes sind kein Problem. Wenn sie darüber sind, verhaspelt er sich und das Datenfile für den Client ist leer.

Ich habe also im httpd.conf folgende Zeile, welche in der openSuSE 10.3 Installation fehlt, eingefügt:

Code:
# Disable "EnableSendfile" causing problems with cifs mounted folders
EnableSendfile off
... danach ein

Code:
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
... und ich kann auf meine Windows-Server-Files korrekt zugreifen.

Der Mount des Folders im /etc/fstab kann übrigens bei

Code:
//192.168.0.101/transfer /srv/www/htdocs/transfer cifs username=Benutzi,password=passi  0 0
belassen werden.

Hier noch einige weiterführende Links:
http://communities.vmware.com/thread/125294
http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
http://aktuell.de.selfhtml.org/artikel/server/apacheconf/scripts/windows_2_0_06.htm

Ich danke Dir auf alle Fälle für Deine Unterstützung.
 
Oben