Я пытался запустить JAR-файл, который будет считывать из input.txt
и записывать output.txt
таким образом, в консоли:Не удается запустить Java от Exec РНР
java -jar file.jar input.txt output.txt
И это работает 100% штрафа на мой машина. Мне нужно, чтобы запустить его внутри PHP скрипт, и этот код работает 100% штрафа для меня (Mac OS, PHP встроенный сервер):
exec("java -jar file.jar input.txt output.txt");
Но когда я развернуть его (сервер CentOS), где функция exec
разрешено, оно терпит неудачу, оно возвращает пустую строку, а банка не работает, ее запуск непосредственно из оболочки в порядке.
Как это исправить? Спасибо заранее!
выполняет ли пользователь скрипт php, так как имеет разрешение на чтение/запись каталога, в котором находится этот материал? просто потому, что он работает для вас в командной строке, это мало значит. это другой пользователь, в совершенно другой среде. –
Во-первых, я не поклонник exec, учитывая последствия для безопасности. Сказав это, попробуйте использовать полный путь к исполняемому файлу 'java' и файлы в этой команде и посмотрите, работает ли это. –
@MarcB да, пользователь Apache такой же, как пользователь, под которым я выполнил это из консоли (на этом сервере), и он отлично работал –