![php+apache - 确定文件是否已被提供/访问?](https://linux22.com/image/224177/php%2Bapache%20-%20%E7%A1%AE%E5%AE%9A%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%B7%B2%E8%A2%AB%E6%8F%90%E4%BE%9B%2F%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
我有一个进程正在创建一个需要通过公共链接访问的文件。服务器是 debian 10 上的 apache2。我想知道何时/是否已提供该文件,并触发 php 进程。如果我可以通过网络调用 php 页面并让它在文件被访问时显示“是/否”状态,那就太好了。
你会如何着手建立这样的东西?它会是一个在 apache 中执行并以某种方式消耗和解析访问日志的 php 脚本吗?或者有没有办法让进程监视文件/目录以查看读取操作,然后触发其他操作(例如,触摸其他地方的文件以显示已发生读取)。
答案1
不清楚你在这里问什么。
当文件被“提供”时,您将在 access_log 中获得一个条目。如果您希望在“提供”文件时执行其他操作,请将其保留在文档根目录之外,并提供读取和返回文件的脚本的 URL。如果您事先不知道文件名,或者不知道如何将文件名映射到 PHP 脚本(mod_rewrite、pathinfo、索引处理程序),则将脚本挂起 404 处理程序。
如果您需要一种除了通过网络服务器之外还可以访问文件的机制,请将其放在使用“atime”安装的文件系统上,然后比较 mtime 和 atime 或使用 inotify 进行监控。