如何在 ubuntu server 16.04 中创建保护文件夹?

如何在 ubuntu server 16.04 中创建保护文件夹?

我在文件夹中DirectAdmin panel创建protect文件夹Admin,但我需要protect在 Ubuntu server 16.04 中创建文件夹而不使用DirectAdmin panel

例如在DirectAdmin面板中:

路径:/admin

文件:.htaccess

AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /home/user/domains/domain.com/.htpasswd/public_html/administrator/.htpasswd
AuthName "admin"
require valid-user

小路:/home/user/domains/domain.com/.htpasswd/public_html/administrator/.htpasswd

admin:$apr1$Zbp5WV.h$wmBNMkeSuUd./eL9OFwxX.

图片:

在此处输入图片描述

......

现在如何protect在 Ubuntu 服务器 16.04 中创建文件夹?

答案1

有两种方法可以实现此目的:

  1. 使用htpasswd命令,并

  2. 使用.htaccess文件

选项1:

  1. htpasswd第一次使用该命令时,我们这样使用:

    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.
    
  2. 对于其他用户,请忽略该-c参数

    sudo htpasswd /etc/apache2/.htpasswd another_user
    
  3. 配置 apache 来检查此文件 (.htpasswd):

    a. 打开相关域名的虚拟主机文件:

    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. 重启 apache:

      sudo service apache2 restart
    

选项 2:使用.htaccess file

  1. 找到包含文档根目录的 /var/www 目录的块。通过将该块中的 AllowOverride 指令从“无”更改为“全部”来启用 .htaccess 处理

    sudo nano /etc/apache2/apache2.conf
    
    <Directory /var/www/>
          Options Indexes FollowSymLinks
          AllowOverride All
          Require all granted
    </Directory>
    
      # save and close
    
  2. 添加.htaccess文件至protect folder

    sudo nano /var/www/html/.htaccess
    
    # Add the following
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    
  3. 重新启动apache:

    sudo service apache2 restart
    

笔记:

  1. 优点.htpasswd file

    Apache 不会在涉及目录的每个请求时重新读取这些文件,这有助于提高性能。

  2. 优点.htaccess file

    如果你不能修改Virtual host file这是正确的选择

  3. 您不必使用/etc/apache2/sites-enabled/000-default.conf您可能创建的任何虚拟主机

  4. 这是由VPS您控制的,对于共享主机,设置将依赖于主机,并且通常是自动的寻求建议客户服务在您的共享主机上。

来源:

https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-apache-on-ubuntu-14-04

相关内容