CollaboraOnline / richdocumentscode

Built-in CODE Server app
https://apps.nextcloud.com/apps/richdocumentscode
Apache License 2.0
119 stars 29 forks source link

NC 19 unable to Use Build in Code Server #26

Closed apg1980 closed 3 years ago

apg1980 commented 4 years ago

Describe the bug NC 19 stable with Collabora Online - Built in CODE Server throws errors in Apache error.log:

AH01071: Got error 'en(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 246' Nextcloud is displaying error: Connection to Documentserver lost. New or existing Documents arent opened, white screen appears (see log above).

Settings are correct to use internal CODE Server:

Unbenannt

To Reproduce Steps to reproduce the behavior:

  1. Klick New Document
  2. see Unbenannt2

Expected behavior Document is opening for editiing

Client details:

Server details

Operating system: Ubuntu 18.04 LTS

Web server: Apache2

Database: Postgresql

PHP version: PHP7.3-fpm

Nextcloud version: 19

Version of the richdocuments app 3.7.0

Version of Collabora Online 4.2.403

Logs #### Nextcloud log (data/nextcloud.log) ``` No entrys available ```
kendy commented 4 years ago

@apg1980: The fsockopen does not work initially because the AppImage hasn't started yet; if you are running Nextcloud inside a docker, could it be the same problem as I described above?

apg1980 commented 4 years ago

@apg1980: The fsockopen does not work initially because the AppImage hasn't started yet; if you are running Nextcloud inside a docker, could it be the same problem as I described above?

hi, this no no docker installation. native apache2, postgresql, php7.3-fpm on ubuntu 18.04 lts.

i have disabled ipv6 globaly on my ubuntu server, right now is no process started anymore.

juliusknorr commented 4 years ago

The issue is mainly based on that we currently assume in richdocuments and the autoconfiguration that Collabora always can be reached by the same domain/port from both the browser as well as the Nextcloud host.

For the autoconfiguration it should be possible to use a different wopi_url and wopi_url_public value in richdocuments, so wopi_url would be the internal one always pointing to localhost:80 while the wopi_url_public would use the existing determined public url localhost:8080.

Now regarding determining the actual port that apache is running on locally the only way I see would be to add this to the apache config of the docker container: UseCanonicalPhysicalPort On Using this, richdocuments can determine the server port that is used locally though $_SERVER['SERVER_PORT'].

Note that while this may work with using localhost, as soon as the user accesses though a different hostname, that is not available in the docker container this will break again. For that we could of course always use localhost:PORT for communication from Nextcloud to richdocumentscode in richdocuments.

eeintech commented 4 years ago

I'm on NC19 (beta channel) on uberspace.de and Collabora is not working. Is this the same problem as you face or is it another one?

[x@y nextcloud]$ apps/richdocumentscode/collabora/Collabora_Online.AppImage --appimage-extract-and-run /tmp/appimage_extracted_cbb6707971026979bec00564b6f16aac/AppRun: line 14: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory /tmp/appimage_extracted_cbb6707971026979bec00564b6f16aac/AppRun: line 14: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8) loolwsd: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by loolwsd) loolwsd: /lib64/libstdc++.so.6: versionCXXABI_1.3.9' not found (required by loolwsd) loolwsd: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by loolwsd)

@Ppedroo I also have the same issue but not sure where to go from there. Anyone?

apg1980 commented 4 years ago

Starting manually i get this, howto open the specific port?: sudo -u www-data "./Collabora_Online.AppImage" Failed to listen on Server port(s) (9982-9982). Exiting.

another try with: sudo -u www-data ./Collabora_Online.AppImage --appimage-extract-and-run Failed to run /tmp/appimage_extracted_cbb6707971026979bec00564b6f16aac/AppRun: Permission denied

btw www-data is the user under which apache2 and nextcloud as well is running.

apg1980 commented 4 years ago

DOcument COde is running, but while opening documents i get an white screen, so no editor is loadet. I tryed to open the the ip:9982 and i get an ok displayed. any ideas?

