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.


Jawaban:


159

Sesuatu di sepanjang garis:

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

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


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;

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.