Existem duas opções para fazer isso:
-
Usando o comando
htpasswd
e -
Usando o arquivo
.htaccess
Opção 1:
-
Ao usar o comando
htpasswd
pela primeira vez, nós o usamos assim:sudo htpasswd -c /etc/apache2/.htpasswd sammy # you wil be asked for password for user sammy # content of .htpasswd would be # sammy:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz. # another_user:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.
-
para usuários adicionais, deixe de fora o argumento
-c
sudo htpasswd /etc/apache2/.htpasswd another_user
-
Configure o apache para verificar este arquivo (.htpasswd):
a. Abra o arquivo do host virtual para o domínio em questão:
sudo nano /etc/apache2/sites-enabled/000-default.conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html/MyDomain/protect_folder"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
b. Reinicie o apache:
sudo service apache2 restart
Opção 2: usando .htaccess file
-
Encontre o bloco para o diretório / var / www que contém a raiz do documento. Ative o processamento do .htaccess alterando a diretiva AllowOverride dentro desse bloco de "Nenhum" para "Todos"
sudo nano /etc/apache2/apache2.conf <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> # save and close
-
Adicione o arquivo
.htaccess
aprotect folder
:sudo nano /var/www/html/.htaccess # Add the following AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user
-
Reinicie o apache:
sudo service apache2 restart
Nota:
-
Vantagem de
.htpasswd file
:O Apache não relerá esses arquivos em todas as solicitações que envolvem o diretório, o que ajuda no desempenho.
-
Vantagem de
.htaccess file
:Se você não pode modificar o
Virtual host file
este é o escolha certa -
Você não precisa usar
/etc/apache2/sites-enabled/000-default.conf
para usar qualquer host virtual que tenha criado -
Isso é para um
VPS
que você controla, pois a configuração de hospedagem compartilhada depende do host e geralmente é automatizada procure orientação de atendimento ao cliente em seu host compartilhado.
Fonte: