Make sure that the Apache option AccessFileName has a value set, eith in the glabal configuration file, or in the config file for your virtual host.
The name of the file which will be read in as the web server traverses the file directory tree.
To activate the password request edit your virtual host file adding the lines or lines similar to those below. The Text for AuthName can be anything you line. It is displayed in the dialog which will request the User name and password. Try it and see.
AuthType Basic AuthName "Enter your User name and password" AuthUserFile /etc/apache2/.htpassword require valid-user
To add a user and password to the .htpassword file or whatever you decided to call it. Run the command below once for each user.
htpasswd /etc/apache2/.htpassword USERNAME
We needto protect the password from prying eyes, change the owner and group to be root and www-data and then set the access to be as shown below.
chown root:www-data /etc/apache2/.htpassword chown 640 /etc/apache2/.htpassword
The help output from the htpasswd command.
Usage: htpasswd [-cmdpsD] passwordfile username htpasswd -b[cmdpsD] passwordfile username password htpasswd -n[mdps] username htpasswd -nb[mdps] username password -c Create a new file. -n Don't update file; display results on stdout. -m Force MD5 encryption of the password (default). -d Force CRYPT encryption of the password. -p Do not encrypt the password (plaintext). -s Force SHA encryption of the password. -b Use the password from the command line rather than prompting for it. -D Delete the specified user.
Do not forget to restart the Apache server to take the new settings into use.
sudo service apache2 restart