Rsync в браузере не работает

Я пытаюсь перенести файлы с одного сервера на другой с помощью приведенного ниже кода.

rsync -avz -e "ssh -i /root/.ssh/somekey" /var/www/admin/somefiles.txt root@xxx.xxx.xxx.xxx:/var/www/html_public/some-folder/

Это работает очень хорошо, если я делаю это на шпатлевке, но если я делаю shell_exec этот код на странице php и запустить страницу в браузере. Это не работает. Возвращает пустую строку.

Я надеюсь, что кто-то может помочь мне с этим. Заранее спасибо.

0

Решение

Во-первых, вам нужно проверить, являетесь ли вы пользователем root или (пользователем sudo) для запуска rsync.

Если да, то команда exec () будет работать, только если она запущена тем же пользователем на php-cli (не в браузере пользователем Apache). т.е. каким пользователем вы вошли в оболочку для запуска rsync,

Если это пользователь root или другой пользователь с разрешением sudo, то это rsync команда может быть недоступна apache/www-data пользователь, который работает, когда PHP-скрипт запускается из браузера.

Таким образом, вы пытаетесь сделать обычного пользователя и войти через него, затем попробуйте rsync если вы добились успеха, то может быть интересно посмотреть, какие могут быть другие проблемы, но если вы получаете доступ / разрешение, запрещенное, то, очевидно, вы не сможете запустить этот скрипт по крайней мере в браузере.

Помимо этого, еще одно разрешение не может быть напрямую связано с rsync сама команда, но с папкой /etc/test/ который принадлежит пользователю root в обычном сценарии.

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector