How to solve "[crit] [client xxx.xxx.xxx.xxx]
(13)Permission denied: /var/lib/ejabberd/.htaccess pcfg_openfile:
unable to check htaccess file, ensure it is readable, referer:
http://jabber.mydomain.com/" - Error Cause and Solution
While configuring
JWchat domain, I've come across around an
error:
pcfg_openfile: unable to check htaccess file, ensure it is
readable
The exact error I got in
/var/log/apache2/error.log looked
like so:
[crit] [client xxx.xxx.xxx.xxx] (13)Permission denied:
/var/lib/ejabberd/.htaccess pcfg_openfile: unable to check htaccess
file, ensure it is readable, referer:
http://jabber.mydomain.com/
The error message suggested
/var/lib/ejabberd/.htaccess - is
missing or not readable, however after checking i've seen
.htaccess</> existed as well as was readable:
debian:~# ls -al /var/lib/ejabberd/.htaccess
-rw-r--r-- 1 www-data www-data 114 2012-01-05 07:44
/var/lib/ejabberd/.htaccess
At first glimpse it seems like the message is misleading and not
true, however when I switched to www-data user (the user
with which Apache runs on Debian), I've figured out the error
meaning of unreadability is exactly correct:
www-data@debian:$ ls -al /var/lib/ejabberd/.htaccess
ls: cannot access /var/lib/ejabberd/.htaccess: Permission
denied
This permission denied was quite strange, especially when
considering the .htaccess is readable for all users:
debian:~# ls -al /var/lib/ejabberd/.htaccess
-rw-r--r-- 1 www-data www-data 114 2012-01-05 07:44
/var/lib/ejabberd/.htaccess
After a thorough look on what might go wrong, thanksfully I've
figured it out. The all issues were caused by wrong permissions of
/var/lib/ejabberd/.htaccess .You can see below the
executable flag for all users (including apache's www-data) is
missing :
debian:/var/lib# ls -ld /var/lib/ejabberd/ drw-r--r-- 3
ejabberd ejabberd 4096 2012-01-05 07:45
/var/lib/ejabberd/
Solving the error, hence is as easy as adding +x flag to
/var/lib/ejabberd :
debian:/var/lib# chmod +x
/var/lib/ejabberd
Another way to fix the error is to chmod to 755 to the directory
which holds .htaccess:
From now onwards pcfg_openfile: unable to check htaccess file,
ensure it is readable err is no more ;)