我无法使用 PHP 压缩符号链接文件

问题描述 投票:0回答:1

我有一个运行 LiteSpeed Web Server 的 cPanel Linux 服务器。该服务器上的托管上不断有照片上传。然而,该网站每天都在增长一点,我在备份方面遇到了问题。

我想到将往年的照片移到托管区域之外的位置,并防止每天不必要的备份。我在外部创建了一个文件夹,并通过符号链接从托管区域进行访问。 Web服务器端没有问题。照片显示在网站上。

但是,有时用户想要创建报告并将旧文件下载为 zip 文件。我无法使用 PHP 将通过符号链接访问的文件包含在 zip 中。

我尝试使用 exec 运行 zip 而不是 PHP 的 zip 函数。 我将 open_basedir 添加到 php.ini 中。 我将“Options +FollowSymLinks +SymLinksIfOwnerMatch”添加到.htaccess。

但是,我没能成功。

是否可以在不影响服务器安全的情况下做这样的事情?

我的PHP代码:

$zip = new ZipArchive();
$zip->open("test.zip", ZipArchive::CREATE);

$zip->addFile('/home/mysite/public_html/files/photo1.jpg', 'photo1.jpg');
$zip->addFile('/home/mysite/public_html/myPhotos/photo2.jpg', 'photo2.jpg');
$zip->addFile('/backup/myPhotos/photo3.jpg', 'photo3.jpg');

$zip->close();

当我运行此代码时,zip 文件中的唯一文件是 files 文件夹下的 photo1.jpg 文件,这是一个真正的文件夹。

/home/mysite/public_html/files 是一个真实的文件夹

/home/mysite/public_html/myPhotos/ 是来自 /backup/myPhotos 的符号链接。

php linux cpanel litespeed
1个回答
0
投票

我正在尝试用 PHP 解决这个问题,但是 cPanel 有一个解决这个问题的方法。

如果我愿意,我可以从备份中排除某些文件夹。

“要从单个用户的备份中排除文件或目录,请将所需路径(相对于用户的主目录)添加到用户主目录中的 cpbackup-exclude.conf 文件中,每行一个条目。”

https://docs.cpanel.net/knowledge-base/backup/how-to-exclude-files-from-backups/

© www.soinside.com 2019 - 2024. All rights reserved.