Как добавить HTTP-аутентификацию в приложение Heroku на основе PHP?

Я пытаюсь добавить HTTP-аутентификацию в свое приложение Heroku на основе php. Здесь я нашел отличную суть Github, которая предоставляет код для создания файлов.htaccess и.htpasswd в моем каталоге Heroku. В настоящее время у меня есть оба файла в каталоге / app / (поэтому.htaccess находится в /app/.htaccess, а.htpasswd - в /app/.htpasswd). Однако, когда я перехожу к своему приложению и ввожу имя пользователя и пароль, я получаю 500 внутреннюю ошибку сервера. Проверяя файл журнала Heroku, я вижу только то, что мой файл.htpasswd не был найден:

(2) Нет такого файла или каталога: [IP удален] AH01620: Не удалось открыть файл пароля: /app/.htpasswd

Вот полное содержимое моего файла.htaccess:

AuthUserFile /app/.htpasswd AuthType Basic AuthName "Мои файлы" Требуется valid-user

Если я запускаю bash на heroku и 'ls -a', я вижу, что мой файл.htpasswd определенно находится в каталоге / app /.

У кого-то есть идеи, что здесь происходит? Есть ли что-то, чего мне не хватает в плане настройки?

1 ответ

Догадаться! Мне нужно было создать файл.htpasswd в главном каталоге моего проекта (на моем локальном компьютере), затем добавить этот файл в мое git-репозиторий и перенести все это в Heroku. По какой-то причине, когда я использовал "heroku run bash", а затем выполнил команду для добавления файла.htpasswd, кажется, что Heroku добавил этот файл во временную версию / экземпляр, а не в постоянную версию моего приложения.

Для других новичков, которые пытаются сделать это и нуждаются в простом сквозном объяснении:

  • Создайте файл.htaccess в главном каталоге вашего git-репо (на вашем локальном компьютере) в соответствии с инструкциями на https://gist.github.com/bbrewer97202/3316425. Для моего приложения я пропустил часть /www строки AuthFile, потому что в моем экземпляре Heroku нет папки /www /.
  • Используя терминал на вашем локальном компьютере, создайте файл.htpasswd в главном каталоге вашего репозитория git, введя "htpasswd -c.htpasswd [имя пользователя]", как только вы окажетесь в этом каталоге.
  • Зафиксируйте все для мерзавца, а затем отправьте на сервер Heroku.
Другие вопросы по тегам