Встановлення змінних середовища для доступу до PHP при використанні Apache


104

У мене є середовище Linux і у мене є веб-додаток PHP, яке умовно запускається на основі змінних оточуючих середовищ, що використовуються getenvв PHP. Мені потрібно знати, як ці змінні середовища потрібно встановити, щоб програма працювала правильно. Я не впевнений, як це налаштувати на Apache.

Також мені потрібно мати можливість налаштувати окремі змінні середовища для кожного домену окремо.

Прошу поради, як я можу цього досягти.


Відповіді:


159

Щось уздовж:

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

3
не було в моїй $ _ENV масиву, для retreiving значення см: stackoverflow.com/questions/2378871 / ...
i_a

Велике спасибі!
Омран Шагуей

4
@i_a ви можете отримати доступ до значення в PHP за допомогоюgetenv('VARIABLE_NAME')
BeetleJuice

у xampp на windows файл буде C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
гній

@i_a На моїй машині значення також можна знайти в $_SERVERзмінній.
robsch

28

Ви також можете це зробити у файлі .htaccess, якщо вони включені на веб-сайті.

SetEnv KOHANA_ENV production

Було б все, що вам потрібно додати до .htaccess, щоб додати змінну середовища


Чи це чим відрізняється від використання .env-файлу, такого як спосіб це робить laravel? Чи робить це будь-який спосіб менш безпечним? Я запитую це, тому що я будую ту саму структуру бекенда з декількома рамками (laravel, express, django тощо), а деякі розробники цих інших мов кажуть, що "невідповідно використовувати .env і що" конфігурація сервера "повинна бути використовується замість цього, або роблячи це через командний рядок, стиль
heroku

8

Неймовірно, але в httpd 2.2 на centos 6.4 це працює.

Експорт Env vars в /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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.