我的服务器有几个用户。我正在运行支持 php 的 httpd。
现在所有用户都可以制作 php 脚本并用浏览器打开并运行它www-数据正因为如此,就不可能使 php 脚本无法被其他人访问,并且每个人都可以根据自己的意愿查看彼此的 SQL 密码等。
有没有办法以文件所有者的身份运行这些 php 脚本?或者另一个如何确保安全的建议。我一直在研究 Apache 虚拟主机作为一种可能的解决方案,但没有成功。suPHP 可能会解决问题,但已不再从 repo 获得。
答案1
一种方法是使用mpm-itk
apache 模块,它允许每个虚拟主机在单独的 uid 和 gid 下运行。但对于纯 nginx 安装来说,该解决方案是不可接受的。
我认为另一个更好的解决方案是切换到php-fpm
可以运行多个独立池,每个池都有自己的 uid/gid。阅读这亲切地。
答案2
这是一个众所周知的问题,可以使用 mpm-itk apache 模块解决,该模块专门用于在具有其所有者权限的虚拟主机中运行脚本(http://mpm-itk.sesse.net/)。
此模块已预置到 ISPmanager 等托管管理软件包中。我建议使用此类软件包来摆脱对服务器进行无聊调整的麻烦,因为所有操作只需几分钟即可完成。