mr-gosh commented 4 years ago

DOcument COde is running, but while opening documents i get an white screen, so no editor is loadet. I tryed to open the the ip:9982 and i get an ok displayed. any ideas?

same here - i switched for testing once to the demo server and it works immediately - so its a problem with the mentioned built in CODE-Server - but I get a green checkmark if i select that one - but opening a document leads to the white page - without any log entries on my side :(

apg1980 commented 4 years ago

yes, apache error.log shows this: [Wed Jun 17 09:12:55.640305 2020] [proxy_fcgi:error] [pid 38982:tid 140143524550400] [client 10.10.20.10:41015] AH01071: Got error 'PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 187PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 249' but if i open :9982 in the browser i will get an "OK"

apg1980 commented 4 years ago

I gave it another test with the latest Build in Code Server Release 4.2.405

Apache Log: [Sun Jun 21 18:07:14.242858 2020] [proxy_fcgi:error] [pid 37996:tid 140326496818944] [client 10.10.20.10:40404] AH01071: Got error 'PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253PHP message: PHP Warning: fsockopen(): unable to connect to localhost:9982 (Connection refused) in /var/www/nextcloud/apps/richdocumentscode/proxy.php on line 253'

Nextclout Log after opening an Document: {"reqId":"Dzvvv1oQnNZ6HnSkiPgm","level":3,"time":"2020-06-21T18:07:40+02:00","remoteAddr":"79.250.148.227","user":"08598A5C-6FB6-450C-A152-628B33F56156","app":"richdocuments","method":"GET","url":"/apps/richdocuments/index?fileId=-1&requesttoken=91O9e2wo8oRZ%2FUGyZsmF7Mk2NjaEL8uGOqy1qtoK5u0%3D%3AuXzzUF1tgf0gtALKNKjIw4dgTnflZbjAcMHn0ohilZ4%3D","message":{"Exception":"Exception","Message":"","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":170,"function":"index","class":"OCA\\Richdocuments\\Controller\\DocumentController","type":"->","args":["-1",null]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":100,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Richdocuments\\Controller\\DocumentController"},"index"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Richdocuments\\Controller\\DocumentController"},"index"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Richdocuments\\Controller\\DocumentController","index",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"richdocuments.document.index"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"_route":"richdocuments.document.index"}]},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"_route":"richdocuments.document.index"}]},{"file":"/var/www/nextcloud/lib/base.php","line":1007,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/richdocuments/index"]},{"file":"/var/www/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php","Line":234,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0","version":"19.0.0.12","id":"5eef86e431aed"}

nursoda commented 4 years ago

I just tried to install the CODE app on NC19 on Arch. I also got "Couldn't connect to Collabora Online Server" (translated de→en) after approx. 60 sec timeout. Executing the AppImage ./Collabora_Online.AppImage --appimage-extract-and-run I got Warning: setlocale: LC_ALL: Cannot chance locale (C.UTF-8): file or directory not found Failed to listen on Server port(s) (9982-9982). Exiting.

Reading the IPv4 vs. IPv6 stuff, I remebered having switched off IPv6 at kernel level on my server. So I gave it a try and re-enabled it…and voilà – CODE up and running: Ready to accept connections on port 9982. @kendy Please make sure to detect which IP stacks are available. Not all systems do have IPv6 enabled. Or at least point out that it is as prerequisite.

apg1980 commented 4 years ago

I just tried to install the CODE app on NC19 on Arch. I also got "Couldn't connect to Collabora Online Server" (translated de→en) after approx. 60 sec timeout. Executing the AppImage ./Collabora_Online.AppImage --appimage-extract-and-run I got Warning: setlocale: LC_ALL: Cannot chance locale (C.UTF-8): file or directory not found Failed to listen on Server port(s) (9982-9982). Exiting.

Reading the IPv4 vs. IPv6 stuff, I remebered having switched off IPv6 at kernel level on my server. So I gave it a try and re-enabled it…and voilà – CODE up and running: Ready to accept connections on port 9982. @kendy Please make sure to detect which IP stacks are available. Not all systems do have IPv6 enabled. Or at least point out that it is as prerequisite.

