关闭 apache 的用户认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关闭 apache 的用户认证相关的知识,希望对你有一定的参考价值。

如何设置apche的配置文件,来关闭apache的认证呢? 调试的话每次认证真的非常麻烦,网上的都是如何设置认证,

不需要删除,让其实现认证即可。实现认证的步骤进行详细说明:
一、安装httpd软件包,并重启服务

二、编辑/etc/httpd/conf/httpd.conf

在文件中大约330行左右有一行

“AllowOverride none” 这个是系统默认的,无控制列表,见附。

这里将none改为AuthConfig参数,并添加以下几行内容,如下:

AllowOverride AuthConfig
AuthType Basic # 用户认证类型
AuthName "Restricted Site" # 认证时显示的名字
AuthUserFile /etc/httpd/conf/htpasswd # 认证时用户的账号密码文件
AuthGroupFile /etc/httpd/conf/htgroup #基于组的认证
# Require user tom # 只有tom用户才能登录
# Require group myusers # 允许哪个组中的用户登录
Require valid-user # 出现在账号密码文件中的用户都能登录

三、创建/etc/httpd/conf/htpasswd文件,及用户

使用htpasswd命令创建用户,在第一次创建时加-c可创建文件

# htpasswd -c -m /etc/httpd/conf/htpasswd tom

# htpasswd -m /etc/httpd/conf/htpasswd jerry

四、创建组文件/etc/httpd/conf/htgroup

在文件中写入一行

myusers: tom jerry
参考技术A 你只需要在apache的配置文件中找到如下配置,将他们注释掉即可
AllowOverride AuthConfig
AuthType Basic # 用户认证类型
AuthName "Restricted Site" # 认证时显示的名字
AuthUserFile /etc/httpd/conf/htpasswd # 认证时用户的账号密码文件
AuthGroupFile /etc/httpd/conf/htgroup #基于组的认证

apache用户认证域名跳转

1、apache 设置,用户访问时 目录或文件的认证:

对目录的认证:

<Directory /var/www/222>   //指定认证的目录
AllowOverride AuthConfig   //这个相当于打开认证的开关
AuthName "222 user auth"   //自定义认证的名字,作用不大
AuthType Basic       //认证的类型,一般为Basic
AuthUserFile /data/.htpasswd   //指定密码文件所在位置
require valid-user   //指定需要认证的用户为全部可用用户
</Directory>

配制:httpd-vhosts.conf文件:

创建相应的目录和 访问时的用户:
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd adc

若需要再增加用户,就可以不用-c(创建)了:
/usr/local/apache2.4/bin/htpasswd  -m /data/.htpasswd bcd

这是重启apache :
/usr/local/apache2.4/bin/apachectl graceful

在linux系统下可以这样子访问:

curl -x xxx.xxx.xxx.xxx:80  -uadb:password ddd.com -I

若用浏览器访问,就会发现访问时需要输入密码了

输入刚刚配制的用户名和密码后,就可以访问了。

对文件的认证:

 修改:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/222"
ServerName ddd.com
<FilesMatch 1.php>
AllowOverride AuthConfig
AuthName "222 user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>

 把它配制成:

重启apache:
/usr/local/apache2.4/bin/apachectl graceful

 访问默认页面:

创建1.php文件:
echo "<?php phpinfo(); ?>" > /var/www/222/1.php

访问1.php


 到此apache创建用户认证给配制完成。

 

2、apache的域名跳转:

编辑:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

需要加的配制:

<IfModule mod_rewrite.c>   //需要mod_rewrite模块支持
RewriteEngine On               //打开rewrite功能
RewriteCond %{HTTP_HOST} !^www.ggg.com$         //定义rewrite的条件,主机名(域名)不是www.ggg.com,那么就执行下面的规则
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L]       //定义rewrite规则
</IfModule>

重启apache服务:
/usr/local/apache2.4/bin/apachectl graceful

查看apache加载rewrite模块没有:
/usr/local/apache2.4/bin/apachectl -M |grep rewrite   

若没有开启,那么开启加载rewrite模块:

编辑:vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so  前面的#号给去掉,再重启apache

 

再次查看:

进行访问:

 到此,自动跳转就配制好了。

 

3、Apache访问日志(两种格式)

查看配制文件:/usr/local/apache2.4/conf/httpd.conf 里的:LogFormat,就可以看到相关的配制信息。

定义日志的格式(若开启了Vhost):
定义另一种日志格式:

然后,访问网站,查看日志格式:

以上有日志格式,就显示得更加详细了。

 

以上是关于关闭 apache 的用户认证的主要内容,如果未能解决你的问题,请参考以下文章

apache用户认证域名跳转

Apache用户认证

Apache用户认证

Apache使用mysql认证用户

Apache服务器的用户认证

Apache用户认证域名跳转Apache访问日志介绍