Функция PHP exec: как запустить HBPLUS через PHP

У меня проблема, связанная с функцией PHP exec () и выводом программы HBPLUS. Когда я пытаюсь запустить следующую команду «./hbplus pPDBfile.pdb» из терминала Linux, все работает отлично (расширение для ./hbplus не требуется): она создает вывод несколько строк в терминале и файл pPDBfile.hb2. Это то что мне нужно. Вместо этого, когда я пытаюсь запустить его из PHP, он выдает ошибку «Ошибка сегментации».

$hbplus = "hbplus p1a6z.pdb"; //p1a6z.pdb is the pdb I have -> p in front is required.
exec($hbplus); //Segmentation fault.

Более того, я попытался заменить функцию exec () функциями system (), shell_exec () и passthru (). Также я попытался добавить

2>&1

чтобы иметь:

$hbplus = "hbplus p1a6z.pdb 2&>1";

Результат тот же.

У вас есть какие-нибудь предложения? Как вы думаете, проблема связана с выводом нескольких строк?

Заранее спасибо.

Вы пробовали определять абсолютные пути как для приложения, так и для файла .pdb?

Magnus Eriksson 30.07.2018 11:49

И pdb-файл, и hblus находятся в одном каталоге.

A.Marchetto 30.07.2018 11:51

Если вы посмотрите на свой вызов командной строки (который работает), у вас есть ./ перед приложением. Это путь (та же папка). Попробуйте добавить абсолютные пути для обоих и посмотрите, работает ли это.

Magnus Eriksson 30.07.2018 11:53

Нет, это не сработает, если я укажу абсолютный путь как в приложении, так и в файле pdb.

A.Marchetto 30.07.2018 11:57
Стоит ли изучать 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
4
39
0

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