Установить файл json в качестве переменной среды

#php #environment-variables #centos7 #google-sheets-api

#php #переменные среды #centos7 #google-sheets-api

Вопрос:

Пожалуйста, не могли бы я получить пошаговые инструкции по настройке аутентификации.файл json в качестве переменной среды вместо того, чтобы иметь файл json в моем местоположении проекта, например:

 $jsonAuth = getenv('JSON_AUTH');
  

Запуск CentOS Linux 7.9.2009 с Apache

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить немного подробнее, что вы пытаетесь сделать, и что именно не работает?

Ответ №1:

В идеале вы хотите закодировать json в base 64. Это проще, так как base64 избавляется от печатаемых символов, которые необходимо экранировать. После этого вы можете выполнить следующее в PHP.:

 $jsonAuth = json_decode(base64_decode(getenv('JSON_AUTH')), true);
  

Ответ №2:

  1. Убедитесь, что у вас установлен mod_env (обычно это так, но дважды проверьте это).
  2. Найдите <VirtualHost> для своего приложения и добавьте SetEnv JSON_AUTH your_token_here , а также множество других переменных аутентификации, которые вам нужно установить.
  3. Перезагрузите Apache ( apachectl -k graceful или через init.d).
  4. Считайте переменные с помощью $jsonAuth = apache_getenv('JSON_AUTH'); .

Комментарии:

1. Имейте в виду возможность просто установить всю строку JSON в качестве переменной среды и прочитать ее с помощью чего-то подобного json_decode(apache_getenv('JSON_AUTH')); в вашем приложении. В зависимости от того, насколько сложной или большой становится эта строка, это может быть проще, чем отдельно устанавливать a SetEnv для каждой переменной из учетных данных. Это полностью зависит от вас.

2. Спасибо. Когда вы говорите найти <VirtualHost> — вы имеете в виду редактирование моего конфигурационного файла Apache? и добавить SetEnv JSON_AUTH your_token_here в конфигурационный файл между <VirtualHost></VirtualHost>? «your_token_here» — это относится к моему объекту JSON?

3. Точно. your_token_here был просто примером заполнителя. Вы можете вставить туда весь JSON. Просто убедитесь, что вы правильно экранируете все. Я не большой поклонник base64-кодирования всего, что предлагается другими, потому что это значительно усложняет отладку и управление версиями. Кроме того, вы бы ничему не научились, уклоняясь от работы ;).