J'ai une installation existante d'Ubuntu 16.04 avec nextcloud installée dans /var/www/cloud
(wordpress se trouve à la racine). Cela fonctionne bien depuis un moment maintenant, mais j'ai récemment découvert collabora comme une alternative à Google Docs et je veux VRAIMENT que cela fonctionne. Lorsque j'essaie d'ouvrir un document, le message d'erreur "Accès interdit" s'affiche. J'ai installé collabora conformément aux instructions trouvées ici
J'ai vérifié la sortie de lsof -i et je peux voir que le docker écoute sur 9980, a configuré l'URL dans Nextcloud et sans que je sache vraiment comment procéder pour résoudre ce problème. Si quelqu'un de la communauté pouvait me donner des conseils, ce serait génial. Quelques informations supplémentaires sont ci-dessous.
Entrées de Apache error.log situé dans/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
Version assainie de My Apache config pour le 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>
L'adresse de mon instance nextcloud est domain.com/cloud
sortie de lsof -i | grep docker Je pense que cela montre que le conteneur docker écoute le trafic de l'hôte local sur 9980 à envoyer au conteneur
docker-pr 1634 root 4u IPv4 19492 0t0 TCP localhost:9980 (LISTEN)
Théorie : J'ai une théorie que je devrai probablement configurer nextcloud à nouveau cette fois-ci avec nextcloud dans la racine Web et mon blog dans un dossier du webroot parce que la documentation me donne l'impression que nextcloud devrait se trouver sur sa propre machine avec son propre nom de domaine et que ce service se connecte à un sous-domaine de ce nom de domaine racine. donc le domain.com/cloud jette le tout pour une boucle
si quelqu'un pouvait me donner des conseils, j'apprécierais beaucoup, car nextcloud est un produit qui m'intéresse vraiment.
Cet article de Mike Griffen traite uniquement de cette question et semble être une solution simple.
Authz_core:error Client Denied by Server Configuration
...
mod_authz_core
a été introduit dans Apache2.3. Cela change la façon dont le contrôle d'accès est déclaréde:
Order allow, deny Allow from all
à:
Require all granted
Cela signifie que la configuration totale pour un répertoire est maintenant quelque chose comme:
<Directory /path/to/directory> Options FollowSymlinks AllowOverride none Require all granted </Directory>
Redémarrez Apache et tout fonctionnera correctement.