我们有一个在 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 加载日志文件作为要解析的内容。
所以,总而言之,你的申请应该是要配置或修改以将其日志写入其他地方的日志。这就是全部:最合逻辑、最安全和解决这个问题最简单的方法。