PHP exec: ошибка по умолчанию (23) - частичная передача - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть веб-сервисы, которые используются для резервного копирования, но после перехода на PHP7 (?) Резервное копирование больше не работает.

Все ссылки на веб-сервисы работают.

Я выделил кодэто проблема в PHP 7, но она может быть вызвана чем-то другим!

<?php
//$outputShell=shell_exec('sudo cat /etc/passwd');
exec('sudo /usr/sbin/dirvish --vault L106',$outputShell, $codeErreur);
//exec('sudo cat /etc/passwd',$outputShell, $codeErreur);
    //
    if ($codeErreur == 0){
      var_dump ("ok",$outputShell,$codeErreur);
    }
    else{
      var_dump ("nook",$outputShell,$codeErreur);
    }

?>

Когда я выполняю этот код напрямую через браузер, у меня появляется эта ошибка:

ошибка dirvish:branch / san / pcdsi / L106: изображение по умолчанию 20190221154124 сбойный dirvish L106: ошибка по умолчанию (23) - частичная передача expr: синтаксическая ошибка expr: ошибка целочисленного значения аргумента dirvish: branch / san / pcdsi / L106: изображение по умолчанию 20190221154136 сбой

и журнал dirvish

rsync_error: * Цикл выполнения 0 rsync: change_dir "/ mnt / pc-backup / L106 / Users /"не удалось: нет такого файла или каталога (2) Ошибка rsync: некоторые файлы / атрибуты не были переданы (см. предыдущие ошибки) (код 23) в main.c (1668) [Receiver = 3.1.2] rsync: [Receiver] writeошибка: сломанная труба (32) цикл выполнения 1 * rsync:Ошибка change_dir "/ mnt / pc-backup / L106 / Users /": нет такого файла или каталога (2) Ошибка rsync: некоторые файлы / атрибуты не были перенесены (см. предыдущие ошибки) (код 23) в main.c (1668)[Receiver = 3.1.2] rsync: ошибка записи [Receiver]: Сломанный канал (32)

Если я запускаю команду / usr / sbin / dirvish --vault L106 в корневом каталоге, резервная копиясделано без проблем !!

Кроме того, работает часть в комментарии, которую я тестировал через cat / etc / passwd!

Конечно, я проверил права sudo и запускаемый скрипт черезwww-data в браузере sudo без пароля ... нет проблем на этой стороне

На моем старом сервере PHP 5 этот код PHP работает!

У вас есть идея?Я держу?- системная проблема?- проблема PHP?- проблема dirvish на платформе PHP 7?

Короче говоря, команда exec ('sudo / usr / sbin / dirvish --vault L106', $ outputShell, $ errorCode); работает в PHP 5, а не в PHP 7 !!

...