AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"

Как выполнить команду в терминале php на FreeBSD?

Нужно выполнить команду
sox media/60847/intro.wav -r 8000 -c 1 media/60847/intro.gsm

Пробовал через exec, ничего не происходит, я так понимаю из-за прав (whoami выдает юзера www). Как выполнить команду под другим юзером?
Нагуглил через sudo, можно ли без его установки обойтись?
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
я так понимаю из-за прав

Самое главное, что надо понимать о программировании, это что никогда не надо понимать.
А всегда надо знать точно.
И уж тем более не надо начинать метаться и совершать хаотичные телодвижения, типа установки sudo, прописывания путей и прочего, исходя только из понимания.

Если что-то идёт не так, то система всегда сообщает тебе об этом. И надо всего лишь взять это сообщение и прочитать. И потом исправить конкретную ошибку.

Вместо неудобной exec используем нормальную shell_exec().
чтобы видеть ошибки, добавляем в конце команды 2>&1

$out = shell_exec("sox media/60847/intro.wav -r 8000 -c 1 media/60847/intro.gsm 2>&1");


в out будет консольный вывод, в том числе ошибки.
Читаешь ошибку и исправляешь
Ответ написан
Комментировать
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
причем тут юзер?
попробуйте полные пути до файлов, до команды...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы