PHP只能在特定文件夹中工作吗?

PHP只能在特定文件夹中工作吗?,php,apache,Php,Apache,我几乎可以肯定,PHP总是能够在服务器上的任何地方,对任何文件执行任何操作,但我想知道是否有一种方法可以将其限制为仅在一个文件夹中工作,需要什么 我是说我有50个WordPress安装,50个文件夹。如果来自不受信任插件的病毒只影响1个安装,它也会立即转到其他49个安装(因为PHP可以扫描服务器上的所有目录) 有什么办法可以防止吗?如果病毒侵入WordPress的1个安装,我希望它只停留在那里 我的主机提供商说,如果不购买另一台服务器,这是不可能的。您的看法是什么?您可以在FastCGI模式下安

我几乎可以肯定,PHP总是能够在服务器上的任何地方,对任何文件执行任何操作,但我想知道是否有一种方法可以将其限制为仅在一个文件夹中工作,需要什么

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

有什么办法可以防止吗?如果病毒侵入WordPress的1个安装,我希望它只停留在那里

我的主机提供商说,如果不购买另一台服务器,这是不可能的。您的看法是什么?

您可以在FastCGI模式下安装和运行PHP。通过此配置,您可以在不同的用户下运行PHP实例

我自己并没有尝试过这个教程,但对我来说很不错:

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


一种更容易设置的方法可能依赖于php(由于php的开发人员经常修复与此功能相关的问题,因此存在关于
open\u basedir
的安全性的争议)

这将是托管提供商非常有用的功能。如果可能的话,我的工作绝对安全。谢谢你的确认@SiGanteng@DaveRandom谢谢你让我知道!事实上,我现在已经找到了一些支持这一点的主机提供商。open_basedir似乎是一个很好的解决方案,可以抵御(在共享主机上)的“自动”攻击。只有真正的黑客才会检查WPs的index.php来删除那个东西:)它肯定不安全,但至少应该限制所有自动病毒。谢谢@Flow:您可以在php.ini中设置open\u basedir。如果您在apache的
中使用
php\u admin\u值设置它,脚本应该不能禁用它。@nkr我认为这是一个函数/参数,我应该在执行开始的地方设置它-还没有阅读更多关于它的内容,但是-感谢您的澄清!