Ошибка при выполнении команды libreoffice с помощью shell_exec()

Код:

shell_exec('libreoffice --convert-to pdf `'.$my_file.'` --headless');

Я тоже пробовал это

shell_exec('libreoffice --convert-to pdf `'.$my_file'` --headless > /dev/null');

Ошибка на сервере при выполнении выше:

Output:sh: /my_files/my_file.doc: cannot execute binary file

Примечание: Все остальные команды Linux отлично работают с shell_exec(), только команда libreoffice не работает. И на терминале Linux команда libreoffice работает нормально, просто не работает с PHP.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете обратные кавычки, которые говорят подоболочке запустить эту команду и использовать ее вывод вместо нее. Вместо этого используйте двойные кавычки, и это будет работать гораздо чаще.

Теперь я не получаю никаких ошибок, но файлы не конвертируются shell_exec("libreoffice --convert-to pdf ".$my_file." --headless");

webDev 18.01.2019 17:27

Вы не заменили только обратные кавычки двойными кавычками. shell_exec('libreoffice --convert-to pdf "' . $my_file . '" --headless') -- но теперь у вас другая проблема, и, возможно, вам следует задать новый вопрос.

Tanktalus 18.01.2019 17:32

Я тоже пытался это сделать, не повезло. не конвертировать файл с помощью php, но может конвертировать с помощью терминала. Перепробовал все возможные варианты цитат.

webDev 18.01.2019 17:34

Извините, мой плохой, на самом деле он работает, но сохраняет файл в веб-каталоге, я просто добавил свой путь к каталогу, чтобы сохранить преобразованный файл в команде. Благодарность

webDev 18.01.2019 17:42

Другие вопросы по теме