Apache和PHP的权限

我有一个服务器使用Ubuntu的服务器,与Apache2和PHP

我想用一个php文件设置一个目录,这个目录在互联网上是可见的,而且在它的内部是一个私有的目录,没有人(apache)可以访问它,除了php文件。

我怎样才能做到这一点?

如果您可以安排PHP以普通的Apache身份从不同的用户那里执行,那么这很容易:您将私有目录设置为拥有PHP用户和权限700。

或者,如果PHP解释器必须像Apache服务器一样以相同的用户身份运行,则可以使用Apacheconfiguration指令(以.htaccess文件或其他方式)指定Apache不得从该目录提供任何内容。 这是如何在“主”Apacheconfiguration文件中完成的:

 <Directory "/your/private/directory"> Require all denied </Directory> 

.htaccess文件中,只需使用Require行:

 Require all denied 

它将自动应用于.htaccess文件所在的目录。

PHP解释器可以在不通过Apache的情况下访问文件系统,因此它将能够访问专用目录。 然后,您只需将专用目录设置为由Apache服务用户拥有,并且权限为700。