2015-03-31 101 views
2

我正在尝试添加HTTP身份验证到我的基于PHP的Heroku应用程序。我发现了一个很棒的Github主题here,它提供了在我的Heroku目录中创建.htaccess和.htpasswd文件的代码。我目前在/ app /目录中都有这两个文件(所以.htaccess位于/app/.htaccess,而.htpasswd位于/app/.htpasswd)。但是,当我导航到我的应用程序并输入用户名和密码时,出现500内部服务器错误。检查日志文件的Heroku,我只能看到我的htpasswd文件没有被发现:如何将HTTP身份验证添加到基于PHP的Heroku应用程序?

(2)没有这样的文件或目录:[IP删除] AH01620:无法打开密码文件:/app/.htpasswd

这里是我的.htaccess文件的全部内容:

的AuthUserFile /app/.htpasswd 基础进行AuthType AuthName指令 “我的文件” 需要有效的用户

如果我在Heroku和“LS运行庆典-a',我可以看到我的.htpasswd文件肯定位于/ app /目录中。

有人知道这里发生了什么?有没有什么,我失去了这个设置?

回答

2

想通了!我需要在我的项目的主目录(在本地机器上)创建.htpasswd文件,然后将该文件添加到我的git仓库,并将整个项目推送到Heroku。由于某种原因,当我使用“heroku运行bash”,然后执行命令来添加.htpasswd文件时,似乎Heroku将该文件添加到临时dyno /实例而不是我的应用程序的永久版本中。

对于谁是试图做到这一点,需要一个简单的终端到终端的解释其他新秀:

  • (在本地机器上)每创建一个在您的git回购的主目录中的.htaccess文件 https://gist.github.com/bbrewer97202/3316425的说明。对于我的应用程序,我遗漏了 AuthFile行的/ www部分,因为我的Heroku实例上没有/ www /文件夹 。
  • 在您的本地机器上使用终端,通过在该目录中输入“htpasswd -c .htpasswd [username]”,在git repo的主目录中创建一个.htpasswd文件。
  • 提交一切git,然后推送到Heroku服务器。
+0

这是不安全的,因为任何能够访问存储库资源(协作者?public probject?)的人都可以访问您的登录凭证。 – VxJasonxV 2016-06-03 04:53:39

相关问题