Это мой код для выполнения команды из PHP:
$execQuery = sprintf("/usr/local/bin/binary -mode M \"%s\" %u %s -pathJson \"/home/ec2/fashion/jsonS/\" -pathJson2 \"/home/ec2/fashion/jsonS2/\"", $path, $pieces, $type);
exec($execQuery, $output, $return);
$return
значение всегда 0, но $output
пустой. $output
должен быть JSON.
binary
(например /usr/local/bin/binar
Я получаю (правильно) $return = 127
, -mode R
который не выходит) Я получил ошибки из консоли (которые также являются правильными).$execQuery
(который я печатаю раньше, чтобы быть уверенным в кавычках) на консоли, он выполняется правильно. Это только сторона PHP, где я получил ошибку.Что может быть не так?
Заранее спасибо.
Ну, пара вещей может происходить …
Для отладки может быть лучше использовать proc_open вместо exec и проверить STDOUT и STDERR. Это может дать вам дополнительную информацию о том, что происходит.
Я написал небольшая служебная библиотека для PHP, который выполняет внешние программы более безопасным способом и предоставляет дополнительную информацию для отладки. Это может помочь вам, по крайней мере, точно определить проблему.
Других решений пока нет …