最近,我在http://guac-dev.org/手册中关注了Guacamole的安装说明。我的系统是Ubuntu 14.04。
首先,我安装了基本的必需依赖项:
$ 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
然后,我下载了guacamole-server-0.9.8.tar.gz
和guacamole-0.9.8.war
,并按照手册中的说明进行了安装:
$ 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
我创建了/etc/guacamole/guacamole.properties
,其中包含以下内容:
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
包含以下内容:
<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>
然后我重新启动了tomcat7和guacd:
$ /etc/init.d/tomcat7 restart
$ /etc/init.d/guacd restart
GUACAMOLE_HOME
环境变量为空:
$ echo $GUACAMOLE_HOME
.guacamole
和/home/<user>
中没有/var/lib/tomcat7/webapps/guacamole
目录。当我访问http://localhost:8080/guacamole
时,我输入了用户名&#34; wangx&#34;和密码&#34; wangxiang&#34;,显示无效登录。
我该如何解决这个问题?我应该在哪里找到guacamole.properties
和user-mapping.xml
文件?我做错了吗?
感谢您的关注。
答案 0 :(得分:8)
根据手册中的说明:
... $ mkdir /etc/guacamole
Guacamole不会自动从/etc/guacamole
读取。它将从GUACAMOLE_HOME
读取,但这不是环境变量 - 它是Guacamole配置目录的占位符,可以通过环境变量确定同名,但还有其他可能的位置。来自GUACAMOLE_HOME
description in the Guacamole manual:
GUACAMOLE_HOME
Guacamole默认从其自己的配置目录中读取文件,仅在找不到此目录时才使用类路径。找到此目录时,Guacamole将按顺序尝试:
- 系统属性
guacamole.home
中指定的目录。- 环境变量
GUACAMOLE_HOME
中指定的目录。- 目录
醇>.guacamole
,位于运行servlet容器的用户的主目录中。该目录在文档的其他地方将被称为
GUACAMOLE_HOME
。Guacamole使用
GUACAMOLE_HOME
作为guacamole.properties
等配置文件的主要搜索位置。 ...
您的guacamole.properties
和user-mapping.xml
看起来不错,但Guacamole无法找到这些文件,除非它们在GUACAMOLE_HOME
范围内。解决此问题的一种非常简单的方法是将Tomcat用户主目录中的.guacamole
符号链接到/etc/guacamole
。对于Ubuntu上的“tomcat7”包,Tomcat用户的主目录是/usr/share/tomcat7
:
$ ln -s /etc/guacamole/ /usr/share/tomcat7/.guacamole
或者,您可以创建.guacamole
目录,并创建指向guacamole.properties
的符号链接。由于您user-mapping.xml
中明确指定了guacamole.properties
的位置,因此您无需将其放在GUACAMOLE_HOME
中:
$ mkdir /usr/share/tomcat7/.guacamole
$ ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat7/.guacamole/
确保在进行这些更改后重新启动Tomcat,事情就应该开始了。