Как получить полный путь к php-интерпретатору / двоичному файлу без доступа к оболочке

Как я могу получить полный путь к php-интерпретатору из php-скрипта (без доступа к командной строке).

Что мне нужно сделать:

$foo = "/usr/bin/php"; echo $foo; 

Но мне нужно сначала получить путь, чтобы я мог назначить его foo.

Если у вас есть решение, которое работает как на Windows, так и на nix, даже лучше, но если нет, nix будет в порядке.

Прежде чем спросить,

  1. Спросить хозяина не может быть и речи
  2. Отсутствие доступа к оболочке

Проблема в том, что использование того, что выводится, не работает. Например, PHP_BINDIR будет выводить / usr / bin, но использование / usr / bin / php не поможет. Полный код:

 exec("php-cli $path_to_file > /dev/null 2>/dev/null &"); 

Но даже использование / usr / bin / php-cli не работает, хотя оно мне это говорит. Я должен использовать:

 exec("/opt/php52/bin/php-cli $path_to_file > /dev/null 2>/dev/null &"); 

Например, для этого конкретного хоста.

    Бинарный путь PHP можно найти с помощью этой константы:

     PHP_BINDIR 

    Начиная с PHP 5.4, вы можете получить путь к исполняемому файлу, выполняемому в настоящий момент с этой константой:

     PHP_BINARY 

    http://php.net/manual/en/reserved.constants.php

    Пользователи Linux могут попробовать команду whereis .

    У меня была такая ситуация с PHP IDE.

     whereis php 

    В Windows я бы предложил следующий фрагмент:

     <?php $pid = getmypid(); $output = shell_exec(sprintf('tasklist /nh /fo csv /fi "PID eq %d"', $pid)); $processInfo = explode(',', $output); echo PHP_BINDIR . DIRECTORY_SEPARATOR . trim($processInfo[0], '"'); 

    В unix команда оболочки должна, вероятно, использовать ps

    его не является общим для хоста, чтобы предоставить root доступ к его пользователям. Скорее всего, вы не можете получить доступ к чему-либо ниже / var / www