Apache使用時にPHPでアクセスするための環境変数の設定


104

Linux環境と、PHPで使用getenvする環境変数に基づいて条件付きで実行されるPHP Webアプリケーションがあります。アプリケーションが正しく機能するためには、これらの環境変数をどのように設定する必要があるかを知る必要があります。これをApacheに設定する方法がわかりません。

また、ドメインごとに個別の環境変数を個別に構成できるようにする必要があります。

どうすればこれを達成できるかアドバイスしてください。


回答:


159

線に沿った何か:

<VirtualHost hostname:80>
   ...
   SetEnv VARIABLE_NAME variable_value
   ...
</VirtualHost>

3
$ _ENV配列にありませんでした。値を取得するには、stackoverflow.com
questions / 2378871 /…を

どうもありがとうございました!
Omran Shagooj 2016年

4
@i_a次の方法でPHPの値にアクセスできますgetenv('VARIABLE_NAME')
BeetleJuice

Windowsのxamppでは、ファイルはC:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
Dung

@i_a私のマシンでは、値は$_SERVER変数にもあります。
robsch

28

ウェブサイトで有効になっている場合は、.htaccessファイルでこれを行うこともできます。

SetEnv KOHANA_ENV production

環境変数を追加するために.htaccessに追加する必要があるのはすべてです


これは、laravelがこれを行う方法などの.envファイルを使用することとは異なりますか?これにより、セキュリティが低下しますか?複数のフレームワーク(laravel、express、djangoなど)を使用して同じバックエンド構造を構築しており、他の言語の一部の開発者は.envを使用するのは適切ではなく、「サーバー構成」は代わりに使用するか、コマンドラインからherokuスタイルで実行
OzzyTheGiant

8

信じられないが、centos 6.4上のhttpd 2.2では、これは機能します。

環境変数をエクスポートする /etc/sysconfig/httpd

export mydocroot=/var/www/html

次に、単にこれを行います...

<VirtualHost *:80>
  DocumentRoot ${mydocroot}
</VirtualHost>

そして最後に...。

service httpd restart;

4

サーバーがUbuntuで、Apacheのバージョンが2.4の場合

サーバーのバージョン:Apache / 2.4.29(Ubuntu)

次に、「/ etc / apache2 / envvars」の場所に変数をエクスポートします。

以下の行のように、「/ etc / apache2 / envvars」に追加の行を追加する必要がありますexport GOROOT = / usr / local / go

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.