Jira§
注意
此操作方法使用 8.19.1 版本;其他版本可能具有不同的依赖项和选项。
要使用 Unit 运行 Atlassian Jira
使用 Java 语言模块安装 Unit。
安装 Jira 的 核心文件。在此,我们将其安装在 /path/to/app/;在配置中使用真实路径。
例如
$ cd /path/to/app/ $ curl https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.19.1.tar.gz -O -C - $ tar xzf atlassian-jira-core-8.19.1.tar.gz --strip-components 1
将 Jira 的第三方依赖项下载到 lib 子目录
$ cd lib/ $ curl https://github.com/mar0x/unit-transaction-init/releases/download/2.0/transaction-init-2.0.jar -O -C - $ curl https://repo1.maven.org/maven2/com/atomikos/atomikos-util/5.0.8/atomikos-util-5.0.8.jar -O -C - $ curl https://repo1.maven.org/maven2/com/atomikos/transactions-api/5.0.8/transactions-api-5.0.8.jar -O -C - $ curl https://repo1.maven.org/maven2/com/atomikos/transactions-jdbc/5.0.8/transactions-jdbc-5.0.8.jar -O -C - $ curl https://repo1.maven.org/maven2/com/atomikos/transactions-jta/5.0.8/transactions-jta-5.0.8.jar -O -C - $ curl https://repo1.maven.org/maven2/com/atomikos/transactions/5.0.8/transactions-5.0.8.jar -O -C - $ curl https://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1.jar -O -C - $ curl https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-jndi/11.0.6/jetty-jndi-10.0.6.jar -O -C - $ curl https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-plus/11.0.6/jetty-plus-10.0.6.jar -O -C - $ curl https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util/11.0.6/jetty-util-10.0.6.jar -O -C -
稍后,这些 .jar 文件将列在 Unit 配置的 classpath 选项中。
修补 Jira 配置,从 comp/env/UserTransaction 对象路径中删除 env。这可确保安装找到 UserTransaction 对象
$ cd /path/to/app/ $ sed -i 's#comp/env/UserTransaction#comp/UserTransaction#g' \ atlassian-jira/WEB-INF/classes/entityengine.xml
运行以下命令,以便 Unit 可以访问 应用目录
# chown -R unit:unit /path/to/app/
有关更多详细信息,包括权限,请参见安全检查清单。
接下来,组合Jira 配置(对working_directory和jira.home使用真实值)
{ "listeners": { "*:80": { "pass": "applications/jira" } }, "applications": { "jira": { "type": "java", "working_directory": "/path/to/app/", "webapp": "atlassian-jira", "options": [ "-Djava.awt.headless=true", "-Djavax.accessibility.assistive_technologies= ", "-Djira.home=/path/to/jira/home/", "-Dnginx.unit.context.listener=nginx.unit.TransactionInit", "-Xms1024m", "-Xmx1024m" ], "classpath": [ "lib/atomikos-util-5.0.8.jar", "lib/hsqldb-1.8.0.10.jar", "lib/jcl-over-slf4j-1.7.30.jar", "lib/jetty-jndi-10.0.6.jar", "lib/jetty-plus-10.0.6.jar", "lib/jetty-util-10.0.6.jar", "lib/jta-1.1.jar", "lib/log4j-1.2.17-atlassian-3.jar", "lib/slf4j-api-1.7.30.jar", "lib/slf4j-log4j12-1.7.30.jar", "lib/transaction-init-2.0.jar", "lib/transactions-5.0.8.jar", "lib/transactions-api-5.0.8.jar", "lib/transactions-jdbc-5.0.8.jar", "lib/transactions-jta-5.0.8.jar" ] } } }
有关详细信息,请参见Java 应用程序选项。
注意
由于 Jira 自身的限制,您无法在启动后在 Unit 中更新配置。
上传更新后的配置。假设上述 JSON 已添加到
config.json
# curl -X PUT --data-binary @config.json --unix-socket \ /path/to/control.unit.sock http://localhost/config/
成功更新后,应可在侦听器的 IP 地址和端口上使用 Jira。浏览至http://localhost/jira以在浏览器中继续设置