Deb10/apache install problem: blank gray page

I’m trying to get jitsi working on debian10/apache. I have followed the instructions at https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md

The server is NAT’d and I’m forwarding ports 80, 443 tcp, plus udp 10000:20000 (plus others that are unrelated to jitsi).

Problem:

I’m getting a blank gray screen when I go to the meet server (both via public IP and local IP.) It’s almost as if the javascript on the jitsi landing page isn’t running? I’m using Firefox, latest version (updated today) and have started the browser in safe mode to eliminate interference from plugins. Security in the browser is set to lowest level. (I get the same result in the Brave browser.)

I have set all of the logging parameters that I can find to DEBUG, but I don’t see anything interesting in the two logs that appear in /var/log/jitsi. Log level in apache is also set to “debug,” and I don’t see anything that looks like an error in the access or error logs in /var/log/apache2 (I have separate logs for this VirtualHost).

I’m looking for some clues here. I’ve deleted/purged all config and reinstalled with the same result.

I suppose you have tried another browser to eliminate browser configuration issues.
I have used the same installation instructions with almost the same setup you have used.
The only thing I did not use was NAT.
So maybe -if it is not too complex- you could disable NAT and try again?

I have also tried connecting locally, meaning using the machine’s internal IP address, from a browser on the same machine (Firefox.) I get the exact same result. For some reason that page is not loading.

Check the javascript log in the browser.

A very common error is a missing comma , after adding a configuration setting in a jitsi config.js .
The “js” config file must be javascript syntactically correct!

Making progress, but still can’t join a room. Here’s what I’ve found so far:

  1. server-side includes are not on by default in apache. Had to include mod_include, and use XBitHack directive in the VirtualHost. Also had to chmod u+x on all .html files in order that apache will use SSI on those files.

  2. In /usr/share/jitsi-meet/index.html, the “/config” reference must be changed, since no such file exists in the document root. I soft-linked /config to /etc/jitsi/meet/-config.js (Is this the correct way to do this?)

This gets me a little further; at least the page loads. I create a room and try to join it, and an error message is displayed “Something went wrong, we’re trying to fix this, reconnecting in 20 seconds…”

At the same time, in the apache log, I get the following error:

"missing directive name in parsed document: /usr/share/jitsi-meet/index.html

I’ve examined all the includes in index.html, and they appear valid. Unfortunately apache doesn’t give more info even at trace6 LogLevel.

Has anyone else seen this?

I have found the problem, but don’t know how to fix it. The line in <domain>-config.js:

muc: 'conference.<!--#echo var="subdomain" default="" -->my_domain'

…doesn’t get processed correctly as a server-side include. This causes a connection error. When I hard-code this line (remove the SSI) I can join the room.

Does anyone know how to get this to work correctly with apache?

I have already tried setting the js file executable – that doesn’t do it. Is there another way to use XBitHack (or some other setting) to get this line to expand properly?

1 Like

Were you able to solve it? I am facing the same problem with ubuntu 18.04
and apache2.
I followed your changes, but still grey screen is showed.

Thanks, Alejandro

There is something wrong with that setup muc: 'conference.<!--#echo var="subdomain" default="" -->my_domain' this is only available when running Nginx https://github.com/jitsi/jitsi-meet/blob/master/debian/jitsi-meet-web-config.postinst#L111
The replacement is done when Nginx is configured, otherwise that config is not added to config.js.

Thanks @damencho, any idea what should I put instead?
I am not using nginx. Just apache2 in a brand new ubuntu installation.

Should be https://github.com/jitsi/jitsi-meet/blob/master/config.js#L27 with your domain replaced.

Well, now it’s better. I can see the welcome blue page, and I can see a small video window by clicking on settings gear, but when click GO to start a new meeting it says:
“The requested URL was not found on this server.
Apache/2.4.18 (Ubuntu) Server at meet.example.com Port 443”
Then, I found in the directory: /usr/share/jitsi-meet-web-config/
a file named: jitsi-meet.example-apache

I replaced my file into the apache2/sites-available/ and adjusted the domain name and it almost worked.
I can see the wellcome page, I can launch a room with room name, jitsi logo, all the icons and controls, except that the mic and video buttons are greyed out.
The screen never shows video. The browser asks for allowing camera and mic but the jitsi video will not show my image. Also, I can see the camera led turned on, but no image is seen, nor sound is perceived.
As soon as I launch the room appears a message:
Some errors are shown in the browser console (I’ve tried several different browsers):
Looking a bit more, the first error is:

Failed to load resource (I replaced with example the real name):
https://meet.example.com/http-bind?room=ancientcemeteriesseizefurthermore
the server responded with a status of 500 (Internal Server Error)

Any idea where to begin to look for a solution?


