2015-03-31 102 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

相關問題