Tor Stack Exchange is a question and answer site for researchers, developers, and users of Tor. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to experiment with running my blog as a hidden service. I am using debian on a vps to host my blog. I am using apache2 run as user www-data.

I had to chown /var/www/wordpress to debian-tor to get the private key and hostname created. This broke my clearnet facing blog so I chowned it back to www-data. How do I deal with the fact that both tor and my webserver want to own the webroot? I tried adding debian-tor to www-data group and vice versa but no luck. Sorry if my english is bad.


HiddenServiceDir /var/www/wordpress
HiddenServicePort 80

Apache listen port 80

tor log:

warn /var/www/wordpress is not owned by this user (debian-tor but by www-data) perhaps you are running tor as wrong user
warn error loading rendezvous service keys
err set_options() Bug: Acting on config options left us in a broken state
share|improve this question

The Tor Hidden Service dir should not be set to the same directory as your web root (it contains your private key among other things, which you don't want to serve up on your website)

Use a separate directory that is only accessible by your Tor user. Eg.

HiddenServiceDir /var/lib/tor/myblog/
HiddenServicePort 80

and then be sure to set some appropriate permissions:

chown -R debian-tor:debian-tor /var/lib/tor/myblog/
share|improve this answer
Thank you. I feel very stupid now for some reason I was thinking the HS dir had to be webroot. – uighur1984 Mar 23 '14 at 16:35
No worries; it happens. If this solved your problem don't forget to mark it as the answer so others will know that it worked. Thanks for using Tor.SE! – Sam Whited Mar 23 '14 at 17:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.