2013-12-30 11:31:01
来 源
IT技术网
Linux Apache配置
本文介绍Apache服务器的用户验证配置方法,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。
apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。

前期准备,必须已经安装apache.

第1步:

我们在/var/www(apache的主页根目录)下建立一个test目录

mkdir /var/www/test

第2步

然后我们编辑httpd.conf

添加

Alias /test"/var/www/test"

Options Indexes MultiViews

AllowOverride AuthConfig #表示进行身份验证

Order allow,deny

Allow from all

#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置

第3步

在/var/www/test创建.htaccess文件

vi /var/www/test/.htaccess

AuthName "frank share web"

AuthType Basic

AuthUserFile /var/www/test/.htpasswd

require valid-user

#AuthName 描述,随便写

#AuthUserFile /var/www/test/.htpasswd

#require valid-user 或者 require user frank 限制是所有合法用户还是指定用户

#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。

第4步

就是创建apache的验证用户

htpasswd -c /var/www/test/.htpasswd frank

#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数

如果你们想修改密码,可以如下

htpasswd -m .htpasswd frank

第5步:

ok,重启apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行

后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。 [#page_#][#page_#]

重启机器看tomcat是否可以自动启动了。

2.2.2 使用jsvc,增加安全性

方法2.2.1有一个严重的问题,那就是tomcat具有root权限。我意味着你的任何一个jsp脚本都具有root权限,所以可以轻易地用jsp脚本删除你整个硬盘里的东西!所以我们最好不要使用2.2.1方法。

我们下载的jakarta-tomcat-5.0.28.tar.gz带有jsvc工具,在压缩包里的jakarta-tomcat- 5.0.28/bin/jsvc.tar.gz,如果你按上面的步骤做了,它就在 /usr/share/tomcat5/bin/jsvc.tar.gz,把其解压,得到/usr/share/tomcat5/bin/jsvc- src文件夹。在终端运行:

/usr/share/tomcat5/bin/jsvc-src/configure --with-java=/usr/lib/j2sdk1.4-sun

make

得到/usr/share/tomcat5/bin/jsvc-src/jsvc文件。把/usr/share/tomcat5/bin/jsvc- src/native/tomcat5.sh脚本文件拷贝到/etc/init.d下,再使用2.2.1中的的半部分方法把tomcat设置为自启动。

/etc/init.d/tomcat5.sh还需要修改,使其看起来像:

JAVA_HOME=/usr/lib/j2sdk1.4-sun

CATALINA_HOME=/usr/share/tomcat5

DAEMON_HOME=/usr/share/tomcat5

TOMCAT_USER=tomcat5 #这里改为一个普通身份的用户名

TMP_DIR=/var/tmp

CATALINA_OPTS=

CLASSPATH=

$JAVA_HOME/lib/tools.jar:

$CATALINA_HOME/bin/commons-daemon.jar:

$CATALINA_HOME/bin/bootstrap.jar

case "$1" in

start)

#

# Start Tomcat

#

$DAEMON_HOME/bin/jsvc-src/jsvc

......

先不要重启试验,请手动运行/etc/init.d/tomcat5.sh start,然后在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080看tomcat是否能够启动,再运行/etc/init.d/tomcat5.sh stop看是否能停止。

问题:无法用jsvc启动tomcat?

在http: //jakarta.apache.org/commons/daemon/faq.html有说明。如果你使用Debian,运行modconf然后把 /kernel/security下的capability模块安装上。如果你使用其它的版本,并且把capability编绎为模块,请在 /etc/init.d/tomcat5.sh的合适位置(你想使用第2行?)加上modprobe capability。

3,设置tomcat的server.xml布署网站

如果你想让别人在浏览器中输入你的IP而不需要在IP后面加上“:端口号”就能访问你的网站的话,请把。


<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />中的port="8080"改为port="80",因为80是浏览器请求的默认端口。找到 <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

修改为使appBase="/home/tomcatweb"

并在其后面加上:

把你自己的index.jsp放在/home/tomcatweb目录下,然后在浏览器中输入http://127.0.0.1,你应该就能看到index.jsp的运行结果了。

4,中文问题

tomcat并没有特殊的中文问题。而且大部分情况下的中文问题是因为用户根本就不会写JSP代码,甚至不会写HTML代码。

4.1 简单HTML文件的乱码问题

一个HTML文件,里面包含有中文文字,如:

[#page_#]

上面的标签告诉浏览器你的HTML文件使用的是UTF-8编码格式。请把UTF-8正确地设置为你的文本编辑器保存时的编码,否则,只有全英文HTML源码文件才能保证不出现乱码。

4.2 简单的JSP文件的乱码问题

一个JSP文件,里面包含有中文文字,如:

<%@ page contentType="text/html; charset=UTF-8" %><html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><% out.println("你好。");%></html>

标签告诉tomcat和java编绎器你的文件的编码是UTF-8格式的。

4.3 被包含的文件的内容是乱码

如果你的parent.jsp文件中使用<jsp:include page="child.jsp" />文件包含了child.jsp,请在parent.jsp和child.jsp文件中都指定了正确的<%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码),两者可以不一样。 如果你的parent.jsp文件中使用<%@ include file="child.jsp" %>文件包含了child.jsp,请保证parent.jsp和child.jsp是相同的编码,并且在parent.jsp中设置了正确的 <%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码)。不要在child.jsp中设置<%@ page contentType="text/html; charset=UTF-8" %>,否则,tomcat会出错(不总是)。

4.4 POST方法的乱码

在request.getParameter();之前运行request.setCharacterEncoding("UTF-8");,其中UTF-8是你的jsp文件编码。

4.5 使用javaIO读取的文件是乱码

请重写你的函数,而不是试图更改tomcat的设置。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。