允许用户将图像上传到网站的正确方法是什么?我正在使用 mod_php,因此一切都由 apache 完成,而不是域用户。
现在我只需将图像文件夹的 chmod 777 改为 777,并希望获得最佳效果:)
我一直在考虑添加.htaccess 文件来阻止 PHP 在该文件夹中运行。
答案1
“我正在使用 mod_php,因此一切都由 apache 完成,而不是域用户完成。”
我建议立即停止这种行为;即使在专用的托管环境中,这也是不健康的(但如果您在机器上有多个网站,那就完全是致命的)。suPHP 足以胜任这项任务。
如果你决心坚持使用 mod_php,我建议不是建议将目录的用户更改为与 Web 服务器的用户匹配;这样会阻止实际拥有该站点的用户有效管理站点。相反,应将目录的组更改为 Web 服务器的组,然后授予该组对该目录的写权限。
答案2
理想情况下,你应该将文件夹的所有者设置为运行 Apache 的用户帐户。这可能是“apache”或“www-data”或其他名称,具体取决于你的环境。如果文件夹的所有者是该用户,则你只需要 700 的权限。
您可能还想检查 php.ini 文件中的文件上传路径。它可能会将具有唯一文件名的文件上传到 /tmp/,然后您可以使用 move_uploaded_file() 将图像移动到“images”文件夹。
就 .htaccess 而言,您还可以编写一个简单的 index.php 脚本,重定向到网站上的其他页面,例如:
<?php
header("Location: /") ;
?>
因此,如果有人尝试查看 yourdomain.com/images/,它只会将其反弹回 yourdomain.com