簡體   English   中英

Ubuntu Tomcat,Apache和Java中的環境變量

[英]Environment variables in Ubuntu Tomcat, Apache and Java

我有一個在Windows環境中運行的Java Web應用程序,我想將其移至Ubuntu系統。 在Windows中,我使用環境變量存儲主路徑:

MAIN_PATH=C:\test

此變量在許多配置文件和應用程序中使用,例如:

  • Apache和Tomcat配置文件
  • 應用程序日志記錄配置(log4j)
  • Java應用程序本身由System.getEnv(...)

例子:

Tomcat配置

 <Host name="localhost"  appBase="${MAIN_PATH}/webapps" unpackWARs="true" autoDeploy="true">

apache虛擬主機

<VirtualHost *:80>
    DocumentRoot "${MAIN_PATH}/www"
    ServerName testmain
    <Directory "${MAIN_PATH}/www">
...

我找不到在ubuntu中進行設置的方法,我嘗試了以下方法:

/etc/enviroment
/etc/profile

在/etc/init.d/tomcat7.sh中export MAIN_PATH=/opt/test

所有這些解決方案都行不通,或者僅滿足我的一項要求(僅在服務器配置中有效,而在應用程序中無效,反之亦然)。

有沒有像Windows全局環境變量可用於所有這些情況的?

您是否檢查過ubuntu / linux文檔? 這很簡單。

請參閱: https//help.ubuntu.com/community/EnvironmentVariables

這對我來說非常有效。

  • $ nano / etc / environment(或您要使用的任何文件編輯器)
  • 在文件中添加“ export MAIN_PATH = / opt / test”並保存
  • $ source / etc / environment
  • $ echo $ MAIN_PATH
  • 輸出:/ opt / test

我建議您將環境變量對於應用程序的每一層分開。 例如,將所有內容放在一個地方似乎很有意義,但我認為共享Apache和Tomcat的配置目錄並不是一個好設計。 兩者都有配置文件的標准位置(例如$CATALINA_HOME/conf )。

我不認為您在Apache上使用log4j,為什么還要將其放在與Apache共享的自定義目錄中。 將其放在您的Web應用程序內的conf文件夾中,或放在前面提到的頂級conf目錄中。 也許您將在Tomcat上擁有多個web應用程序-在這種情況下,在特定的webapp目錄中記錄配置文件更為有意義。

在流程中包含環境變量也更清潔。 它們不會影響全局環境變量。 例如,當您啟動Tomcat時,setenv.sh腳本將運行並僅針對運行Tomcat的Java進程設置所有環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM