Вызов PHP-документа с SSH включает в себя получение переменной

У меня есть следующий документ PHP, который я вызываю из задания cron.

if (is_file($docRoot . $row['cron_action_script_path'])) { system("php " . $docRoot . $row['cron_action_script_path'] . $row['params']); } 

Однако я получаю ошибку. Could not open input file: /path/to/file.php?params=1

Но я получаю сообщение if is_file('/path/to/file.php')

Таким образом, похоже, что есть проблема с включением переменных в вызовы SHH для PHP-документа.

Во всяком случае, вокруг? Мне нужно иметь возможность динамически вызывать мои параметры каким-то образом.

 if (is_file($docRoot . $row['cron_action_script_path'])) { $_GET['params'] = $row['params']; include $docRoot . $row['cron_action_script_path']; } 

Вы звоните в CLI php и пытаетесь использовать данные QUERY STRING , которые являются специфическими для веб-сервера. Вам потребуется либо обновить сценарий для приема параметров, либо вызвать его с помощью такой программы, как lynx , curl или wget

Поэтому сделайте системный вызов примерно так:

 system("wget http://yourdomain.com/path/to/file.php?params=1 > /dev/null"); 

Затем он должен выполнить этот скрипт с помощью веб-сервера, который позволит QUERY STRING .

РЕДАКТИРОВАТЬ:

Возможность использования ваших переменных: (Обратите внимание, что после компиляции может потребоваться слэш).

 system("wget http://yourdomain.com" . $row['cron_action_script_path'] . $row['params'] . " > /dev/null"); 

Попробуйте is_readable вместо is_file . Файл может существовать без чтения вашим текущим пользователем.

Однако такие параметры не будут работать. Вы не можете использовать переменные $_GET в командной строке. Посмотрите, как PHP ожидает и обрабатывает аргументы командной строки .