Can you explain what habe you done regarding disabling the ipv6 stuff?

adrianmihalko commented 4 years ago

Still not working in a simple Nextcloud docker install.

version: '3'

services:

  db:
    image: mariadb
    container_name: nextcloud-mariadb
    networks:
      - nextcloud_network
    volumes:
      - db:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped

  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    networks:
      - nextcloud_network
    depends_on:
      - db
    volumes:
      - nextcloud:/var/www/html
      - ./app/config:/var/www/html/config
      - ./app/custom_apps:/var/www/html/custom_apps
      - ./app/data:/var/www/html/data
      - ./app/themes:/var/www/html/themes
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=nextcloud.
    restart: unless-stopped
    ports:
      - 380:80
      - 3443:443
volumes:
  nextcloud:
  db:

networks:
  nextcloud_network:
Screenshot 2020-06-22 at 07 44 01
nursoda commented 4 years ago

Can you explain what habe you done regarding disabling the ipv6 stuff?

Sure. I had added a kernel line ipv6.disable=1 to disable the whole stack.

apg1980 commented 4 years ago

Thank you, this is what i did before, but with ipv6 disabled, the loolwsd wasnt startet anymore. Is it possible the Collabora starts on an ipv4 stack?

apg1980 commented 4 years ago

Same Issue with Collabora Online - Built-in CODE Server (4.2.406)

mr-gosh commented 4 years ago

But you guys don't have the "mixed content" problem? richdocumentscode_

nursoda commented 4 years ago

Hmmmm, not sure. I cannot load the collabora editor app any longer, the webpage now displays Socket proxy error…Error: Timed out opening local socket: 110 - Connection timed out. In JS console, I see many warnings (most of which I deleted here), and these errors:

Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben
Content Security Policy: 'x-frame-options' wird wegen 'frame-ancestors'-Direktive ignoriert.
Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben
Content Security Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). content-hooks-frames.js:59:42
JQMIGRATE: Migrate is installed, version 1.4.1 jquery-migrate.min.js:2:551
Waiting for page to render… document.js:202:12
TypeError: window.getURLParameter is not a function document.js:431:18
PostMessageService.sendPostMessage parent loading postMessage.tsx:54:10
[getWopiUrl] https://test.server.de/index.php/apps/richdocuments/wopi/files/466737_oclzm82h65f9 url.js:39:9
Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben
Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben
[viewer] Received post message 
Object { msgId: "loading", args: undefined, deprecated: undefined }
files.js:446:10
[FilesAppIntegration] Adding header file actions FilesAppIntegration.js:189:10
Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben 2
Content Security Policy: "'unsafe-inline'" wird innerhalb von script-src oder style-src ignoriert: nonce-source oder hash-source angegeben
PostMessageService.sendPostMessage loolframe {"MessageId":"Host_PostmessageReady","SendTime":1592918065127,"Values":{}} postMessage.tsx:54:10
nextgen-networks commented 4 years ago

@nursoda: restart services or server might be a workaround - had similar issues after upgrading to 4.2.406 see #39

nursoda commented 4 years ago

Restarting nginx and php-fpm did not resolve it. I get "Built-in CODE server will be restarted shortly, please wait" … and "504 Gateway Time-out" within NC. I notice however that, after trying to load any collabora document, the systemctl restart takes looong (>60 sec instead of typical <1 sec), so there seem to be active sessions that do not terminate.

nursoda commented 4 years ago

@juliushaertl Thanks for the heads up concerning nginx config addition, but all my site configs did contain that already, and nginx and php-fpm had been restarted. The issues I faced were not related to these config changes.

apg1980 commented 4 years ago

Question: is it needet to configure additional settings in my apache configuration to use the ""Built-in CODE server"? For my understanding (documentation says nothing) there is no further setting necessary, just install an set the collabora app to the "Built-in CODE server" option. Unfurtunately i cannot use it with the today released version as well.

