【问题标题】:Where to install GlassFish on Linux?在 Linux 上的何处安装 GlassFish?
【发布时间】:2012-05-19 15:32:44
【问题描述】:

免责声明:我对 Linux 比较陌生。我曾讨论过将其放在 SuperUser 或 ServerFault 上,因为答案确实需要解释 Linux 作为一个系统(而不是特定的编程问题),但是从 Java 开发人员的角度来看,我对此很感兴趣,并且我认为这是一个特定的问题,因为我安装 GlassFish 的位置会极大地影响我的 Java 配置,并最终影响应用程序配置。更不用说在这些其他网站上发布这个问题可能不会引起 Java 开发人员的任何关注,尤其是系统管理员,他们可能对 Java 了解不够,无法充分权衡这一决定。

我正在尝试决定在哪里安装 GlassFish,在我看来,我(实际上)有 4 个可行的选择:

  • /opt/glassfish/
  • /usr/local/glassfish/
  • /home/myUsers/glassfish/(这是所有 OGS 文档在其示例中显示的内容)
  • /home/ogs/glassfish(作为自己的用户,类似于有时设置 Apache Web 服务器的方式)

我想知道每种方法的优点(考虑到 Linux 如何以不同方式处理这些目录的性质、FHS 等)和缺点是什么。

我了解到在opt/ 下安装它有安装/分区的好处。不过,我通常会在usr/local/ 上安装第 3 方软件,所以我不太确定这是一种策略。

Oracle GlassFish Server (OGS) 文档都展示了(但从不直接推荐)GlassFish 安装在您的主目录 (home/myUser/) 下。

再一次,我读到安装守护程序类型的服务是相当普遍的(这是我想象我将使用 GlassFish 作为 - 我启动它一次,它只作为他们自己的用户 (home/ogs/glassfish/) 进行日常维护或崩溃。

确定这个决定也受到我将如何使用 GlassFish 的影响,所以让我用一些限制条件来限定这个问题:

  • 我打算在同一台物理机上的 4 个虚拟机上部署 4 个 OGS 实例,并将它们集群到同一个域中(4 个服务器实例中的 1 个将是域的管理服务器)
  • 几个应用程序将同时部署到这个集群(所有 3 个非管理节点),并且应该 24/7/365 运行,除非它们崩溃(希望不会经常!)或者我需要维护或调整它们
  • 每个应用程序都非常大,我想用 real admin 来配置它们,而不是“基本”的基本设置,默认设置

如果这些信息不能提供足够具体的信息来帮助做出选择,请询问,我可以更具体。

我想,当一天结束时尘埃落定时,我正在(或多或少)寻找一个矩阵,其中四个目录选项(加上我省略的任何其他明显的选项)中的每一个都与它们的比较各自的优缺点。

【问题讨论】:

  • 物理位置从技术角度来看并没有什么不同,AFAIK,不知道为什么除了一些可能需要对访问权限进行微调。
  • 更有趣的问题是你为什么要使用 glassfish。
  • @bmargulies - 我想在玻璃鱼服务器上进行集群,而 tomcat 不适合耳朵

标签: java linux glassfish admin application-server


【解决方案1】:

您还可以选择使用 Linux 发行版的包管理系统来安装 Glassfish。例如,在 Ubuntu 上,您可以使用

安装它
sudo apt-get install glassfish-appserv

并让它安装到包所有者认为应该安装的任何位置。

我自己倾向于避开上述选项,因为我喜欢自行控制 Glassfish(或任何其他 Java 服务器/软件)的确切版本以及安装位置,但我只是想把它扔掉在那里,因为这是您可以做的事情之一。

现在对于您提供的各个选项:

/opt/glassfish/ 就我而言,这是首选选项。它将软件保存在常规 Linux 安装之外的单独目录中,并允许您提到的挂载和分区优势。

/usr/local/glassfish/ 我不太喜欢这个,因为 /usr/local 通常由使用发行版的包管理软件(apt/yum/etc)安装的第三方软件使用,并且在大多数发行版上都有 bin 等目录和 lib在它下面。在它下面放一个 glassfish 的目录,会显得格格不入。

此外,我更喜欢将系统目录与不使用发行版包管理工具的自定义软件分开。

/home/myUsers/glassfish/ , /home/ogs/glassfish

这2个,我不推荐。

它们只在大多数地方进行了描述,因为作者不想假设用户对这些盒子具有 root 访问权限,在这种情况下,主目录将是您唯一可以保证拥有的目录。如果您拥有该系统并正在管理它,则这些限制不适用。

请记住,主目录是针对特定用户的。我始终建议使用具有所需权限的个人用户帐户来管理服务器软件。将软件放在某人的主目录中意味着您要么

  1. 为需要管理 Glassfish 的每个人提供该用户帐户的密码
  2. 授予多个用户对特定用户主目录的读/写访问权限。

无论如何,这都不是好的系统管理策略。

这里没有太多关于 Java 的观点,但如果你问我,那就没有必要了。

【讨论】:

    【解决方案2】:

    关于之前的建议,仍然存在一些权衡:

    • 如果放置在 /opt 或 /usr/local 中,您将必须对这些目录具有读/写访问权限,这意味着您必须对框具有 root 访问权限。在某些环境(IT 控制平台)中,IT 不允许您拥有 root 访问权限。您必须将安装、修补和升级 GlassFish 二进制文件的责任委派给 IT。
    • 如果放置在 /opt 或 /usr/local 中,那么您还必须将域目录 (--domaindir) 放置在单独的位置,除非您希望它们由 root 拥有(不太可能)。这是在 Linux 上安装 GlassFish 2.x RPM 的默认设置。 GlassFish 3.x 没有安装 RPM(无论如何来自 Oracle),但您仍然可以将两者分开。这不是一个糟糕的权衡,但您应该了解一些事情。
      • 如果放置在“主目录”中,则您有权独立于 IT 升级核心二进制文件、安装补丁等。根据组织职责,这种方法有好有坏。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-30
      • 2019-02-10
      • 2016-07-30
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      相关资源
      最近更新 更多