【问题标题】:How can I provide a folder to write and download temp files from web application?如何提供一个文件夹来从 Web 应用程序写入和下载临时文件?
【发布时间】:2019-05-17 02:19:10
【问题描述】:

这个问题源于我对服务器端 Web 开发的了解不足,但我会尽量说清楚,以免在我的服务器配置中出现任何错误。

我有一个 Web 应用程序,按下下载按钮会触发一个 php,该 php 会依次将文件写入目录并让单击该文件的用户下载该文件。

此目录将存放临时文件,应定期清除。

所以我的疑问是:

  1. 哪里是存储这些临时文件的好地方(/var/www/<my_app>/tmp?)
  2. 我应该授予 apache2 用户 (www-data) 对该文件夹的读写权限吗?
  3. 我还有什么遗漏吗?

EDIT1

刚刚看到 php passthruw 命令。这对于压缩文件是否足够,让我避免考虑 tmp 文件夹和权限?

【问题讨论】:

    标签: php apache file-permissions temporary-files ubuntu-18.04


    【解决方案1】:

    1) 可以在任何你想要的地方创建临时文件夹。

    2) 当您有一个 php 脚本并且用户单击前端应用程序中的某个按钮并触发该 php 脚本运行时,该 php 脚本会代表 apache2 用户执行,这又是“其他世界权限” . (有用户、组和其他)。因此,您应该向其他人授予写入权限,以便 apache2 用户(www-data)写入该目录。

    这样您就不能通过 ftp 或 sftp 或其他方式上传文件,因为使用 ftp ,您的用户将不是 www-data。并记住你做了什么。您仅授予 www-data 的写入权限。

    为了更好地理解这个概念,我建议您也阅读以下链接和答案。 File permissions for Laravel 5 (and others)

    【讨论】:

    • 谢谢。从您提供的链接中接受的答案中,我了解到我可以轻松定义任何文件夹并使 apache2 (www-data) 成为它的所有者。之后我还需要设置文件和目录权限吗?
    • 视情况而定。如果您想让所有文件安全,请按照该答案操作。默认情况下,权限设置正确(如果我没记错的话)。如果设置不正确,请尝试 ls -l 并按照链接告诉您的方式设置权限。这是开始的最佳方式。
    • 再次感谢,我有机会在您引用的链接中测试了建议的解决方案,它真的很有用!
    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多