Можно ли определить, где wget
бинарный находится с помощью PHP? Я пытаюсь создать мягкий код wget
Команда cron для моих пользователей. Я знаю, что в большинстве сред wget
местоположение уже будет включено в PATH
но cron не всегда использует одну и ту же среду. Чтобы не рисковать, я хочу использовать абсолютный путь, как /usr/bin/wget
,
Есть ли константа, похожая на PHP_BINDIR
? Я не могу предположить wget
будет в том же месте, что и PHP, верно? Есть другие идеи?
Спасибо за любую помощь!
Вот почему мы имеем env
, который гарантированно будет в /usr/bin
так что все, что вам нужно сделать, это:
/usr/bin/env wget [options] [url]
И все готово, если пользователь, выполняющий скрипт PHP, имеет правильные разрешения для выполнения. wget
запишите скачанные файлы по указанному пути и т.д … но это другое дело
С другой стороны, потому что вы пометили этот вопрос кронтаб тег, убедитесь, что hashbang в верхней части вашего скрипта использует env
, тоже:
#!/usr/bin/env php
<?php
//your script here
Затем, wget
будет вызываться (снова: если переменные окружения и разрешения проверяются) просто и понятно:
#!/usr/bin/env php
<?php
exec('wget --help', $output);
var_dump($output);
Должен дать что-то вроде:
array(172) {
[0]=>
string(51) "GNU Wget 1.15, a non-interactive network retriever."[1]=>
string(32) "Usage: wget [OPTION]... [URL]..."[2]=>
string(0) ""[3]=>
string(72) "Mandatory arguments to long options are mandatory for short options too."...
Пробовал на моей машине, никаких проблем вообще
Это не команда php, а команда unix: which
,
Пример :
~ $ which wget
/usr/bin/wget