mr-gosh commented 4 years ago

After the last updates still the "mixed-content" problem - seems there are hard coded URLs that doesn't use httpS even if that is used for the rest of the application :cry: Blocked loading mixed active content “http://***********/custom_apps/richdocumentscode/proxy.php?req=/loleaflet/**************

ruedigerkupper commented 4 years ago

Confirming. I can in addition confirm that the current Nextcloud / Collabora-App does NOT work with:

  1. the built-in CODE server (app)
  2. a separate CODE server installed from the deb package (https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004)
  3. the European demo server for Collabora Online (located in Ireland, can be configured on the Nextcloud settings) So it appears that the Collabora app cannot talk to any current instance of Collabora Online.
ruedigerkupper commented 4 years ago

In the Nextcloud log, I see the following error message every time I try opening a document:

Doctrine\DBAL\Exception\InvalidFieldNameException: An exception occurred while executing 'INSERT INTO `oc_richdocuments_wopi`(`fileid`,`owner_uid`,`editor_uid`,`version`,`canwrite`,`server_host`,`token`,`expiry`,`template_destination`,`hide_download`,`direct`,`is_remote_token`,`template_id`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)' with params [20473114, "ruediger", "ruediger", 0, true, "https:\/\/rcloud.dynv6.net\/", "kdkhACqhjQr7DZKnUioTsWBmcRvu3BhU", 1595600845, 0, false, false, false, 0]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'hide_download' in 'field list'

(Ending: Column not found: 1054 Unknown column 'hide_download' in 'field list') So the app is referencing a non-existent column named hide_download in table oc_richdocuments_wopi.

alexjmccoy commented 4 years ago

I have a fresh NC 19 setup via Docker. I cannot use the built-in CODE server, but demo servers work fine. Under Settings > Administration > Collabora Online Development Edition I can select "Use the built-in CODE - Collabora Online Development Edition" and I get a green status light and the message, "Collabora Online server is reachable."

However, when I try to open any rich text document it fails to show up and I get the error message "Connection to server lost". Again, this works with the demo server just fine.

My Docker setup is brand new, is utilizing Redis and MariaDB.

ruedigerkupper commented 4 years ago

