php based WebDAV server - can be used with any (e.g. free) hosting plans and via standard ports

  • That's really quite weird on Amazon's part. I can't help because I didn't have any problem signing up in the first place.

    You have me as an instance proof that it's at least possible, so perhaps it's worth persuing.
    I've found Amazon's customer service quite responsive, if only intermittently competent, in the past (if you can find their support form which they bury quite deep somewhere). Maybe you could ask them to help out?
  • Response from Amazon Payments:
    In order to use Amazon Payments, you must have a U.S.-based bank account and a U.S.-based mailing address. All transactions processed through Amazon Payments are conducted in U.S. Dollars at this time.

    International customers can use a credit card to make online purchases with Amazon Payments through payment links offered by third-party websites, but they cannot use any other features at this time.

    We do plan to add support for additional countries and currencies over time. Please check the Amazon Payments site for occasional updates. We apologize for any inconvenience this may cause.
    So maybe my next stop is Jungle Disk. However I certainly don't recall seeing a "payment link" - rather they specifically direct you to get an Amazon Payments account.
  • Toby: I've had a quick look back through my emails from Amazon and Jungledisk to see if they indicated what exact process I went through at the time, but they're not that enlightening. I'm think though that I didn't do anything at Amazon's site independent of the Jungledisk sign-up process; that is, I must have been redirected to Amazon directly by Jungledisk.

    Looking at, it says:

    All billing for Jungle Disk products and services is handled by
    After creating an account you will be forwarded to the Amazon Payments site to complete the transaction.
    I think I just followed on from that form, and all was OK. Sorry I can't be of more help.
  • Ok, WOW, do I wish that I had done that differently from step 1. Somehow instead of just clicking through the Jungle Disk sign-up, I had taken it into mind to first obtain an Amazon S3 account, and an Amazon Payments account. Or perhaps when I first clicked through the JD sign-up, I seriously misread things and went off on the wrong track.

    Finally I worked through the sign-up and found the link that took me to the JD "drive thru" version of Amazon Payments, where yeah, you just need a credit card.

    Thanks CB! You imparted sufficient belief that it must be possible.

    Zotero syncing is working fine now.
  • I tried installing on my webhost and everything seems fine. I can access: from my browser but when I try to connect zotero it says:
    "You don't have permission to access /zotero/webdav_server.php/zotero/ on the storage server. Please check your storage settings or contact your server administrator."
    I then tried logging in using a "normal" webdav client which works fine but I cannot store any files. I get a permission denied. All files/folders in the data directory are set to 777 in file permissions. Any ideas? :)
  • This is a great idea. But I do facing some problems.

    I have installed it and the "webdav_server.php" works then in Firefox. And then, I use BitKinex to access it as an Webdav. It connects, but I have to type the address without "http:".

    Then when it comes to Zotero, it said "The storage server did not accept the username and password you entered. Please check your storage settings or contact your server administrator."

    Anyone ideas? :)
  • Thanks for this method! It works brilliantly!
  • This is exactly what I have been looking for, but it still does not work for me. I installed it gave the data and zotero dir the chmod 777, but I still can't write on it. I can easily mount it from osx but no write access.

    Any suggestions?

  • When you verify the server (from the Zotero sync preference), does it say that it works? Also, make sure your directory hierarchy is set correctly. You may also wish to test it without the secure option first, just to see if it works.
  • Thanks for the suggestions, I tried it without htaccess, and have the hierarchy generated by the zip file. As I said, I can access it, as a webdav drive, but without write access.

    zotero tells me: "You don't have permission to access /xxxx/webdav_server.php/zotero/ on the WebDAV server. Please check your file sync settings or contact your server administrator."
  • Free Webdav services:

    I signed up at - it was totally easy and it works. Remains to be seen whether it remains free...
  • Do people have this working with 2.0 beta? Specifically 2.0b7.4?

  • Hi,
    sorry for not having posted to this thread for a while - my two babies (PhD and ..., well, my 'real' baby) needed a lot of attention lately.

    Here some answers:

    S3: I don't know if it is possible to connect to S3 with php (I guess it should be), but it would certainly require a major rewrite of this script and I am certain that I won't do that.

    For permission problems: note that you have to enter username and password in zotero even if you don't have htacess enabled. In this case, of course, it doesn't matter want you enter, but it seems that zotero needs something on these fields. So make sure you still enter something when testing without authentification.

    Re compatibility: I am using my installation of this script since sync preview version (1.5) and had no problem with the any zotero versions up to and including the current.

    Hope that helps.
  • I have the same problems with the finder. Finder in osx can't write on webdav server when it lacks locking support. Lock is something set to prevent double writing. Does anyone know how to set this in our case?
  • Hi,

    The implementation of locking in the webdav server in php was too complicated and not worth it as zotero doesn't require locking to work. My goal was to keep the script as straightforward as possible to keep maintenance low. This is not meant to be a full webdav implementation, but rather a stripped down version that works with zotero. Finder is probably not the only program not working with it, but it wasn't intended to be used with it in the first place.

    If zotero will ever require locking I guess I will have to look into it, but until this hopefully never occurring time, I won't make any changes.

    Have a look at the webdav server implementation in PEAR (which this here script is based upon). I am relatively sure that they didn't implement locking either (or not fully functionally), but I might well be wrong and it's all there. Either way, chances are that somebody changed the webdav pear package since I last had a look and it's now all in order.

    Good luck,
  • Thank you!
    Your script is great. I'd like to add lock support but I'll try it myself.
    Your work is the best webdav 'ready to go' on the net.

  • WOW! What a nice script, it worked out of the box... tried it with htacces, just works fine on the web browser.

    Then I tried it with my cellphone: I was able to upload/download files without being asked for any username/password.

    How come?

    Can you please assist?
  • Hi, just in case someone else faces the same problem as I did:
    At some web hosters, the ftp user is not the same as the php user. So if you upload the php scripts by ftp, their owner is the ftp user. In order to upload zotero files to the 'data' directory, this directory has to be owned by the php user. Otherwise you will get an error while trying to upload / sync files.
  • hi,
    got it working but have an additional request; Is it possible to change the default directory on my storage? now it is the /data/zotero folder. I would like to use some space outside the webspace.
    More would it be possible to have some kind of security?
  • Hi,

    @black coffee: This is odd and must have something to do with your hosting service and/or your .htaccess file. Authentication is not handled by my script so it is really your own responsibility to secure your storage according to your needs. (on a side note, my installation requests a username/password on my cell phone (iphone) as expected and consistently, on Safari, Opera, Atomic and WAP browsers)

    @thisquestion: no. it is not possible to use storage outside the webspace for this script. The purpose of this script is to provide a php bridge to your webspace, your request is exactly the opposite of what this script is intended to achieve. Depending on where this other 'space' is located, there might be a host of other ways of providing WebDAV access (for example, if the 'space' is on your home computer, you could install a webdav server). As for security: as indicated in the initial post of this thread, I am using and recommending to secure the folder where your script is located using an .htaccess file. This should provide the level of security needed for this (if you need more security you should probably use a different WebDAV server anyway).

    Hope this helped.
  • Looks like I am visiting an old topic, but one that has been helpful so far. I have all working almost correctly. Zotero syncs to my WebDav, no errors, however, it it sending zip files. Then I login at and click on the PDF it doesn't have a URL for me to download my file at. Is this related or something totally unrelated?
  • Attachments synced via WebDAV aren't currently accessible via the online library at
  • Oh...I guess I totally misunderstood. What is the purpose then of syncing attachments with WebDav?
  • WebDAV syncing can still keep them synced between multiple computers-- say a work computer and a home computer.

    It is also possible that the online library links will work in the future-- the limitations in Firefox that make ZIP files necessary on the WebDAV server have apparently been resolved as of Firefox 10 (not yet out), so there may come a day when the WebDAV-accessible files will be visible to But not yet.
  • edited October 27, 2011
    @gadietrich: you are experiencing totally normal and expected behaviour. I have also been planning for quite some time to write another program as a companion script for the phpZoteroWebDAV which would display the contents of the library on the same website that hosts the phpZoteroWebDAV script and allows download of the contents from the site. So that would also provide this functionality, albeit independent of (and thus not integrated with) (though using its API).

    As a workaround, you get use the following strategy to get to your files while away from your computer:
    - navigate to the library item of your interest on
    - look at the URL bar; you will find something like
    - the 8 character code at the end of the URL is the item key and should correspond with a zip file in your WebDAV
    - thus, navigate to your phpZoteroWebDAV location, e.g. (this is the URL that is displayed in the WebDAV section of the Sync tab in your zotero settings)
    - find, download it to your computer, and unzip it
    - the filenames will have the format TWFyeF9FbmdlbHNfMTg0OC5wZGY=%ZB64 - copy and paste this string up to (up not including) the last 5 characters (%ZB64) into a base64 decoding tool ( to get the original filename
    - rename the file accordingly and, voila, you're already done :P
    (NB: this method is only really feasible for attachments that consist of one or very few files (i.e. NOT web snap shots) since the decoding and renaming of the filenames would have to be done manually for every file)

    @ajlyon: I never thought that the zipping of attachments was due to a firefox limitation. rather, I always thought of it (and still do) as a rather obvious design decision of the zotero developers: remember that an attachment to an item is not always just a single file. In the case of snapshots of websites the attachment is a whole folder with a great number of individual files, so zipping them would make a lot of sense. Also, this is a very easy way to retain exact file names (a lot of WebDAV server implementations mess up Unicode characters in the file names) and time stamps of files (again, not all WebDAV server can successfully set/retain filestamps upon uploading or downloading). So putting all in a zip file makes a lot of sense and will continue to make a lot of sense even as Firefox evolves.
  • @krueschan - what ajlyon says about zips and syncing comes straight from Dan (who said this in a different thread).
  • No, krueschan's right here. I've said (unless I've misspoken) that the encoding of filenames within zips is due to a Firefox limitation, not the zipping itself, which is done for the reasons krueschan mentions. I may have mentioned that uncompressed syncing on WebDAV could happen someday, but it's pretty unlikely that we'll be working on that, for those same reasons.

    Files stored on WebDAV aren't accessible from because 1) it would require storing the synced WebDAV path, 2) all users who tried to access those files would have to have the credentials, and wouldn't have any way of knowing if they did, and, of course, 3) the files would be zipped. Even once the filename encoding goes away, that's all pretty unpleasant. As it is, when can provide a good experience (with guaranteed one-click access to a file), it does.
  • @Dan: can you elaborate on the encoding of filenames in zip files and/or point my to the relevant thread? I nearly just took this revival of this old thread as a motivation to write a quick wee script where users could enter their itemkey in a form field and then the zip would be unpacked and the files contained therein sent to the browser (basically a server side implementation of the workaround I have been talking about above), so any knowledge about filename encryption inside the zip files could prove critical. thanks.

    (on a side note: is it possible to move this whole thread to the "syncing" forum category? It's just that the thread and the php script discussed therein is still relevant for syncing but it's currently in the "2.0 (closed)" category which I assume not many folk are actively consulting for advice on syncing with newer versions of zotero. alternatively, I can start a new thread over there and link here. just let me know.)
  • Krueschan - can't you move the thread yourself? For me, I see a box for that on the left for threads I have started.
  • @adamsmith: I swear I looked there before and didn't find it... of course, you are right. thanks. it's now moved.
Sign In or Register to comment.