Я разрабатываю серверное приложение, и я недавно встретился с этой странной ошибкой на сервере тестирования (Debian Сжимают).
Каждый исполняемый файл я передаю сбоям popen с сообщением:
sh: sort: not found // happens to any command
Это происходит независимо, указываю ли я на полный путь, возвращенный "типом", или сохраняю его коротким. Как отмечалось ранее, это, оказывается, в только одной тестовой среде, добавляет беспорядок, выполняет ту же ОС и не имело никакой проблемы вообще.
Popen, по-видимому, использует sh для выполнения команд, но если я выполняю ту же команду через командную строку (удар или sh), все прекрасно
Заранее спасибо
(PS: даже испытанный Python os.popen только для закрепления этого главного скребка, и это работает!)
Отредактируйте это - простой вызов, который перестал работать:
$command="tail -10 myfile";
$handle = popen($command.' 2>&1','r');
if($handle){
while (!feof($handle)){
....//process buffer
}
}
возвраты:
sh: tail: not found
Вероятно, ваш ПУТЬ НЕ настроен должным образом при вызове popen. Я предполагаю, что это проблема конфигурации PHP, но вы можете обойти ее следующим образом:
which tail
, чтобы определить полный путь к хвостовой программе. popen
, указав путь, указанный в 1.