@alexjmccoy That's different from what I see, Hm, may I ask you three questions?

  1. Which demo server did you use?
  2. Looking at the Logs (can be shown from Nextcloud's settings page), do you see errors like I posted in my last comment?
  3. Do you get errors from the web server like shown in the original decription?
MrReSc commented 4 years ago

It's still not working for me either. As mentioned above, I also used docker for my NC. However, it does not work for me even with the demo server. With the built-in CODE server and the demo server a green tick appears.

When I try to open a document the following message appears: grafik Which means: "could not be loaded - please try again later".

The following appears in the log of the NC:

[richdocuments] Error: Doctrine\DBAL\Exception\InvalidFieldNameException: An exception occurred while executing 'INSERT INTO `oc_richdocuments_wopi`(`fileid`,`owner_uid`,`editor_uid`,`version`,`canwrite`,`server_host`,`token`,`expiry`,`template_destination`,`hide_download`,`direct`,`is_remote_token`,`template_id`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)' with params [21454, "admin", "admin", 0, true, "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", 1596030519, 0, false, false, false, 0]:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'template_id' in 'field list' at <<closure>>

 0. /var/www/html/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 169
    Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException("An exception oc ... '", Doctrine\DBAL\Dr ... ]})
 1. /var/www/html/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 145
    Doctrine\DBAL\DBALException::wrapException(Doctrine\DBAL\Driver\PDOMySql\Driver {}, Doctrine\DBAL\Dr ... ]}, "An exception oc ... '")
 2. /var/www/html/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php line 162
    Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Doctrine\DBAL\Driver\PDOMySql\Driver {}, Doctrine\DBAL\Dr ... ]}, "INSERT INTO `oc ... )", {1: 21454,2: "ad ... 0})
 3. /var/www/html/lib/public/AppFramework/Db/Mapper.php line 253
    Doctrine\DBAL\Statement->execute()
 4. /var/www/html/lib/public/AppFramework/Db/Mapper.php line 128
    OCP\AppFramework\Db\Mapper->execute("INSERT INTO `*P ... )", [21454,"admin"," ... 0])
 5. /var/www/html/custom_apps/richdocuments/lib/Db/WopiMapper.php line 89
    OCP\AppFramework\Db\Mapper->insert(OCA\Richdocuments\Db\Wopi {id: null})
 6. /var/www/html/custom_apps/richdocuments/lib/TokenManager.php line 205
    OCA\Richdocuments\Db\WopiMapper->generateFileToken("*** sensitive parameter replaced ***", "admin", "admin", "0", 1, "https://neuhauser.duckdns.org/", null, 0, false, false, false, 0, null)
 7. /var/www/html/custom_apps/richdocuments/lib/Controller/DocumentController.php line 245
    OCA\Richdocuments\TokenManager->getToken("*** sensitive parameters replaced ***")
 8. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 170
    OCA\Richdocuments\Controller\DocumentController->index("*** sensitive parameter replaced ***", null)
 9. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 100
    OC\AppFramework\Http\Dispatcher->executeController(OCA\Richdocument ... {}, "index")
10. /var/www/html/lib/private/AppFramework/App.php line 137
    OC\AppFramework\Http\Dispatcher->dispatch(OCA\Richdocument ... {}, "index")
11. /var/www/html/lib/private/AppFramework/Routing/RouteActionHandler.php line 47
    OC\AppFramework\App::main("OCA\\Richdocume ... r", "index", OC\AppFramework\ ... {}, {_route: "richdocuments.document.index"})
12. <<closure>>
    OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "richdocuments.document.index"})
13. /var/www/html/lib/private/Route/Router.php line 297
    call_user_func(OC\AppFramework\ ... {}, {_route: "richdocuments.document.index"})
14. /var/www/html/lib/base.php line 1007
    OC\Route\Router->match("/apps/richdocuments/index")
15. /var/www/html/index.php line 37
    OC::handleRequest()

GET /apps/richdocuments/index?fileId=21454&requesttoken=*** sensitive parameter replaced ***
from 172.18.0.1 by admin at 2020-07-29T13:18:39+00:00
ruedigerkupper commented 4 years ago

Interesting. That's a different column it's missing, compared to my install. (?)

ruedigerkupper commented 4 years ago

In any case, the Nextcloud app appears to be not fully informed about the Collabora database layout.

ruedigerkupper commented 4 years ago

@MrReSc and anyone seeing "Column not found" in the logs: It turned out that my problem had been caused by a missed or incomplete former update of the richdocuments app. How this happened, I don't know, but my SQL table was really missing that column (which should have been added by an upgrade of the app). Please see https://github.com/CollaboraOnline/richdocumentscode/issues/44#issuecomment-669105375 for a way to resolve this. Basically I manually removed all tables related to the richdocuments app AND removed the information that this app has ever been updated. Then I reinstalled the app. (The second step is important, if you skip it the tables will not be recreated on a reinstall.) Then I reinstalled the richdocuments app, which created new tables with the correct columns.

You will need to manipulate the SQL database from the command line. But see https://github.com/nextcloud/server/issues/5539 for a feature request for being able to do this via the GUI.

Terrox commented 4 years ago

I used to have Collabora installed as a docker image and it was working okay, but I've turned it off and shut down the subdomain. Trying to use built in server doesn't work. I get no Apache log error and no Nextcloud log error. I have CODE local app installed and Collabora App. I have fuse and fontconfig installed. I tried enabling IPV6. All I ever get is "Could not establish connection to the Collabora Online server." If I click a document I get "Failed to load Collabora Online - please try again later"

organicedkitchen commented 4 years ago

I got an issue as well. I used a proper office server (subdomain), then installed the CODE Server App in NC.

[richdocuments] Error: GuzzleHttp\Exception\RequestException: cURL error 51: SSL: no alternative certificate subject name matches target host name '192.168.178.86' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) at <>

  1. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php line 155 GuzzleHttp\Handler\CurlFactory::createRejection(GuzzleHttp\Handl ... l}, {errno: 51,error ... "})
  2. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php line 105 GuzzleHttp\Handler\CurlFactory::finishError(GuzzleHttp\Handler\CurlHandler {}, GuzzleHttp\Handl ... l}, GuzzleHttp\Handler\CurlFactory {})
  3. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php line 43 GuzzleHttp\Handler\CurlFactory::finish(GuzzleHttp\Handler\CurlHandler {}, GuzzleHttp\Handl ... l}, GuzzleHttp\Handler\CurlFactory {})
  4. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 28 GuzzleHttp\Handler\CurlHandler->__invoke(" sensitive parameter replaced ", " sensitive parameter replaced ")
  5. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/Proxy.php line 51 GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler{closure}(" sensitive parameters replaced ")
  6. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php line 37 GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler{closure}(" sensitive parameters replaced ")
  7. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 29 GuzzleHttp\PrepareBodyMiddleware->__invoke(" sensitive parameter replaced ", " sensitive parameter replaced ")
  8. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php line 70 GuzzleHttp\Middleware::GuzzleHttp{closure}(" sensitive parameters replaced ")
  9. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php line 59 GuzzleHttp\RedirectMiddleware->__invoke(" sensitive parameter replaced ", " sensitive parameter replaced ")
  10. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php line 71 GuzzleHttp\Middleware::GuzzleHttp{closure}(" sensitive parameters replaced ")
    1. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 361 GuzzleHttp\HandlerStack->__invoke(" sensitive parameter replaced ", " sensitive parameter replaced ")
    2. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 163 GuzzleHttp\Client->transfer(" sensitive parameter replaced ", " sensitive parameter replaced ")
    3. /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 183 GuzzleHttp\Client->requestAsync("get", GuzzleHttp\Psr7\Uri {}, {verify: "/mnt/n ... }})
    4. /var/www/nextcloud/lib/private/Http/Client/Client.php line 228 GuzzleHttp\Client->request("get", "https://192.168 ... y", {verify: "/mnt/n ... e})
    5. /var/www/nextcloud/apps/richdocuments/lib/WOPI/DiscoveryManager.php line 106 OC\Http\Client\Client->get("https://192.168 ... y", {timeout: 45,nex ... }})
    6. /var/www/nextcloud/apps/richdocuments/lib/WOPI/DiscoveryManager.php line 78 OCA\Richdocuments\WOPI\DiscoveryManager->fetchFromRemote()
    7. /var/www/nextcloud/apps/richdocuments/lib/WOPI/Parser.php line 41 OCA\Richdocuments\WOPI\DiscoveryManager->get()
    8. /var/www/nextcloud/apps/richdocuments/lib/TokenManager.php line 210 OCA\Richdocuments\WOPI\Parser->getUrlSrc("application/vnd ... t")
    9. /var/www/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php line 245 OCA\Richdocuments\TokenManager->getToken(" sensitive parameters replaced ")
    10. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 170 OCA\Richdocuments\Controller\DocumentController->index(" sensitive parameter replaced ", null)
    11. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 100 OC\AppFramework\Http\Dispatcher->executeController(OCA\Richdocument ... {}, "index")
    12. /var/www/nextcloud/lib/private/AppFramework/App.php line 137 OC\AppFramework\Http\Dispatcher->dispatch(OCA\Richdocument ... {}, "index")
    13. /var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php line 47 OC\AppFramework\App::main("OCA\Richdocume ... r", "index", OC\AppFramework\ ... {}, {_route: "richdocuments.document.index"})
    14. <> OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "richdocuments.document.index"})
    15. /var/www/nextcloud/lib/private/Route/Router.php line 297 call_user_func(OC\AppFramework\ ... {}, {_route: "richdocuments.document.index"})
    16. /var/www/nextcloud/lib/base.php line 1007 OC\Route\Router->match("/apps/richdocuments/index")
    17. /var/www/nextcloud/index.php line 37 OC::handleRequest()

GET /apps/richdocuments/index?fileId=32435&requesttoken=fwDEp2oMf%2BXNjNE%2Fj0Ep5Fzw7wDCS%2Fb4tO%2FQJ2somp0%3D%3AKTOXlABOS9K%2B26cG5gsGlj%2B3mlSsHJCK04KRVBpkwPo%3D from 192.168.178.59 by Admin at 2020-08-10T16:05:51+02:00

ruedigerkupper commented 4 years ago

@Terrox, @organicedkitchen Just to be sure, have you selected "use built-in CODE server" in the settings of the Collabora app?

Terrox commented 4 years ago

Disabling zlib output compression in PHP-FPM Other settings fixed it for me.

organicedkitchen commented 4 years ago

Yes, its selected. But it still says: "Es konnte keine Verbindung zum Collabora Online-Server hergestellt werden." (no connection)

ruedigerkupper commented 4 years ago

@organicedkitchen The error you get ("no alternative certificate subject name matches target host name '192.168.178.86'") indicates that the app tries to contact the CODE server through that IP, which is not associated to an SSL certificate. That is strange, I believe the app should use 'localhost' when addressing the built-in server.

ruedigerkupper commented 4 years ago

@organicedkitchen Have you ticked 'use canonical web root' in the app settings? If so, try deselecting it.

organicedkitchen commented 4 years ago

@organicedkitchen The error you get ("no alternative certificate subject name matches target host name '192.168.178.86'") indicates that the app tries to contact the CODE server through that IP, which is not associated to an SSL certificate. That is strange, I believe the app should use 'localhost' when addressing the built-in server.

Before i used a subdomain (office.xy.com) as server. Since I want to exclude access from outside, it decided to use the build in server. So what do i fill in as server adress? "Calonical Web Root" wasn't selected.

ruedigerkupper commented 4 years ago

When you have ticked 'use built in server' there shouldn't be any field for entering an address?

alexjmccoy commented 4 years ago

@alexjmccoy That's different from what I see, Hm, may I ask you three questions?

  1. Which demo server did you use?
  2. Looking at the Logs (can be shown from Nextcloud's settings page), do you see errors like I posted in my last comment?
  3. Do you get errors from the web server like shown in the original decription?
  1. I can use the California server and it works. Opening, editing docs, etc.
  2. I don't see any logs relevant to Collabora.
  3. Where should I check for these errors? I'm running the setup in Docker.
organicedkitchen commented 4 years ago

When you have ticked 'use built in server' there shouldn't be any field for entering an address?

there isn't. But when i go back to "use your own server" I see this:

https://192.168.178.86/apps/richdocumentscode/proxy.php?req=

ruedigerkupper commented 4 years ago

We are getting there ;-). Seems I was wrong assuming that NC uses 'localhost'. Your ptoblem seems to be that your server is missing a valid SSL certificate. Do you access your NC through http, or have set a browser exception? For a try: Leave the server entry as it is and select 'disable certificate check ('Zertifikatsüberprüfung deaktivieren'). Does that make a change?

organicedkitchen commented 4 years ago

We are getting there ;-). Seems I was wrong assuming that NC uses 'localhost'. Your ptoblem seems to be that your server is missing a valid SSL certificate. Do you access your NC through http, or have set a browser exception? For a try: Leave the server entry as it is and select 'disable certificate check ('Zertifikatsüberprüfung deaktivieren'). Does that make a change?

Doesn't make a change. The server has a ssl certificate for the subdomain. I acess through browser exeption or through its subdomain (which has a certificate). Do i need a dnsmaq server, which handles the dns?

ruedigerkupper commented 4 years ago

You have probably been accessing through the browser exception when you activated the built-in server. That's why NC thinks this is the right address. Select "use your own server" and change "192.168.178.86" to "office.xy.com" (the domain with the valid SSL certificate). You don't need an own DNS server, but the name must be resolvable by whatever DNS server you use. You can always put it into your server's /etc/hosts, if you want it resolved to the internal IP.

ruedigerkupper commented 4 years ago
  1. I can use the California server and it works. Opening, editing docs, etc.
  2. I don't see any logs relevant to Collabora.
  3. Where should I check for these errors? I'm running the setup in Docker.
  1. Since the test server is working, we can conclude that the Collabora app is working fine. So the problem must be with (a) the CODE app or (b) NC addressing a web server inside its own docker instance(?)
  2. That's strange.
  3. I'm afraid I never used docker. We need someone else to help. Is there a forum for NC inside docker? You might get better help there.
pascal-ts commented 4 years ago

I had the same issue but was able to fix it, so may this helps!

fresh and updated CentOS 8 vm, Nextcloud 19.0.1, Collabora 3.7.3 and CODE 4.2.602

