私は、ユーザーがバックアップしたもののリストから選択したファイルを含むzipファイルをダウンロードできるようにするWebバックアップサービスの一部に取り組んでいます。
zip プロセスは、shell_exec コマンドを介して実行されます。これを機能させるために、Apache ユーザーにパスワードなしの sudo 特権を zip コマンドに与えました。
私の問題は、ユーザーのバックアップファイルを含むフォルダーに「sudo cd /path/to/user/files」を実行できないため、圧縮するファイルへの完全な絶対パスを指定する必要があることです。私が欲しくないzipファイル。
これが私が意味することです:
ユーザー 'test1' のファイルはバックアップされており、次のように保存されて
い
ます
。 pics/pic3.jpg
/home/backups/test1/hello.txt
/home/backups/test1/music/band/song.mp3
これらのファイルを圧縮すると、完全なパスが保持されますが、表示したいだけです:
my pics/pic1.jpg
my pics/pic2.jpg
my pics/pic3.jpg
hello.txt
music/band/song.mp3
パスを切り捨てるか、各ファイルのカスタム パスを指定するように zip に指示する方法はありますか?
または、相対ファイル パスを簡単に指定できるように、作業ディレクトリをユーザーのルート バックアップ フォルダに変更する方法はありますか。
お読みいただきありがとうございます。ここまで読んでいただければ幸いです。