OK,
Я проделал несколько творческих поисков и наткнулся на блокпост.
Я пытаюсь использовать программу для Linux "sox". Я пытаюсь вызвать его из моего PHP-скрипта. Сценарий работает, если я использую командную строку. Однако, когда я использую PHP exec, он не работает.
Пример:
sox file1.mp3 file2.mp3 tempfile.mp3 -V3
("V3" указывает подробный вывод)
При выполнении в командной строке как «Пользователь X» или как root я могу создать новый файл. Однако, когда я выполняю команду как:
<?php
exec('sox file1.mp3 file2.mp3 tempfile.mp3 -V3', $output);
foreach($output as $line){
print $line;
}
Он не создает новый файл. Кроме того, массив, который должен возвращать результаты команды, пуст.
Я сделал простой текст с
exec(ls,$output);
и я получаю содержимое корневого каталога.
Я использовал команду PHP get_current_user()
, и она вернула владельца каталога, который является корнем веб-сайта.
Однако, когда я использую команду linux whoami
, я обнаружил, что она рассматривает текущего человека как «apache». Нужно ли давать apache права на использование программы?
Я буду продолжать искать в Интернете и делать пробы и ошибки, чтобы понять, что я делаю неправильно. Любая помощь приветствуется.
Пояснения
- Я не в безопасном режиме (проверил страницу phpinfo())