executing ./Collabora_Online.AppImage manually in /var/www/html/nextcloud/apps/richdocumentscode/collabora/ did the trick. Within the Nextcloud settings I had to say "use your own server" and I used the option to not check the certificate, but that's fine for me.

Within the terminal netstat -ldp showed that port 9982 is listening but it looks like after a reboot it doesn't start automatically.

I had to edit /etc/rc.d/rc.local: vi /etc/rc.d/rc.local

and added this line to the end cd /var/www/html/nextcloud/apps/richdocumentscode/collabora/ | ./Collabora_Online.AppImage </dev/null &>/dev/null

afterwards made it executable: chmod +x /etc/rc.d/rc.local

now CODE is autmatically starting and it works like a charm

johanvandegriff commented 4 years ago

@pascal-ts Thanks so much! I was able to kill the process without rebooting, and also get it to run on startup using the crontab. Here's what I did for anyone interested:

First find the running collabora process.

sudo netstat -tulpn|grep 9982
tcp6       0      0 :::9982                 :::*                    LISTEN      7497/loolwsd

Then kill it using the pid from the last column, in this case 7497.

sudo kill 7497

Edit the crontab for the www-data user, or whatever user manages nextcloud for you.

sudo -u www-data crontab -e

Add this to the crontab:

@reboot /var/www/html/nextcloud/apps/richdocumentscode/collabora/Collabora_Online.AppImage

Then I opened a tmux session and manually ran the AppImage, but you could just reboot instead.

pascal-ts commented 4 years ago

@johanvandegriff nice!

I tried crontab but didn't execute it with the www-data (or apache in my case) user - that's probably why it didn't work for me... makes sense :) seems like both are suitable solutions for now.

P.S. I added </dev/null &>/dev/null at the end because after a reboot it would get stuck on the loading screen. I could still access it via SSH and everything works, but it froze when I checked the VM console because it actively executed the AppImage

your solution shouldn't lead to that issue I guess

Edit: just tried, it doesn't happen and works perfectly, thanks!

jacklenox commented 4 years ago

I was having the same problems but finally managed to get this working using the advice in @tgurr's comment above.

The crux of this issue seems to be that you need to get the Collabora_Online.AppImage executable running in apps/richdocumentscode/collabora.

If you can get this to run, then CODE should run successfully – although I did need to restart my box.

Also, note that the FUSE package in Debian 10 (and presumably derivatives like the latest versions of Ubuntu) is fuse2. So you need to install that and fontconfig.

I was also never able to get the CODE docker instance running. But, at last, I have CODE running and I'm happy. :)

Update: I didn't see the latest comments before posting this! :man_facepalming: But it looks like we're all on the same page now. :tada:

Update 2: My resolution is slightly different to the above. Having managed to get the AppImage to execute, I closed it, reset my box, and was then able to activate CODE through the Nextcloud settings interface.

domaximus commented 4 years ago

got the same issue, but i'm using the standard docker image which is running "NEXTCLOUD_VERSION=19.0.1"

the docker does not contain crontab it seems since i get the following error: docker exec -u www-data -it nextcloud crontab -e OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"crontab\": executable file not found in $PATH": unknown

any ideas how to fix this in docker?