Программно получить путь к php

1

Я хотел бы сделать что-то похожее, чем Как сделать "fork" процесс преобразования видео в фон, в php?:

exec("/usr/bin/php ./foo.php > /dev/null 2>&1 &");  // executed in Apache

Однако это будет работать на разных платформах: моя машина, где php скомпилирована в ~/, windows, несколько prod-серверов...

Есть ли способ программно получить часть "/usr/bin/php"?

Вещи, о которых я мог думать:

  • получить текущий pid, угадать исполняемый файл из него
  • в C, первым аргументом является путь к исполняемому файлу, возможно, что-то подобное
  • 0
    Если вы собираетесь использовать этот код в запросе веб-страницы (вы пометили его как apache), вы никогда не узнаете. Apache не вызывает никакой двоичный файл PHP в общих конфигурациях.
  • 0
    @Dan Что такое "общие конфигурации?" suPHP? Это называется использованием двоичных файлов (php-cgi).
Показать ещё 1 комментарий
Теги:
exec
path

1 ответ

2
Лучший ответ

Самый простой способ - просто убедиться, что двоичный файл php CLI находится в переменной среды $PATH, а затем просто используйте php /path/to/foo.php.

В UNIX вы также можете использовать /usr/bin/env php, который будет выполнять первый php двоичный код, найденный в $PATH. Но это явно не будет работать в Windows.

Наконец, один из очевидных способов состоит в том, чтобы местоположение было php в качестве настраиваемой опции и, если необходимо, использовать указанный пользователем путь.

  • 0
    хорошо, это то, чего я боялся Поскольку php может ссылаться на php4 или php5 (мне нужен php5), я пошел по пути конфигурации. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню