2013-09-09 2 views
0

я поставил пользовательские переменные окружения в Debian с помощью следующей команды:, как получить доступ к переменному окружению с помощью PHP

$ export my_var=1 

Я хочу, чтобы прочитать это переменное значение с помощью PHP. Я пробовал:

echo getenv('my_var'); 

, если я позвоню код PHP из командной строки с помощью команды PHP это нормально, но когда я получить доступ к PHP код с помощью Apache это ничего не эхо.

Почему это так?

+0

Вы определили эту переменную в envvars apache? (предполагая, что вы используете apache как ваш веб-сервер) или только из командной строки? –

+0

только из командной строки. –

+1

В этом случае обновите конфигурационный файл apache envvars, чтобы установить его –

ответ

1

Это так, потому что ваша консоль имеет свой собственный контекст со своими переменными среды и Apache. Рассмотрим this ответ для установки переменных среды в apache.

0

Недавно я написал библиотеку, чтобы получить значения из переменных среды и проанализировать типы данных PHP. Эта библиотека может использоваться для синтаксического анализа переменных среды для типов данных PHP (например, для каста целых чисел, float, null, boolean), синтаксического анализа сложных структур данных, таких как строка JSON, и многое другое с вкладом commnunity.

Библиотека доступна здесь: https://github.com/jpcercal/environment

Поместите переменные среды в «/ и т.д./окружающей среды» и «/ и т.д./apache2/envvars», после перезагрузки сервера Apache и загрузить свои переменные окружения операционной системы:

# source /etc/environment 
# source /etc/apache2/envvars 

Если вы запускаете приложение с помощью командной строки в основном экспортировать переменные:

export YOUR_ENV_VARIABLE_NAME="yourValue" 

И в получить значения из переменной окружения (независимо от окружающей среды CLI, Apache, Nginx, PHP встроенный сервер и многое другое), чтобы сделать это:

<?php 
// ... 
require "vendor/autoload.php"; 
// ... 
var_dump(Cekurte\Environment\Environment::get("YOUR_ENV_VARIABLE_NAME")); 

Наслаждайтесь.