使用 PHP 或符号链接将文件保存到另一个分区?

使用 PHP 或符号链接将文件保存到另一个分区?

我们有一个在 cPanel 服务器上运行的基于 PHP 的应用程序,该应用程序可保存大量 API 日志文件(数百万),并且我们希望 PHP 脚本能够将 API 日志文本文件写入另一个分区(Amazon EFS 安装到服务器) ,以便我们可以更轻松地移动这些文本文件。 df-h 输出如下:

tmpfs           7.3G     0  7.3G   0% /dev/shm
tmpfs           7.3G  115M  7.2G   2% /run
tmpfs           7.3G     0  7.3G   0% /sys/fs/cgroup
/dev/xvda1      1.5T  623G  828G  43% /
/dev/loop0      3.9G  8.3M  3.7G   1% /tmp
127.0.0.1:/     8.0E  609G  8.0E   1% /smartefs01
tmpfs           1.5G     0  1.5G   0% /run/user/0
tmpfs           1.5G     0  1.5G   0% /run/user/1005

我们要保存文件的驱动器位于 /smartefs01 中,实际的 PHP 应用程序位于 /home/user/public_html 中。我们正在努力寻找让 PHP 应用程序将文件存储在 /smartefs01 而不是 /home/user_public_html 中的最简单方法。因为我们希望能够分离驱动器并移动它及其上的所有文件,以防更换服务器等情况。

让我知道你的想法!

亲切的问候,

欧共体

答案1

您无法对尚不存在的文件进行符号链接,因此,如果您的应用程序生成数百万个文件,则这不是一个选项。

如果该应用程序登录到特定目录,您可以符号链接或绑定安装目录。任何人都会告诉您,无论如何,非危险的 PHP 服务器软件绝对不应该在 中的某个位置写入日志public_http,因为它不仅有无意中向公众暴露信息的风险,而且基本上会使任何基于文件系统的抑制 (SELinux) 的尝试失效。攻击者设法使日志文件包含<?php…标签之类的内容,然后让 PHP 加载日志文件作为要解析的内容。

所以,总而言之,你的申请应该是要配置或修改以将其日志写入其他地方的日志。这就是全部:最合逻辑、最安全解决这个问题最简单的方法。

相关内容