My favorites | Sign in
Project Home Downloads Wiki
Updated Mar 31, 2014

301 Moved Permanently

This website is no longer in used, and migrated to a new location. This document can be read at:

Comment by, Apr 21, 2008

I have an error : Call to undefined method Sabre_DAV_FS_Directory::get()

Comment by project member, Apr 21, 2008

Hi emmanuel,

You'll get that error when you try to open your sabredav installation through a webbrowser, which is not how its intended to be used..

Give it a shot using Finder (if you're on a mac) or DavFS2 (if you're on linux..) I realize I didn't include this in this tutorial, so I'll add that in..

Comment by, Apr 22, 2008


Comment by iconara, May 27, 2008

After following these instructions my httpd spins out of control, repeatedly crashing every few seconds, even though it was minutes since I stopped trying to connect to the DAV server.

Apache/2.2.6 (installed with Darwin Ports on Mac OS X 10.5.2 connecting with Finder)

Comment by iconara, May 27, 2008

This is the message in apache's error_log:

child pid 16418 exit signal Segmentation fault (11)

Comment by project member, May 27, 2008

Thats a nasty one, and usually means PHP goes into some infinite or recursive loop..

Do you know for which method it goes wrong? Is it straight on the first propfind or does it happen in a later stage? I'll go and test this on my Mac as well, so far i've only tried it on Debian. I'm sure you are, but make sure your running it on a PHP version in the 5.2. range

Comment by iconara, Jun 6, 2008

Sorry, I didn't extract more info than that. The crash was so hard I wasn't keen on trying again...

I was running PHP 5.2.5 installed via MacPorts? (php5 @5.2.5_1+apache2+macosx+mysql5+sqlite).

Comment by, Jun 29, 2008

works like a charm here, php-5.2.6 on gentoo linux, with a windows client.

evertpot, will there be a set of hooks which will let me do some actions on a delete/get/put or something? or do i have to write/extend my own driver for such things?

Comment by project member, Jun 29, 2008

Hi Stephan,

To extend the webdav service with your own business logic, you have 2 choices. You can extend the Tree class, which basically gives you a method for every operation, or you can use the ObjectTree? and create your own File and Directory classes.

An example of how this is done can be seen in the FS/ directory.

Comment by iconara, Jul 1, 2008

The latest version (0.3.118) fixes the segmentation faults I was having.

Comment by iconara, Jul 1, 2008

A comment on the instructions: "This is how the file should look like" refers to a file that has not previously been mentioned. Perhaps it should be clarified which file this is, where it should be located, etc.

I have assumed that this is the script that is going to respond to the request and that it can be located anywhere as long as the paths to the various directories and SabreDAV code are right, but it is not at all clear and the current wording is confusing (cut and pasted from a longer description perhaps?).

Apart from that the instructions on this page are simple and give you just enough to get you started.

Comment by project member, Jul 1, 2008

Glad the segmentation fault was fixed.. I'll be updating the docs shortly as well, it does actually seem like part of the documenation is missing altogether..

Comment by project member, Jul 1, 2008

Made some updates to this page based on the suggestions. If anyone if you guys (theo or stephan) are interested in getting access and help out, please let me know! Very happy with you guys finding my mistakes :)

Comment by, Jul 28, 2008

I works perfectly. I tried to integrate it with my home made CMS and it works :) Unfortunately I had to change each require_once to get the right file. Did you think about any constant that would point to SabreDav? folder?

Comment by project member, Jul 28, 2008

Hey Risto,

Adding a constant is a bit uncommon, it is generally recommended to make sure the library is in your 'include_path' instead. Once you got that, everything should work out of the box.


Comment by, Jul 27, 2009

Suggested tools:

Wireshark for protocol debugging and the REST Client Firefox plugin for making custom HTTP requests.

Comment by, Oct 17, 2009

Maybe fiddler proxy can help when debugging: some hints are on

Comment by sudhirconscious, May 31, 2010

Hi, It works great. But i've a problem regarding using SabreDAV with Openconnector for outlook calendar sync. Can we do this...? If yes then could you please tell me how to do it. As i tried to connect with open connector, its being connected, but as i pass the url as HOME URI, in my case: http://localhost/SabreDAV/calendarserver.php/calendars/admin/, the open connector shows only a folder and no calendar files, as the files are under /admin/default/ directory, how to do it..?

Comment by project member, May 31, 2010

I've never tried using Openconnector. Perhaps you can try principals/admin instead of calendars/admin.

If you still have trouble, head over to the mailing list:

and start debugging with Charles HTTP Proxy.

Comment by, Jun 3, 2010

