Непонимание разрешений для записи на Amazon EC2 Server

Я разработал инструмент командной строки (CLT) на машине Amazon EC2 (Linux). Он основан на OpenCV, так что я могу выполнить свой скрипт и возможность писать изображения на сервере (по imwrite(std::string path, cv::Mat image) ).

Я делаю это именно из консоли, и он успешно пишет, но когда я пытаюсь вызвать его из PHP-скрипта (апаш пользователь), он может получить входной файл на PHP, перемещая его в одну конкретную папку, но когда я запускаю инструмент командной строки через exec($execQuery, $output, $return)мой c ++ CLT не пишет ни одного изображения.

Код PHP:

move_uploaded_file($_FILES["file"]["tmp_name"],
"/var/www/html/public/saved/" . $_FILES["file"]["name"]);

$path = "/var/www/html/public/saved/" . $_FILES["file"]["name"];
$dest = "/var/www/html/public/saved/DEST_" . $_FILES["file"]["name"];

$execQuery = sprintf("/usr/local/bin/binary_test -source \"%s\" -dest \"%s\"", $path, $dest);

exec($execQuery, $output, $return); // this should execute my binary which writes an image

и saved папка имеет как пользователь: ec2 пользователь и www как группа. Я пытался изменить это на апаш но я не получил никакого результата.

У кого-нибудь есть подсказка для этого?

Заранее большое спасибо. С уважением.


Редактировать:

$return код 6.


Edit2:

если я применю sudo перед командой exec, код возврата 1. Иначе это 6


После нескольких часов отладки я получаю сообщение об ошибке в строке c ++, где я вызываю функцию:

CascadeClassifier::detectMultiScaleЯ до сих пор не могу себе представить, почему.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]