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

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

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

Пробовал через exec, ничего не происходит, я так понимаю из-за прав (whoami выдает юзера www). Как выполнить команду под другим юзером?
Нагуглил через sudo, можно ли без его установки обойтись?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 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
причем тут юзер?
попробуйте полные пути до файлов, до команды...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект