php - 如何在不授予完全公开写入权限的情况下允许 PHP 中的文件上传?

标签 php linux file-upload upload permissions

好的,我有一个 PHP 中的文件上传脚本,以前运行良好;但我刚刚将其移至新服务器上。

新服务器的所有网站文件夹均具有以下设置(运行 Ubuntu):

http://imgur.com/A7yGYWl

我的旧服务器在所有网站文件夹中都有以下设置,并且允许使用相同的 PHP 代码上传文件:

http://imgur.com/aDzZx2n

我错过了什么吗?您必须为 PHP 本身设置这些访问权限吗? 'file_uploads = On' 在 php.ini 中设置,与文件上传相关的所有其他内容均设置为默认值。

我想做的就是允许我的 PHP 脚本将图像上传到特定目录。我错过了一些明显的东西吗?允许公共(public)写权限可以让脚本正确运行,所以肯定是权限问题而不是脚本问题。但允许公共(public)写入访问肯定是一个很大的安全问题。

有什么想法吗?

最佳答案

您需要允许 Web 服务器软件对目标目录进行写访问。如果您运行的是 Apache,则通常为“apache”。您可以从 httpd.conf 文件中获取该信息。查看目录所属的组(使用ls -l),并将 apache 用户添加到该组(useradd -G myGroup apache)。然后启用组写入权限。

关于php - 如何在不授予完全公开写入权限的情况下允许 PHP 中的文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068808/

相关文章:

PHP:从 cron 运行脚本时路径不正确

php - uniqid 有多独特?

php - 仅在运行时需要时包含 php 文件

php - 上传到随机命名的目录,是否足够(安全方面)?

tomcat - 使用 Struts 2 上传文件时出现 NullPointerException

php - 无法使用 cuRL 从 Google map 请求获取 JSON 数据

linux cat 文件,不包括以特定前缀开头的文件

c++ - 无法将 Google Test NuGet 包添加到 Visual Studio Linux C++ 项目

linux - iptables 线程安全吗?

python - 将 Django FileField 的内容上传到远程服务器