我有一个在Windows环境中运行的java Web应用程序,我想将其移动到Ubuntu系统。 在Windows中,我使用环境变量来存储主路径:
MAIN_PATH=C:\test
此变量在许多配置文件中以及应用程序中使用,例如:
的示例:
tomcat config
<Host name="localhost" appBase="${MAIN_PATH}/webapps" unpackWARs="true" autoDeploy="true">
apache virtualhost
<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全局环境变量?
答案 0 :(得分:0)
你检查过ubuntu / linux文件吗?这很简单。
请参阅:https://help.ubuntu.com/community/EnvironmentVariables
这对我很有用。
答案 1 :(得分:0)
我建议您为应用程序的每个层分别保持环境变量。例如,似乎将所有内容放在一个地方是有意义的,但我觉得共享Apache和Tomcat的配置目录并不是一个好设计。两者都具有配置文件的标准位置(例如,$CATALINA_HOME/conf
)。
我不认为你在Apache上使用log4j,所以为什么要把它放在一个与Apache共享的自定义目录中。将它放在webapp内的conf文件夹中,或者放在前面提到的顶级conf目录中。也许你会在Tomcat上拥有多个webapp - 在这种情况下,在特定的webapp目录中记录配置文件会更有意义。
在流程中包含环境变量也更清晰。它们不会破坏全球环境变量。例如,当您启动Tomcat时,setenv.sh脚本会运行并为运行Tomcat的java进程设置所有环境变量。