私のUbuntuコンピュータで環境変数を設定しようとしています。今、私はいくつかの研究を行い、Ubuntuで環境変数を設定するこの質問のアプローチを試しました。
同様の質問ですが、問題は、私の変数を含めるために「etc/enviroment」、「etc/profile」、および「etc/bash.bashrc」ファイルを作成したことです。
JAVA_HOME=/home/glv/information/jdk1.6.0_25/
export JAVA_HOME
BASEDIR=/home/glv/apache-tomcat-6.0.29/
export BASEDIR
しかし、問題は、Apacheでstart.shを実行すると、BASEDIR環境変数がまだ正しく設定されていないというメッセージが表示され、私が理解したのはJAVA_HOMEも正しくないことです。私は最新のUbuntuを使用していますが、これが問題なのか、それとも問題を解決するために別の対策を講じる必要があるのかわかりません。どんな助けでも大変感謝します。
答え1
UbuntuのApacheはにあるApache initスクリプトを使用して実行されます/etc/init.d/apache2
。このスクリプトは、次のコマンドを使用してApacheを起動および停止したときに実行されます。
> sudo service apache2 [start|stop|restart|graceful|etc...]
このinitスクリプトを見ると、まずファイルから環境変数を読み、環境が設定され変更されていることがわかります/etc/apache2/envvars
。 Apache のサーバープロセスは seteuid 実行可能ファイルなので、「有効なユーザー ID」を使用して実行できるため、これらの個別の環境が重要です。私のUbuntuシステムでは、rootユーザーがプロセスを開始しても、Apacheプロセスはユーザー名 "www-data"で実行されます。これは「システムアカウント」なので、デフォルトのシェルまたはbash環境はなく、ユーザー環境を設定するためにファイルを使用しません。
だからあなたがしたいことは、これらの環境変数を/etc/apache2/envvars
。
修正する:
UbuntuのApacheには、実行中のApache環境を変更するためにも使用できる複数の.confファイル(/etc/apache2/およびサブディレクトリにあります)があります。設定ファイルは順次解析され、すべて基本設定ファイルに含まれます/etc/apache2/apache2.conf
。
このconfファイルには次のものがあります環境設定環境を修正します。それからあなたはこの環境があなたが望む環境であることを確信するでしょう。たとえば、次を追加できます/etc/apache2/httpd.conf
。
SetEnv JAVA_HOME /home/glv/information/jdk1.6.0_25/