Как установить $ PATH в PHP? - PullRequest
       1

Как установить $ PATH в PHP?

8 голосов
/ 23 августа 2010

В настоящее время я работаю над своим собственным небольшим проектом, но у меня есть небольшая проблема: я хочу установить переменную среды $ PATH на ./bin, чтобы при использовании exec() и аналогичных функций он выполнял только поискдля двоичных файлов в этом каталоге (если я явно не укажу иное).

Я уже попробовал putenv(), который не будет работать, если у меня не включен безопасный режим, что я предпочел бы не делать;и я также попробовал apache_setenv(), но это тоже не сработало.

Есть ли другие решения, которые я мог бы попробовать?

(Я использую Linux-машину с PHP5.3.2)

Ответы [ 4 ]

6 голосов
/ 23 августа 2010

Если вы хотите установить его только при определенных обстоятельствах, вы можете сделать:

exec("PATH=/my/path ./bin");
4 голосов
/ 24 августа 2011

Способ изменения PATH, используемый apache в Mac OS X, описан здесь: http://lists.apple.com/archives/macos-x-server/2008/Sep/msg00433.html

Как указано в этом посте:

[A] и следующеетекст в [файл /System/Library/LaunchDaemons/org.apache.httpd.plist] в пятой строке:

<key>EnvironmentVariables</key> 
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin</ string>
</dict>

Подробнее о синтаксисе, который я здесь использую, см. на странице man для launchd.plist(5).

Если вывам нужно запускать ваши PHP-команды как сеансы CLI, вам также, вероятно, потребуется добавить /opt/local/bin в качестве нового пути в /etc/paths.d work.Например, что-то вроде этого:

shell> sudo echo "/opt/local/bin" >> /etc/paths.d/macports

См. Справочную страницу для path_helper(8).

2 голосов
/ 23 августа 2010

вместо установки пути к bin и вызова foo, почему бы вам просто не вызвать явно bin/foo?

0 голосов
/ 23 августа 2010

Если у вас установлен путь для вашего пользователя И если ваши скрипты запускаются как ваш пользователь, единственное, что вам нужно сделать, - это настроить этот путь для вашей оболочки, но ваши скрипты будут работать как ie.Пользователь Apache (www-данные в системах, подобных debian), чтобы это работало, Вы должны установить этот PATH для этого пользователя explicte

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...