same problem as @sudhirconscious :(

Comment by, Aug 25, 2010

I installd Sabre_DAV, Sabre_CalDAV by pear, and got this error message.

Sabre_DAV_Exception_Forbidden? Requested uri (/dav/server.php) is out of base uri (/storage/content/66/102766/ 1.2.5

This is my baseurl in the webhotel: /storage/content/66/102766/

Webhotell call this root: /

My struktur of SabreDAV is after /public_html


Comment by project member, Aug 25, 2010

Mr. produktion,

The base uri is a uri, not a local path name. If you change the base uri to /dav/server.php/ you should be fine.


Comment by, Aug 25, 2010

Thanks! At least a new, error

Sabre_DAV_Exception_NotImplemented? GET is only implemented on File objects 1.2.5

Comment by project member, Aug 25, 2010

This is correct. You are doing a GET request on a directory. You could add the browser plugin to get directory indexes.

Head over to the mailing list if you have more questions =)

Comment by, Dec 20, 2010

Hi, a quick question, 'cause I really don't understand why $server->getRequestUri() is always empty

$rootDirectory = new Sabre_DAV_FS_Directory('public'); $server = new Sabre_DAV_Server($rootDirectory); $server->setBaseUri('/cad/sabreDAV/index.php/');

$browserPlugin = new Sabre_DAV_Browser_Plugin?();



Directory Structure:

/cad/sabreDAV/ here is index.php with server instantiation

/cad/sabreDAV/public Directory that I want to browse

Everything works fine, except that the browser plugin writes out

Index for /

Rather than Index for /public.


I appreciate any feedback.

Thank you, Davide

Comment by project member, Dec 20, 2010

requestUri returns the url, relative to the baseuri.

Comment by, Dec 20, 2010

Thanks for the reply but I can't get it...

If I see your online test example, I notice that it works perfectly.

Comment by project member, Dec 20, 2010

head over to the mailing list, and provide more detail there.

Comment by, Apr 9, 2011

This page should be updated to use non-deprecated APIs:


  • This Lock Manager is now deprecated. It has a bug that allows parent
  • collections to be deletes when children deeper in the tree are locked.
  • You are recommended to use either the PDO or the File backend instead.

Comment by project member, Apr 9, 2011

Fixed, thank you

Comment by, Apr 19, 2011

Hi Evert,

I followed the procedure you mentioned above. I am getting the following result in the browser:

<d:error> <s:exception>Sabre_DAV_Exception_NotImplemented?</s:exception> <s:message>GET is only implemented on File objects</s:message> <s:sabredav-version>1.4.2</s:sabredav-version> </d:error>

This is slightly different from your result shown in the procedure. Can you tell me whether my installation is correct or am I missing something ??


Sadan Masroor

Comment by, Apr 28, 2011

Hi Evert,

It is kindly requested to let me know that the result I am getting in my browser is as follows:


<s:exception>Sabre_DAV_Exception_NotImplemented?</s:exception> <s:message>GET is only implemented on File objects</s:message>

The above result is slightly different from the one you posted. Can you please let me know whether my installation is correct or not ?

Thank You

Sadan Masroor

Comment by project member, Apr 29, 2011

Yup this is correct. Things changed over time =)

Comment by, May 15, 2011

Hi Evert,

thanks for the great framework. As far as I understand, if I get this message, i should have sabredav installed successfully.

<d:error><s:exception>Sabre_DAV_Exception_NotImplemented?</s:exception><s:message>GET is only implemented on File objects</s:message><s:sabredav-version>1.4.3</s:sabredav-version></d:error>

But i can't connect via Mac OS X finder on my Snow Leopard. any ideas?

Comment by project member, May 15, 2011

No ideas right off the bat; try adding the Sabre_DAV_Browser_Plugin? and see if that works; if you still have issues, go to the mailing list.

Comment by, May 15, 2011

Hi Evert, thanks for you reply, I added Sabre_DAV_Browser_Plugin?, and find the problem is that I didn't set the right path for root directory.

Comment by, Feb 27, 2013


I have a problem I don't know how to modify the baseUri I can find the file where is it and this is my error

<d:error><s:exception>Sabre\DAV\Exception\NotFound?</s:exception><s:message>File with name public/TESTE could not be located</s:message><s:sabredav-version>1.8.2</s:sabredav-version></d:error>


Comment by project member, Feb 27, 2013

If you followed this tutorial, and you didn't just copy-paste the examples.. you should have come across the base url.. Change it there, it's very clear in the source code.

I will delete any follow-up questions, please head to the mailing list if you have any..

Comment by project member, Feb 27, 2013

Reading that last comment again, that's a lot ruder than I wanted to come across.. Sorry about that.

Powered by Google Project Hosting