Как определить путь к php.exe в Windows - искать пути по умолчанию? - PullRequest
16 голосов
/ 10 марта 2012

В настоящее время я разрабатываю несколько плагинов для Sublime Text 2 для OS X, и я хотел бы сделать их кроссплатформенными, то есть мне нужно выяснить, где и где установлен php.exe.

Прямо сейчас я вызываю /usr/bin/php в Python, который, очевидно, работает только в OS X и Linux:

phppath = '/usr/bin/php'<br>
pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br>
retval = os.system( '%s "%s"' % ( phppath, scriptpath ) )

Но в Windows, похоже, нет определенного пути по умолчанию для php.exe. Чем больше я гуглил, тем больше возможностей появлялось. До сих пор я думаю, что должен был бы проверить каждый из следующих путей существования:

c:\php\php.exe
c:\php5\php.exe
c:\windows\php.exe
c:\program files\php\php.exe
c:\wamp\bin\php\php5\php.exe
c:\xampp\php\php.exe

Это уже большая коллекция, но я прошу либо полный список, охватывающий все возможные варианты - или еще один способ выяснить это, который должен быть таким же надежным, как проверка каждого возможного пути.

Так что, если у вас установлен php.exe в каком-то другом месте, кроме этого, оставьте комментарий с вашим путем, и я добавлю его в список выше.

Кроме того, похоже, есть php.exe и php-cli.exe. Я предполагаю, что было бы нормально циклически проходить по каждому возможному пути, сначала проверять php-cli.exe, затем проверять php.exe и принимать первое совпадение. Это правильно или есть лучшая практика?

Ответы [ 4 ]

32 голосов
/ 10 марта 2012

Если пользователь определил добавленную папку bin для PHP в систему PATH, тогда вы должны просто попытаться выполнить php -v, чтобы убедиться, что она присутствует.

Если вы хотите получить полный путь к исполняемому файлу php, а целевой системой является Windows 2003 или более поздняя (например, Vista и 7), тогда вы можете использовать команду WHERE, то есть:

C:\>where php.exe
C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe

Также см., Возможно, связанный с этим вопрос: Есть ли эквивалент 'which' в командной строке Windows? .

Если вы действительно отчаянно хотите найти any файла на компьютере пользователя, вы можете попробовать выполнить эквивалент find - но это будет slooow !

C: && cd \ && dir /s /b php.exe
4 голосов
/ 02 апреля 2012

В PHP 5.4 и более поздних версиях вы можете использовать константу PHP_BINARY.

0 голосов
/ 27 ноября 2018
C:\xampp\php\php.exe 

Должно работать, если ваш xampp включен D: или E: , соответственно, вы переходите с C:

0 голосов
/ 21 февраля 2018

1001 * попробовать *

echo PHP_BINDIR;

Работает, я проверял на MacOS как с php 5.6

...