The following errors are from safari:
[Error] 2020-07-16T20:42:36.019Z – “[features/analytics]” – Error: No analytics handlers created! — functions.js:111
Error: No analytics handlers created! — functions.js:111
error
i (app.bundle.min.js:126:2433)
i
(anonymous function) (app.bundle.min.js:1:40147)
promiseReactionJob
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (http-bind, line 0)
[Error] 2020-07-16T20:42:36.491Z – “[JitsiMeetJS.js]” – “UnhandledError: null” – “Script: null” – “Line: null” – “Column: null” – "StackTrace: " – Error: Strophe: request id 1.1 error 500 happened — strophe.util.js:109
Error: Strophe: request id 1.1 error 500 happened — strophe.util.js:109
error
s (lib-jitsi-meet.min.js:10:26585)
s
getGlobalOnErrorHandler (lib-jitsi-meet.min.js:17:94597)
(anonymous function) (app.bundle.min.js:1:54880)
callErrorHandler (lib-jitsi-meet.min.js:1:99121)
(anonymous function) (lib-jitsi-meet.min.js:17:12312)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange
[Error] 2020-07-16T20:42:36.491Z – “[modules/xmpp/strophe.util.js]” – “Strophe: request id 1.1 error 500 happened”
error
s (lib-jitsi-meet.min.js:10:26585)
s
(anonymous function) (lib-jitsi-meet.min.js:17:12334)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (http-bind, line 0)
[Error] 2020-07-16T20:42:36.921Z – “[JitsiMeetJS.js]” – “UnhandledError: null” – “Script: null” – “Line: null” – “Column: null” – "StackTrace: " – Error: Strophe: request id 2.2 error 500 happened — strophe.util.js:109
Error: Strophe: request id 2.2 error 500 happened — strophe.util.js:109
error
s (lib-jitsi-meet.min.js:10:26585)
s
getGlobalOnErrorHandler (lib-jitsi-meet.min.js:17:94597)
(anonymous function) (app.bundle.min.js:1:54880)
callErrorHandler (lib-jitsi-meet.min.js:1:99121)
(anonymous function) (lib-jitsi-meet.min.js:17:12312)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange
[Error] 2020-07-16T20:42:36.921Z – “[modules/xmpp/strophe.util.js]” – “Strophe: request id 2.2 error 500 happened”
error
s (lib-jitsi-meet.min.js:10:26585)
s
(anonymous function) (lib-jitsi-meet.min.js:17:12334)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (http-bind, line 0)
[Error] 2020-07-16T20:42:45.456Z – “[JitsiMeetJS.js]” – “UnhandledError: null” – “Script: null” – “Line: null” – “Column: null” – "StackTrace: " – Error: Strophe: request id 3.3 error 500 happened — strophe.util.js:109
Error: Strophe: request id 3.3 error 500 happened — strophe.util.js:109
error
s (lib-jitsi-meet.min.js:10:26585)
s
getGlobalOnErrorHandler (lib-jitsi-meet.min.js:17:94597)
(anonymous function) (app.bundle.min.js:1:54880)
callErrorHandler (lib-jitsi-meet.min.js:1:99121)
(anonymous function) (lib-jitsi-meet.min.js:17:12312)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange
[Error] 2020-07-16T20:42:45.457Z – “[modules/xmpp/strophe.util.js]” – “Strophe: request id 3.3 error 500 happened”
error
s (lib-jitsi-meet.min.js:10:26585)
s
(anonymous function) (lib-jitsi-meet.min.js:17:12334)
error (lib-jitsi-meet.min.js:1:22630)
_onRequestStateChange (lib-jitsi-meet.min.js:1:54095)
_onRequestStateChange
bound _onRequestStateChange

Check prosody logs.

Ok @damencho!

This is the prosody.err:

Jul 15 20:49:26 modulemanager error Unable to load module ‘storage_memory’: /usr/lib/prosody/modules/mod_storage_memory.lua: No such file or directory
Jul 15 20:49:26 storagemanager error Failed to load storage driver plugin memory on conference.meet.alela.com: /usr/lib/prosody/modules/mod_storage_memory.lua: No such file or directory

This file is not present: /usr/lib/prosody/modules/mod_storage_memory.lua

ls /usr/lib/prosody/modules/mod_storage_*
/usr/lib/prosody/modules/mod_storage_internal.lua
/usr/lib/prosody/modules/mod_storage_none.lua
/usr/lib/prosody/modules/mod_storage_sql.lua

should I run:
/var/lib/dpkg/info/jitsi-meet-prosody.postinst ?

This is the prosody.log:
Jul 15 22:14:17 conference.meet.alela.com:muc_domain_mapper warn Session filters applied
Jul 15 22:14:17 c2s1f198e0 info Client connected
Jul 15 22:14:17 c2s1f198e0 info Client disconnected: ssl handshake failed

Finally I saw that I did not enable 2 apache2 modules:
proxy_html
and
proxy_http
With those enabled, everything worked!