在哪里放置PHP生成的.htpasswd?

在哪里放置PHP生成的.htpasswd?,php,apache,.htaccess,Php,Apache,.htaccess,我正在创建一个基于PHP的web应用程序,它需要简单的身份验证才能使用。该应用程序被设置为安装在web服务器上,并且仅作为web主机/服务器的所有者使用,因此只有一个用户和密码。我觉得创建一个复杂的登录系统毫无意义。我只需要创建一个GUI来生成.htaccess和.htpasswd文件,以使用Apache的身份验证。它背后的想法是,它本来应该是简单的,但它正在变成比我预期的更大的工作。我意识到我必须将.htpasswd文件放在安全的地方,这意味着不能放在可通过web访问的目录中。问题是web服务

我正在创建一个基于PHP的web应用程序,它需要简单的身份验证才能使用。该应用程序被设置为安装在web服务器上,并且仅作为web主机/服务器的所有者使用,因此只有一个用户和密码。我觉得创建一个复杂的登录系统毫无意义。我只需要创建一个GUI来生成.htaccess和.htpasswd文件,以使用Apache的身份验证。它背后的想法是,它本来应该是简单的,但它正在变成比我预期的更大的工作。我意识到我必须将.htpasswd文件放在安全的地方,这意味着不能放在可通过web访问的目录中。问题是web服务器通常具有不同的文件系统和权限,因此我可以将其放置在安全的位置?我能够创建一个具有“740”权限的目录,据我所知,这应该是安全的。然而,这是不方便的。应用程序实际上应该被限制在一个文件夹中,如果需要的话,还应该有一个散乱的.htpasswd文件。我很想将.htpasswd放在应用程序文件夹中,但我认为如果它是由.htaccess文件保护的,那么这是不可能的,当我尝试时,它似乎会导致服务器错误。如果任何人有解决方案或更好的地方放置.htpasswd文件,将不胜感激

默认情况下,应根据以下规则将apache配置为不提供任何
.ht*
文件:

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

命令允许,拒绝
全盘否定
满足所有
因此,将此文件放在您想要的任何位置都应该是安全的


如果您遇到服务器错误,请检查
mod_auth
是否在apache安装中编译/启用,以及您的虚拟主机/webroot是否有
AllowOverride AuthConfig

查看。我知道htaccess和htpasswd如何工作,以及如何创建它们。我只是想知道如何放置跨平台兼容且安全的.htpasswd文件。谢谢,我没有意识到这一点。但是关于这些错误,只有当我将.htpasswd文件放在.htaccess受保护的文件夹中时,我才会收到它们。如果我启用
mod_auth
并设置
AllowOverride AuthConfig
,这是否允许我在没有错误的情况下执行此操作?因此,当您将.htpasswd放置在其他位置(并在htaccess中指定此路径)时,它工作正常(您必须登录才能查看页面)?我还没有测试过它,但我假设是这样的,然而,如果我输入了正确的用户和密码,它似乎不会验证并再次打开登录框。我的错误日志是这样写的:
原因:要求存在指令且没有权威处理程序。
这就是您所指的错误吗?