Назад | Перейти на главную страницу

exec () сбой с кодом возврата 11

У меня есть следующий сценарий PHP, который изолирует мою проблему:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$code = 0;
$output = array();
exec('"../vendor/bin/PdfGenie" code.rq', $output, $code);

echo $code . "\n";
print_r($output);

В PdfGenie исполняемый файл читает содержимое code.rq и пытается создать PDF-документ в том же каталоге.

Когда я запускаю код в своем браузере, я получаю следующее:

11
Array
(
)

И он не создает файл.

Однако, если я подключусь к серверу и выполню php tst.php (с рутом или без) получаю:

0
Array
(
)

И выходной файл записывается нормально. Кроме того, если я выполню ту же команду ("../vendor/bin/PdfGenie" code.rq) прямо из ssh, что тоже работает.

Я подозревал, что, возможно, apache запускает PHP-скрипт с другим пользователем, и перепробовал все параметры на эта страница чтобы получить пользователя, которым это может быть, но все они дали мне того же пользователя, с которым я общался, и он работал отлично.

Чем отличается (или как я могу понять, что отличает), когда apache выполняет мой PHP-скрипт, что вызывает этот код ошибки 11?