Apache not serving from CIFS-mounted share, works if it's mounted asSMBFS

Discussion in 'Linux Networking' started by Rick Onanian, Mar 11, 2008.

  1. Rick Onanian

    Rick Onanian Guest

    I'd like to mount a windows 2000 server fileshare on an linux/apache
    server to do some basic web serving. The web server works fine and
    shows other content that's stored locally just fine.

    This works:
    mount -t smbfs -o username=smbusername,uid=apache,ro //server/share
    mountpoint/
    but it complains that smbfs is deprecated and I should be using cifs.
    For now, I'm using it anyway.

    This seems to work:
    mount.cifs //server/share mountpoint/ -
    ouser=smbusername,uid=apache,ro
    but it won't serve actual files. It allows browsing of the directories
    and shows the filenames. It does not return an error, it just does not
    send the file. I have confirmed that user 'apache' can read the file
    by logging in as that user and viewing the file.

    I tried a telnet test, using GET and Host commands captured from
    firefox's LiveHTTPHeaders extension, like this:
    -=-
    telnet webserver 80
    GET /directory/filename.jpg HTTP/1.1
    Host: webserver
    -=-

    The result looks like this:
    -=-
    HTTP/1.x 200 OK
    Date: Tue, 11 Mar 2008 15:51:07 GMT
    Server: Apache/2.2.4 (Unix) PHP/5.2.0
    Last-Modified: Thu, 21 Feb 2008 16:07:30 GMT
    Etag: "420f8a5-180bf4-4d7a7480"
    Accept-Ranges: bytes
    Content-Length: 1575924
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: image/jpeg

    Connection to host lost.
    -=-
     
    Rick Onanian, Mar 11, 2008
    #1
    1. Advertisements

  2. what does the apache error log show ( if anything ).
    What does the apache log file show for the filename.jpg file?
    If you get a good return code in the apache log... does the bytes
    sent match the file size?

    Does it work with smaller files and just not larger files.
    Can you do cp filename.jpg /tmp and have it get copied correctly?

    what does wget -O erase.me "http://127.0.0.1/directory/filename.jpg"
    give you when you run it from your webserver. does the erase.me
    file have the correct number of bytes when the transfer completes?


    Just wondering if the web server is having access files for 'large'
    files or files after 'x' bytes and your just not seeing it getting
    a directory index listing.




    --
    D.A.M. - Mothers Against Dyslexia

    see http://www.jacksnodgrass.com for my contact info.

    jack - Grapevine/Richardson
     
    Jack Snodgrass, Mar 11, 2008
    #2
    1. Advertisements

  3. Rick Onanian

    Rick Onanian Guest

    Nothing. I was thinking maybe I should turn up the logging level.
    No, I tried with very small files (~300 bytes), small files (50k), and
    somewhat larger files (2mb).
    Good idea, I hadn't thought of that. The output is interesting,
    actually:
    -=-
    [[email protected] tmp]# wget 'http://127.0.0.1/~collegepictures/2006/
    SmartBoard/SmartBoard.jpg'
    --09:18:00-- http://127.0.0.1/~collegepictures/2006/SmartBoard/SmartBoard.jpg
    => `SmartBoard.jpg'
    Connecting to 127.0.0.1:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 763,685 (746K) [image/jpeg]

    0%
    [ ]
    0 --.--K/s

    09:18:00 (0.00 B/s) - Connection closed at byte 0. Retrying.

    --09:18:01-- http://127.0.0.1/~collegepictures/2006/SmartBoard/SmartBoard.jpg
    (try: 2) => `SmartBoard.jpg'
    Connecting to 127.0.0.1:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 763,685 (746K) [image/jpeg]
    SmartBoard.jpg has sprung into existence.
    Retrying.

    --09:18:03-- http://127.0.0.1/~collegepictures/2006/SmartBoard/SmartBoard.jpg
    (try: 3) => `SmartBoard.jpg.1'
    Connecting to 127.0.0.1:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 763,685 (746K) [image/jpeg]

    0%
    [ ]
    0 --.--K/s

    09:18:03 (0.00 B/s) - Connection closed at byte 0. Retrying.

    --09:18:06-- http://127.0.0.1/~collegepictures/2006/SmartBoard/SmartBoard.jpg
    (try: 4) => `SmartBoard.jpg.1'
    Connecting to 127.0.0.1:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 763,685 (746K) [image/jpeg]
    SmartBoard.jpg.1 has sprung into existence.
    Retrying.
    -=-

    I like that "sprung into existence" thing. :) Anyway, at that point I
    gave up and hit ctrl-C.

    Okay, I googled for that sprung into existence bit and found this,
    which makes sense:
    http://www.mail-archive.com//msg07365.html
    I didn't even notice but it was incrementing the filename before
    saying it sprung into existence.
    It's definitely not an issue of file size.
     
    Rick Onanian, Mar 12, 2008
    #3
  4. Rick Onanian

    John Chiu Guest

    I ran into this issue also and found the resolution. Here's the
    information I found - http://nixforums.org/about127225.html

    Just set the following in your httpd.conf file -

    EnableSendfile off


     
    John Chiu, Mar 27, 2008
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.