Olá! Eu estou tendo o melhor tempo com isso. Eu quero terminá-lo para que eu possa começar a escrever um livro inspirador para as pessoas e outros sobreviventes de lesões cerebrais aqui e ali quando eu tiver tempo. Eu tenho uma lesão cerebral com perda de memória de curto prazo (como Dory de encontrar Nemo) de um acidente de carro quase fatal em 2007 e se recuperou muito bem. Não quero usar o Google Drive ou outras soluções em nuvem de propriedade de outras empresas, pois qualquer informação carregada em algo como o Google Drive pertence ao Google e eles podem redistribuir o que quiserem. De qualquer forma, eu divago.
Eu instalei o Nextcloud 12 no Apache e ele funciona muito bem! Eu gostaria de editar documentos ao vivo pelas razões acima. Seguindo as instruções em Documentação do Collabora CODE . Estou usando a imagem do Docker CODE (collabora / code). Eu começo a imagem com o código abaixo, conforme explicado na documentação. Eu tenho o apache rodando sem erros, pelo menos nenhum óbvio que eu tenha visto. Eu não vasculhei os logs, apenas procurei novos ao executar uma ação na próxima nuvem. Eu tenho o aplicativo Collabore Online instalado e configure o servidor on-line Collabora em Admin para https://127.0.0.1:9980. Quando eu vou para o Arquivo e tento abrir um novo documento previamente criado, ontem, em branco .odt, aparece um erro, mostrado no bloco abaixo.
A porta 9980 está aberta. O Selinux também está ligado, mas eu gostaria de continuar. Eu tentei muitas coisas ao longo da última semana ou duas aqui e ali quando eu tinha tempo. Não me lembro de tudo o que fiz, mas sei que tentei criar um arquivo do Docker personalizado para copiar os certificados antigos usados no certificado "Vamos criptografar" do meu site. Não me lembro se, em seguida, passei a variável env correta para impedir a criação do certificado autoassinado e usar aquele no sistema de arquivos, alguém conhece as etapas para fazer isso? Eu reverti isso de volta para usar o certificado autoassinado porque muitos tutoriais disponíveis usam o certificado autoassinado sem problema. Então talvez seja minha configuração especial? Com as manipulações cert que eu tentei, eu testei contra https://127.0.0.1:8890 com curl. Eu tenho executado em erro cURL 35 Encontrado fim do arquivo, e erro cURL 60 Certificado do par foi marcado como não confiável.
Alguém sabe como eu poderia usar o meu próprio certificado de criptografia do meu site no contêiner com êxito para o serviço loolwsl em execução dentro dele? Por favor, deixe-me saber se eu esqueci de mencionar qualquer coisa! Muito obrigado pela leitura e pela sua ajuda!
khamil8686
On the webpage
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
Technical details
Remote Address: 167.142.215.1
Request ID: WVOhwIY0d9yPqqbVbYLBaQAAAAI
Apache log message (same thing repeated several times)
[Thu Jun 29 07:09:25.542925 2017] [authz_core:error] [pid 23408] [client 167.142.215.1:14850] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
In the nextcloud log
{"reqId":"WVOhwIY0d9yPqqbVbYLBaQAAAAI","level":3,"time":"2017-06-28T12:32:00+00:00","remoteAddr":"167.142.215.1","user":"khamil8686","app":"richdocuments","method":"GET","url":"\/nextcloud\/index.php\/apps\/richdocuments\/index?fileId=641&requesttoken=xRmG6LQ%2BYOl01txmrtMSQ1OlqGsDB81OeVyWM5JAFTg%3D%3Asl3MrI1OI7w6mY1X5IpnJgLs4C9FX4YFEBXeQ6UvInk%3D","message":"Exception: {\"Exception\":\"GuzzleHttp\\Exception\\RequestException\",\"Message\":\"cURL error 60: Peer's certificate issuer has been marked as not trusted by the user.\",\"Code\":0,\"Trace\":\"#0 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/RequestFsm.php(103): GuzzleHttp\\Exception\\RequestException::wrapException(Object(GuzzleHttp\\Message\\Request), Object(GuzzleHttp\\Ring\\Exception\\RingException))\n#1 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/RequestFsm.php(132): GuzzleHttp\\RequestFsm->__invoke(Object(GuzzleHttp\\Transaction))\n#2 \\/var\\/www\\/nextcloud\\/3rdparty\\/react\\/promise\\/src\\/FulfilledPromise.php(25): GuzzleHttp\\RequestFsm->GuzzleHttp\\{closure}(Array)\n#3 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/ringphp\\/src\\/Future\\/CompletedFutureValue.php(55): React\\Promise\\FulfilledPromise->then(Object(Closure), NULL, NULL)\n#4 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/Message\\/FutureResponse.php(43): GuzzleHttp\\Ring\\Future\\CompletedFutureValue->then(Object(Closure), NULL, NULL)\n#5 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/RequestFsm.php(134): GuzzleHttp\\Message\\FutureResponse::proxy(Object(GuzzleHttp\\Ring\\Future\\CompletedFutureArray), Object(Closure))\n#6 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/Client.php(165): GuzzleHttp\\RequestFsm->__invoke(Object(GuzzleHttp\\Transaction))\n#7 \\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/Client.php(125): GuzzleHttp\\Client->send(Object(GuzzleHttp\\Message\\Request))\n#8 \\/var\\/www\\/nextcloud\\/lib\\/private\\/Http\\/Client\\/Client.php(138): GuzzleHttp\\Client->get('https:\\/\\/127.0.0...', Array)\n#9 \\/var\\/www\\/nextcloud\\/apps\\/richdocuments\\/lib\\/WOPI\\/DiscoveryManager.php(84): OC\\Http\\Client\\Client->get('https:\\/\\/127.0.0...')\n#10 \\/var\\/www\\/nextcloud\\/apps\\/richdocuments\\/lib\\/WOPI\\/Parser.php(41): OCA\\Richdocuments\\WOPI\\DiscoveryManager->get()\n#11 \\/var\\/www\\/nextcloud\\/apps\\/richdocuments\\/lib\\/TokenManager.php(117): OCA\\Richdocuments\\WOPI\\Parser->getUrlSrc('application\\/vnd...')\n#12 \\/var\\/www\\/nextcloud\\/apps\\/richdocuments\\/lib\\/Controller\\/DocumentController.php(108): OCA\\Richdocuments\\TokenManager->getToken(*** sensitive parameters replaced ***)\n#13 [internal function]: OCA\\Richdocuments\\Controller\\DocumentController->index('641')\n#14 \\/var\\/www\\/nextcloud\\/lib\\/private\\/AppFramework\\/Http\\/Dispatcher.php(160): call_user_func_array(Array, Array)\n#15 \\/var\\/www\\/nextcloud\\/lib\\/private\\/AppFramework\\/Http\\/Dispatcher.php(90): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Richdocuments\\Controller\\DocumentController), 'index')\n#16 \\/var\\/www\\/nextcloud\\/lib\\/private\\/AppFramework\\/App.php(114): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Richdocuments\\Controller\\DocumentController), 'index')\n#17 \\/var\\/www\\/nextcloud\\/lib\\/private\\/AppFramework\\/Routing\\/RouteActionHandler.php(47): OC\\AppFramework\\App::main('OCA\\\\Richdocumen...', 'index', Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\n#18 [internal function]: OC\\AppFramework\\Routing\\RouteActionHandler->__invoke(Array)\n#19 \\/var\\/www\\/nextcloud\\/lib\\/private\\/Route\\/Router.php(299): call_user_func(Object(OC\\AppFramework\\Routing\\RouteActionHandler), Array)\n#20 \\/var\\/www\\/nextcloud\\/lib\\/base.php(1000): OC\\Route\\Router->match('\\/apps\\/richdocum...')\n#21 \\/var\\/www\\/nextcloud\\/index.php(40): OC::handleRequest()\n#22 {main}\",\"File\":\"\\/var\\/www\\/nextcloud\\/3rdparty\\/guzzlehttp\\/guzzle\\/src\\/Exception\\/RequestException.php\",\"Line\":51}","userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"12.0.0.29"}
More readable nextcloud log from UI
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 103: GuzzleHttp\Exception\RequestException wrapException(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Ring\Exception\RingException))
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
/var/www/nextcloud/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
/var/www/nextcloud/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 134: GuzzleHttp\Message\FutureResponse proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - line 165: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - line 125: GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
/var/www/nextcloud/lib/private/Http/Client/Client.php - line 138: GuzzleHttp\Client->get('https //127.0.0...', Array)
/var/www/nextcloud/apps/richdocuments/lib/WOPI/DiscoveryManager.php - line 84: OC\Http\Client\Client->get('https //127.0.0...')
/var/www/nextcloud/apps/richdocuments/lib/WOPI/Parser.php - line 41: OCA\Richdocuments\WOPI\DiscoveryManager->get()
/var/www/nextcloud/apps/richdocuments/lib/TokenManager.php - line 117: OCA\Richdocuments\WOPI\Parser->getUrlSrc('application/vnd...')
/var/www/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php - line 108: OCA\Richdocuments\TokenManager->getToken(*** sensitive parameters replaced ***)
[internal function] OCA\Richdocuments\Controller\DocumentController->index('641')
/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 160: call_user_func_array(Array, Array)
/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 90: OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\Richdocuments\Controller\DocumentController), 'index')
/var/www/nextcloud/lib/private/AppFramework/App.php - line 114: OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\Richdocuments\Controller\DocumentController), 'index')
/var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OC\AppFramework\App main('OCA\Richdocumen...', 'index', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
[internal function] OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
/var/www/nextcloud/lib/private/Route/Router.php - line 299: call_user_func(Object(OC\AppFramework\Routing\RouteActionHandler), Array)
/var/www/nextcloud/lib/base.php - line 1000: OC\Route\Router->match('/apps/richdocum...')
/var/www/nextcloud/index.php - line 40: OC handleRequest()
{main}
To run the Collabora Online CODE Docker image
docker run -t -d -p 127.0.0.1:9980:9980 \
-e 'cert_domain=X\.com' \
-e 'username=admin' \
-e 'password=password' --restart always --cap-add MKNOD collabora/code
Apache Config - nextcloud.conf & collaboraonlineCODE.conf in conf.d
==> /etc/httpd/conf.d/nextcloud.conf
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
==> /etc/httpd/conf.d/collaboraonlineCODE.conf
ServerName collabora.X:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/X-0002/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/X.com-0002/chain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/X.com-0002/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-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# 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 nocanon
# 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