Impostazione delle variabili di ambiente per l'accesso in PHP quando si utilizza Apache


104

Ho un ambiente Linux e ho un'applicazione Web PHP che funziona in modo condizionale in base alle variabili di ambiente che utilizzano getenvin PHP. Ho bisogno di sapere come devono essere impostate queste variabili di ambiente affinché l'applicazione funzioni correttamente. Non sono sicuro di come configurarlo su Apache.

Inoltre, devo essere in grado di configurare variabili di ambiente separate per ogni dominio separatamente.

Per favore consigli su come posso ottenere questo risultato.


Risposte:


159

Qualcosa sulla falsariga:

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

3
Non era nel mio $ _ENV array, per retreiving valore vedere: stackoverflow.com/questions/2378871/...
i_a

Grazie mille!
Omran Shagooj

4
@i_a puoi accedere al valore in PHP congetenv('VARIABLE_NAME')
BeetleJuice

in xampp su Windows il file sarà C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
Dung

@i_a Sulla mia macchina il valore si trova anche nella $_SERVERvariabile.
robsch il

28

Puoi anche farlo in un file .htaccess supponendo che siano abilitati sul sito web.

SetEnv KOHANA_ENV production

Sarebbe tutto ciò che devi aggiungere a un .htaccess per aggiungere la variabile d'ambiente


è diverso dall'usare un file .env come il modo in cui lo fa laravel? Questo lo rende in qualche modo meno sicuro? Lo chiedo perché sto costruendo la stessa struttura di backend con più framework (laravel, express, django, ecc.) E alcuni sviluppatori di questi altri linguaggi dicono che non è appropriato usare .env e che la "configurazione del server" dovrebbe essere usato invece, o farlo tramite la riga di comando, in stile
heroku

8

Incredibile, ma su httpd 2.2 su centos 6.4 funziona.

Esporta vars env in formato /etc/sysconfig/httpd

export mydocroot=/var/www/html

Quindi fallo semplicemente ...

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

Poi finalmente ...

service httpd restart;

4

Se il tuo server è Ubuntu e la versione di Apache è 2.4

Versione server: Apache / 2.4.29 (Ubuntu)

Quindi esporti le variabili nella posizione "/ etc / apache2 / envvars".

Proprio come questa riga sotto, devi aggiungere una riga extra in "/ etc / apache2 / envvars" export GOROOT = / usr / local / go

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.