Cannot access collabora after fresh install
I have an existing installation of Ubuntu 16.04 with nextcloud installed into /var/www/cloud
(wordpress is in the root). It's been running fine for a while now but I recently discovered collabora as an alternative to google docs and REALLY want this to work. When I try to open a document I receive an "Access Forbidden" error. I have installed collabora according to the instructions found here
I've checked the output of lsof -i and can see docker listening on 9980, Configured the URL in Nextcloud, and barehonestly I'm not really sure how to go about starting to troubleshoot this issue. If anyone from the community could give me some guidance that would be amazing. Some additional information is below.
Entries from apache error.log located in /var/log/apache2:
[Mon Jan 02 22:05:30.027625 2017] [authz_core:error] [pid 26396] [client <IPADDRESS>:54120] AH01630: client denied by server configuration: /var/www/html/cloud/data/.ocdata
[Mon Jan 02 22:05:32.314370 2017] [authz_core:error] [pid 3122] [client <IPADDRESS>:54123] AH01630: client denied by server configuration: /var/www/html/cloud/data/.ocdata
Sanitized version of My Apache config for the collabora vhost:
<VirtualHost *:443>
ServerName sub.domain.com:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA$
SSLHonorCipherOrder on
# Encoded slashes need to be allowed
AllowEncodedSlashes On
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws
# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
ServerAlias sub.domain.com
</VirtualHost>
The Address of my nextcloud instance is domain.com/cloud
output of lsof -i | grep docker I believe this shows the docker container is listening for traffic from the localhost on 9980 to send to the container
docker-pr 1634 root 4u IPv4 19492 0t0 TCP localhost:9980 (LISTEN)
Theory: I have a theory that I will probably need to setup nextcloud again this time with nextcloud being in the webroot and my blog being in a folder inside the webroot because the vibe I'm getting from the documentation is that nextcloud is expected to be on it's own machine with it's own Domain name and this service connect to a subdomain of that root domain name. so the domain.com/cloud is throwing the whole thing for a loop
if anyone could give me some guidance I would be greatly appreciative as nextcloud is a product I'm really interested in investing in.
Solution 1:
This post by Mike Griffen addresses just this issue,and it appears to be a simple solution.
Authz_core:error Client Denied by Server Configuration
...
mod_authz_core
was introduced in Apache2.3. This changes the way that access control is declaredfrom:
Order allow, deny Allow from all
to:
Require all granted
This means that the total configuration for a Directory is now something like:
<Directory /path/to/directory> Options FollowSymlinks AllowOverride none Require all granted </Directory>
Restart apache and it’ll all work nicely.