#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:
- Убедитесь, что у вас установлен mod_env (обычно это так, но дважды проверьте это).
- Найдите
<VirtualHost>
для своего приложения и добавьтеSetEnv JSON_AUTH your_token_here
, а также множество других переменных аутентификации, которые вам нужно установить. - Перезагрузите Apache (
apachectl -k graceful
или через init.d). - Считайте переменные с помощью
$jsonAuth = apache_getenv('JSON_AUTH');
.
Комментарии:
1. Имейте в виду возможность просто установить всю строку JSON в качестве переменной среды и прочитать ее с помощью чего-то подобного
json_decode(apache_getenv('JSON_AUTH'));
в вашем приложении. В зависимости от того, насколько сложной или большой становится эта строка, это может быть проще, чем отдельно устанавливать aSetEnv
для каждой переменной из учетных данных. Это полностью зависит от вас.2. Спасибо. Когда вы говорите найти <VirtualHost> — вы имеете в виду редактирование моего конфигурационного файла Apache? и добавить SetEnv JSON_AUTH your_token_here в конфигурационный файл между <VirtualHost></VirtualHost>? «your_token_here» — это относится к моему объекту JSON?
3. Точно.
your_token_here
был просто примером заполнителя. Вы можете вставить туда весь JSON. Просто убедитесь, что вы правильно экранируете все. Я не большой поклонник base64-кодирования всего, что предлагается другими, потому что это значительно усложняет отладку и управление версиями. Кроме того, вы бы ничему не научились, уклоняясь от работы ;).