У меня есть веб-сервисы, которые используются для резервного копирования, но после перехода на 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 !!