Разработчику. Сборник рецептов PHP
Задавайте вопросы

Установка переменных окружения

Вернуться назад

Задача

Необходимо установить переменную окружения в сценарии или в настройках сервера. Установка переменных окружения в настройках сервера по принципу хост за хостом позволяет конфигурировать виртуальные хосты раздельно.

Решение

Для установки переменной окружения в сценарии применяется функция putenv():

putenv('ORACLE_SID=ORACLE'); // конфигурируем расширение oci

Функция SetEnv позволяет установить переменную окружения в файле Apache httpd.conf:

SetEnv DATABASE_PASSWORD password

Обсуждение

Преимущество определения переменных в файле httpd.conf состоит в том, что для них можно установить более строгие ограничения прав доступа на чтение, чем в сценарии PHP. Поскольку процессы веб-сервера должны иметь права на чтение файлов PHP, это в целом дает возможность другим пользователям системы просматривать эти файлы. Сохраняя пароли в файле httpd.conf, можно избежать размещения паролей в общедоступном файле. Кроме того, если есть несколько имен хостов, которые ассоциируются с одним и тем же корневым каталогом документов, то можно настроить сценарий так, чтобы его выполнение зависело от имени хоста.

Например, есть хосты members.example.com и guests.example.com. Версия для хоста members требует аутентификации и предоставляет пользователям дополнительные права доступа. Версия для хоста guests предоставляет ограниченный набор возможностей, но без аутентификации:

$version = $_ENV['SITE_VERSION'];

// перенаправляем на http://guest.example.com, если пользователю
// не удалось зарегистрироваться
if ('members' == $version) {
     if (!authenticate_user($_REQUEST['username'], $_REQUEST['password'])) {
          header('Location: http://guest.example.com/');
          exit;

     }

}

include_once "${version}_header"; // загружаем пользовательский заголовок

См. также

документацию по функции putenv() наhttp://www.php.net/putenv; информацию по установке переменных окружения в Apache на http://httpd.apache.org/docs/mod/mod_env.html.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования

Рейтинг Сайтов ДОСКИ.РУ