MAMP: переменные среды, которые удаляются / заменяются между envvars и runtime

Использование MAMP + MAMP Pro 3.5 для локального развития. Используя файл envvars , я поставляю свой собственный PATH, который отличается от PATH для любого другого пользователя или цели. Давайте притворимся, что это /my/unique/custom/path .

Я разместил следующий файл на локальном сайте разработки:

 <ol> <li><?php print $_SERVER['PATH']; ?></li> <li><?php print $_ENV['PATH']; ?></li> <li><?php print exec('echo $PATH'); ?></li> </ol> 

И это результат:

  1. / Мой / уникальный / пользовательский / путь
  2. / Мой / уникальный / пользовательский / путь
  3. / USR / гну / бен: / USR / местные / бен: / бен: / USR / бен :.

Поэтому PHP видит, что переменная среды PATH должна быть моей, но почему-то она не используется для запуска команд.

Что может быть причиной этого? По-видимому, что №3 PATH – это путь по умолчанию для bash, если вы его не задали, я думаю? Что может заставить его получить или удалить или никогда не устанавливать, учитывая, что PHP правильно это видит?

ОБНОВЛЕНИЕ 1:

Выполнение print_r(shell_exec('env')) получает меня и ничего больше:

 __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0 PHP_FCGI_CHILDREN=4 PWD=/path/to/website/files SHLVL=1 PHP_FCGI_MAX_REQUESTS=200 _=/usr/bin/env 

Довольно голый. Похоже, что переменная $ _ является большой подсказкой, но я пока не знаю, что.

ОБНОВЛЕНИЕ 2:

Хорошо, так что это заканчивается тем, что голая среда в норме. Вот почему вы устанавливаете переменные среды в envvars в первую очередь. Но envvars явно работает, иначе этот путь не появится в $_SERVER . Итак, что-то происходит между временем envvars и временем запуска моего собственного кода.