PHP只能限制在某些文件夹中工作吗?

Ata*_*adj 0 php apache

我几乎可以肯定PHP总是能够在服务器上的任何地方运行并对任何文件做任何事情,但我想知道是否有办法限制它只在一个文件夹中工作,那将是什么要求?

我的意思是我已经说了50个WordPress安装,50个文件夹.如果来自不受信任的插件的病毒只影响1个安装 - 它也会立即转到另外49个(因为PHP可以扫描服务器上的所有目录).

有什么方法可以阻止这种情况吗?如果病毒破坏了WordPress的1个安装 - 我希望它只留在那里.

我的托管服务提供商说没有购买另一台服务器是不可能的.你有什么意见?

com*_*857 5

使用php-fpm你可以chroot php worker(绝对分离)并给每个php应用程序自己的用户和php配置(超时,内存限制等).您不必使用chroot来拥有唯一用户.使用简单的文件权限,您可以使webroot对于不是该webroot的专用用户的任何人都不可读.这也不是Apache特有的,适用于支持fastcgi的任何其他web服务器.

更容易设置的方式可能是继续使用php的open_basedir(open_basedir由于php的开发人员经常修复与此功能相关的错误,因此存在安全性的争议)