Menetapkan variabel lingkungan untuk mengakses di PHP saat menggunakan Apache

104

Saya memiliki lingkungan Linux dan saya memiliki Aplikasi Web PHP yang secara kondisional berjalan berdasarkan variabel lingkungan yang digunakan getenvdalam PHP. Saya perlu tahu bagaimana variabel lingkungan ini perlu disetel agar aplikasi berfungsi dengan benar. Saya tidak yakin bagaimana mengatur ini di Apache.

Selain itu, saya harus dapat mengonfigurasi variabel lingkungan terpisah untuk setiap domain secara terpisah.

Mohon nasihat tentang bagaimana saya bisa mencapai ini.

Abishek
sumber

Jawaban:

159

Sesuatu di sepanjang garis:

<VirtualHost hostname:80>
   ...
   SetEnv VARIABLE_NAME variable_value
   ...
</VirtualHost>
wroniasty
sumber
3
tidak ada dalam array $ _ENV saya, untuk mengambil nilai lihat: stackoverflow.com/questions/2378871/…
i_a
Terima kasih banyak!
Omran Shagooj
4
@i_a Anda dapat mengakses nilai dalam PHP dengangetenv('VARIABLE_NAME')
BeetleJuice
di xampp di windows, file tersebut akan menjadi C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
Dung
@i_a Di mesin saya, nilainya juga dapat ditemukan dalam $_SERVERvariabel.
robsch
28

Anda juga dapat melakukan ini dalam file .htaccess dengan asumsi mereka diaktifkan di situs web.

SetEnv KOHANA_ENV production

Anda hanya perlu menambahkan .htaccess untuk menambahkan variabel lingkungan

paquettg.dll
sumber
apakah ini berbeda dengan menggunakan file .env seperti cara laravel melakukannya? Apakah ini membuatnya kurang aman? Saya menanyakan ini karena saya sedang membangun struktur backend yang sama dengan beberapa kerangka kerja (laravel, express, django, dll.) Dan beberapa pengembang dari bahasa lain tersebut mengatakan 'tidak sesuai untuk menggunakan .env dan bahwa "konfigurasi server" harus digunakan sebagai gantinya, atau melakukannya melalui baris perintah, gaya heroku
OzzyTheGiant
8

Luar biasa, tetapi pada httpd 2.2 di centos 6.4 ini berfungsi.

Ekspor env vars dalam /etc/sysconfig/httpd

export mydocroot=/var/www/html

Maka cukup lakukan ini ...

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

Lalu akhirnya ....

service httpd restart;
danday74
sumber
4

Jika server Anda adalah Ubuntu dan versi Apache 2.4

Versi server: Apache / 2.4.29 (Ubuntu)

Kemudian Anda mengekspor variabel di lokasi "/ etc / apache2 / envvars".

Seperti baris di bawah ini, Anda perlu menambahkan baris ekstra di "/ etc / apache2 / envvars" export GOROOT = / usr / local / go

Sachin Raghav
sumber