Recently, I was following installation instructions for Guacamole in the manual on http://guac-dev.org/. My system is Ubuntu 14.04.
First, I installed the basic required dependencies:
$ apt-get install -y apache2 libcairo2-dev libjpeg62-dev libpng12-dev libossp-uuid-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libpulse-dev libssl-dev libvorbis-dev maven tomcat7
$ apt-get install -y libvncserver-dev
Then, I downloaded guacamole-server-0.9.8.tar.gz
and guacamole-0.9.8.war
and installed them according to the instructions in the manual:
$ tar xf guacamole-server-0.9.8.tar.gz
$ cd guacamole-server-0.9.8
$ ./configure
$ make
$ make install
$ cp guacamole-0.9.8.war /var/lib/tomcat7/webapps/guacamole.war
$ mkdir /etc/guacamole
I created the /etc/guacamole/guacamole.properties
, containing the following:
guacd-hostname: localhost # although the guide says it should be guacd-host, but the example shown in http://guac-dev.org/doc/gug/configuring-guacamole.html is guacd-hostname
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
/etc/guacamole/user-mapping.xml
contains the following:
<user-mapping>
<authorize username="USERNAME" password="PASSWORD">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5901</param>
<param name="password">123456</param>
</authorize>
<authorize username="wangx" password="wangxiang">
<protocol>vnc</protocol>
<param name="hostname">192.168.1.111</param>
<param name="port">5901</param>
<param name="password">123456</param>
</authorize>
</user-mapping>
I then restarted tomcat7 and guacd:
$ /etc/init.d/tomcat7 restart
$ /etc/init.d/guacd restart
The GUACAMOLE_HOME
environment variable is empty:
$ echo $GUACAMOLE_HOME
There is no .guacamole
directory in /home/<user>
nor in /var/lib/tomcat7/webapps/guacamole
. When I visit the http://localhost:8080/guacamole
, I entered username "wangx" and password "wangxiang", it shows invalid login.
How can I solve this? Where should I locate the guacamole.properties
and user-mapping.xml
file? Did I do something wrong?
Thank you for your attention.
Guacamole will not automatically read from
/etc/guacamole
. It will read fromGUACAMOLE_HOME
, but this is not an environment variable - it is a placeholder for the Guacamole configuration directory which can be determined through an environment variable of the same name, but there are other possible locations. From theGUACAMOLE_HOME
description in the Guacamole manual:Your
guacamole.properties
anduser-mapping.xml
look fine, but Guacamole will not be able to find those files unless they are withinGUACAMOLE_HOME
. An extremely simple way to solve this would be to symbolically link.guacamole
within the Tomcat user's home directory to/etc/guacamole
. In the case of the "tomcat7" package on Ubuntu, the Tomcat user's home directory is/usr/share/tomcat7
:Alternatively, you could create the
.guacamole
directory, and make a symbolic link toguacamole.properties
instead. Since the location of youruser-mapping.xml
is explicitly specified within yourguacamole.properties
, you do not need to place it withinGUACAMOLE_HOME
:Be sure to restart Tomcat after you make these changes, and things should start working.