- 浏览: 109220 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
masuweng:
JAVA对数字证书的常用操作 -
beming:
org.springframework.beans.facto ...
利用Ant与Proguard混淆引用的子工程项目jar包及打war包 -
beming:
不错,挺清晰的
利用Ant与Proguard混淆引用的子工程项目jar包及打war包 -
sotired:
mark,看看
ExtJs2.0学习系列 - 索引贴
Apache 安装设置
- 安装Apache2
sudo apt-get install apache2
- 编辑/etc/apache2/apache2.conf(新安装的系统可能在/etc/apache2/conf.d/charset)文件,在改动之前,请先将该配置文件做个备份。以便在出错的时候可以恢复。将
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312
当然如果你网站的编码用的是UTF-8的话,也可以改为
AddDefaultCharset UTF-8
这样的话,我们就不会每次打开网页都是乱码了!
增加安全模块
增加安全模块,以保障Apache服务的正常运行,现在我们安装mod-security。(可选)
首先安装libapache2-mod-security包
sudo apt-get install libapache2-mod-security
该模块默认是没激活的,我们可以在/etc/apache2/mods-available目录下看到有mod-security.load文件,但在/etc/apache2/mods-enabled目录却没有它的软链接。我们现在激活它:
$sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load
$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf
$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig
$sudo vi /etc/apache2/mods-available/mod-security.conf
==== mod-security.conf 文件内容开始====
# 检测内容长度以避免堆溢出攻击
SecFilterForceByteRange 32 254 =>SecFilterForceByteRange 32 126
# debug设置
SecFilterDebugLevel 9 =>SecFilterDebugLevel 0
# 设置缺省的动作
SecFilterDefaultAction "deny,log,status:499" =>SecFilterDefaultAction "deny,log,status:404"
# 把设置传递给子目录
SecFilterInheritance Off
# Redirect user on filter match
# 当匹配sh的时候,重新定向到一个特殊的警告页面,该页面是自行编写的,写些警告的话让攻击者知难而退,该段先不要生效,等到相关配置配好之后再失效不迟。记住在配好之后要使之生效。
#SecFilter sh redirect:http://localhost/hack/warning.htm
# Prevent OS specific keywords
#过滤一些敏感的东西,我们使用*是为了攻击者使用/etc/./passwd来绕开检测
SecFilter /etc/passwd =>SecFilter /etc/*passwd
SecFilter /bin/*sh
# Very crude filters to prevent SQL injection attacks
# 防止SQL插入(SQL Injection)攻击
SecFilter "delete[[[space|space]]]+from" SecFilter "insert[[[space|space]]]+into" SecFilter "select.+from" SecFilter "select[[[space|space]]]+from" SecFilter "union[[[space|space]]]+from"
==== mod-security.conf 文件内容结束====
sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf
重启Apache2服务即可。
sudo /etc/init.d/apache2 restart
备注:第三步可能会引起部分网站不能正常运行,可以参照着去掉某些限制,由于是安全模块,所以参照的是防火墙的做法,关掉一切不安全的,再根据需要打开必要的。
测试环境- 操作系统:Ubuntu 9.0.4
- 测试机地址:10.39.6.59
- 测试机域名:*.firehare.com
基本配置
我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了。那么要如何进行设置呢?这就是本指南想解决的问题 了。在 Ubuntu 的 /etc/apache2/ 目录下有个 Apache2 的主配置文件 apache2.conf。在该文件中我们可以看到有这么一行内容:
Include /etc/apache2/sites-enabled/[^.#]*
这行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#" 这两个字符的所有文件。而当我们列出该目录的文件时,发现只有一个 000-default 的软链接文件,实际连接的是 /etc/apache2/sites-available 目录中的 default 文件,不难看出该文件的文件名中并不包含 "." 或 "#"。所以这个文件当然是要被配置文件 apache2.conf 所包含的了。打开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为 *,所以它实际上是一个通用配置文件。如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:
NameVirtualHost 10.39.6.59
<VirtualHost 10.39.6.59>
ServerName www.firehare.com
ServerAdmin ubuntu.firehare@gmail.com
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句:
- `NameVirtualHost 10.39.6.59`:表示我们要做的是一个基于名称的虚拟主机,且其 IP 地址为 10.39.6.59
- `<VirtualHost 10.39.6.59> 和 </VirtualHost>`:表示在其中的是一个虚拟主机的配置
- `ServerName www.firehare.com`:设置虚拟主机的域名
- `ServerAdmin ubuntu.firehare@gmail.com`:设置该虚拟主机网管员的邮件
- `DocumentRoot /var/www/`:设置该虚拟主机的主目录路径
- `ErrorLog /var/log/apache2/error.log`:设置该虚拟主机的出错信息
- `CustomLog /var/log/apache2/access.log combined`:设置该虚拟主机的访问信息
这样我们就配置了一个虚拟主机 www.firehare.com。但由于这是缺省配置,所以在 Apache2 重启之后,无论你输入 DNS 服务器中指向这个主机的任何域名,都会被导向 www.firehare.com 这个缺省配置所指向的 /var/www 这个目录的。除非该域名被其他虚拟主机配置所用,比如我们还配置了 edunuke.firehare.com 指向本机,且配置了相应的虚拟主机,这样的话,输入域名 edunuke.firehare.com 就会被对应该域名的目录中。
进一步说明
为了说明清楚 我们再添加一个虚拟主机站点 edunuke.firehare.com,首先到 /etc/apache2/sites-available/ 目录中建立一个文件 edunuke。当然这个文件名中是没有 "." 或 "#" 这两个字符的了。然后编辑该文件:
<VirtualHost 10.39.6.59>
ServerName edunuke.firehare.com
ServerAdmin ubuntu.firehare@firehare.com
DocumentRoot "/var/www/edunuke/"
ErrorLog "/var/log/apache2/edunuke_errors.log"
CustomLog "/var/log/apache2/edunuke_accesses.log" common
</VirtualHost>
设置的具体含义同上面的相似,这是我就不再多说了。然后再运行命令:
sudo a2ensite edunuke
这样的话,虚拟主机站点 edunuke.firehare.com 就已经安装好了。这时你也可以在 /etc/apache2/sites-enabled/ 目录中发现多了一个到 /etc/apache2/sites-available/edunuke 的软链接。接下来就是将 Apache2 重启来使虚拟主机站点运行起来:
sudo /etc/init.d/apache2 restart 这里可以使用reload 重新加载
这样你在浏览器上输入 edunuke.firehare.com 的话,就会被指向 /var/www/edunuke 目录了,而输入其他指向本机的域名则都会指到缺省配置中的 /var/www 目录中。熟悉 Apache2 的朋友会问为什么这样麻烦,放在一个文件中不也是可以吗?为什么要用两个文件呢?其实很简单,因为如果我要对 edunuke 站点进行维护时,我只要运行命令:
sudo a2dissite edunuke
sudo /etc/init.d/apache2 restart
即可,这样既可以维护 edunuke 这个站点,同时还不影响其他站点的正常运行。
高级配置
上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone 的话,上面的这点设置是远远不够的,由于 Zope+Plone 结构所采用的端口并非是80端口,所以我们还得做端口重定向。为了能够做这个,我们得激活 Rewrite 和 Proxy 两个模块。激活模块很简单,同站点配置目录一样,在 Apache2 中也有两个模块配置目录:mods-available 和 mods-enabled。在 mods-available 目录中的是所有可用的模块,而在 mods-enabled 目录中的则是已被安装到 Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy 模块的配置引导文件,所以只需要简单地将其安装到 Apache2 中即可。使用命令:
sudo a2enmod rewrite
sudo a2enmod proxy
然后,添加虚拟主机站点 plone.firehare.com,同 edunuke 站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或 "#" 这两个字符的了。然后编辑该文件:
<VirtualHost 10.39.6.59>
ServerName plone.firehare.com
ServerAdmin ubuntu.firehare@firehare.com
ErrorLog "/var/log/apache2/plone_errors.log"
CustomLog "/var/log/apache2/plone_accesses.log" common
RewriteEngine on
RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P]
<Proxy *>
Order Deny,Allow
Deny from all
Allow from all
</Proxy>
</VirtualHost>
这样就安装好了 plone.firehare.com 虚拟主机站点,可以在浏览器中地址栏中输入 http://plone.firehare.com 就可以重定向到 Zope+Plone 站点去了。
发表评论
-
分享J2EE学习的20个网站
2009-11-10 11:07 1063前人栽树,后人乘凉。 ... -
struts2标签集
2009-11-12 11:38 545A: <s:a xhref="" ... -
struts2标签使用 (#$%)/js命名空间
2009-11-13 14:49 781session中存有UserVO值对象,其中有networkL ... -
Struts2使用之值栈与OGNL-使用
2009-11-25 16:47 1010Struts2使用之值栈与OGNL-使用 ... -
jQuery+struts+json
2009-12-09 12:10 823在struts中采用jquery利用json数据来动态无刷新更 ... -
提高JAVA代码质量,减少代码缺陷
2009-12-09 14:10 1052这是最新一期IBM developworks的专题,摘录了一些 ... -
struts2.0标签应用–for循环的实现
2009-12-30 15:01 822<!--header.php end--> & ... -
JSP防止重复提交,重复刷新,后退
2010-01-06 12:24 1296一。前言 你在任何一个 ... -
用Session实现在线统计的功能(HttpSessionListener)
2010-01-18 16:52 1212如何用Session实现在线统计的功能,其实只要对Servle ... -
struts2:利用标签显示List嵌套Map
2010-02-01 17:12 1131List中存放一个Map,利用<s:iterator/& ... -
REFERER及jsp中request.getHeader() 相关详细
2010-02-23 17:42 935在三种情况下,<%=request.getHeader( ... -
Ubuntu下安装和配置Apache2
2010-03-05 10:15 992在Ubuntu中安装apache 安装 ... -
Struts2的Result Type
2010-03-07 15:46 0chain 用来处理Act<wbr> ... -
Java读写cookie
2010-04-02 09:51 757<!--<br><br> ... -
JSP容器的初始化和销毁 - ServletContext(转)
2010-04-20 10:19 1292ServletContext 被 Servlet 程序用来与 ... -
快速建立Subversion服务器
2010-05-20 16:19 705如何快速建立Subversion服务器,并且在项目中 ... -
Log4J使用完全手册(转)
2010-07-14 22:08 790Log4J是Apache的一个开放源代码项目(http:// ...
相关推荐
在Linux Ubuntu系统中安装Apache2是一项基础且重要的任务,它能让你的系统成为一个简单的Web服务器。Apache2是一个开源且功能强大的HTTP服务器,广泛应用于各种Linux发行版,包括Ubuntu。以下是安装和配置Apache2的...
"zh-CN"文件可能是语言包的具体文件,安装后将使Apache OpenOffice的界面和帮助文档变为中文。对于中文用户来说,这极大地提高了使用便捷性和用户体验。 总之,Apache OpenOffice 4.1.14 Linux 64位中文语言包提供...
DEB是Debian和基于Debian的Linux发行版(如Ubuntu)所使用的软件包管理格式,它允许用户通过系统包管理器轻松地安装、升级和卸载软件。 "zh-CN" 表示这个版本的OpenOffice已经本地化为简体中文,这意味着所有的界面...
Ubuntu 安装配置 Apache2+Tomcat6+Mysql5 全攻略 本文将详细介绍如何在 Ubuntu 8.04 Server 版本上安装和配置 Apache2、Tomcat6 和 Mysql5。该配置能够提供一个稳定的 Web 服务器环境,支持中文和 Linux 下的中文...
以下是与Apache Karaf中文文档相关的知识点: 1. Karaf的安装 - 安装Karaf需要满足一定的系统要求,包括至少20MB的磁盘空间用于安装包,以及200MB的磁盘空间用于保存发布源码、git拷贝、Maven以及下载的依赖包。 ...
- 将Ubuntu安装光盘放入光驱,并在BIOS设置中将光驱设为优先启动设备。 **2. 启动界面** - 在启动界面中,选择“English”,然后回车开始安装流程。 **3. 选择语言** - 在语言选择界面,可以选择细分的语言类型...
本教程将详细阐述如何在Linux环境中安装Apache2.4.6并设置其自启动,以确保服务器在系统启动时自动运行。 首先,我们需要确保系统已经安装了必要的开发工具和依赖库。在基于Red Hat的系统(如CentOS)上,可以使用...
OpenOffice 4.1.8 是一款...安装OpenOffice 4.1.8 在Ubuntu上,用户不仅可以享受到免费的办公软件,还能体验到良好的中文支持,以及与商业软件相媲美的功能和性能。对于个人用户和企业来说,这都是一个经济高效的选择。
包括安装 Ubuntu、设置语言和时钟、分区和格式化磁盘、设置主机名和用户名、安装 OpenSSH 服务器、配置网络代理、安装 GRUB 引导器等步骤。 一、安装 Ubuntu 首先,将 Ubuntu 光盘放入光驱中,选择光盘启动,语言...
- **中文界面问题解决**:复制Windows系统的宋体字体文件`simsun.ttc`至Ubuntu,并重命名为`LucidaSansRegular.ttf`,放置于`/usr/local/Zend/ZendStudio/jre/lib/`目录下,解决界面显示乱码问题。 以上知识点涵盖...
- **中文乱码问题**:在Ubuntu等Linux发行版中,可能会出现中文显示乱码的情况。这通常是由于系统编码或字符集设置不当导致的。为了解决这一问题,可以按照以下步骤操作: - 安装中文支持:通过命令`sudo apt-get ...
在本文中,我们将详细介绍如何在虚拟机中安装Ubuntu操作系统,特别是针对初学者,提供一个简单易懂的步骤指南。Ubuntu是一款流行的开源Linux发行版,以其用户友好的界面和丰富的软件库受到广泛赞誉。通过虚拟机,...
总的来说,Apache OpenOffice 4.1.10 Linux x86-64安装包为Linux用户提供了一套完整的办公解决方案,它不仅功能强大,而且具有跨平台性,支持多种语言,尤其是对中文用户的友好支持,使其成为许多企业和个人的首选。
- `sudo apt-get install language-pack-zh-han*` 安装中文语言包,方便非英语使用者。 3. **应用部署**: - 使用 "Mobaxterm" 软件可以方便地远程管理服务器,比如上传文件。 - 从 https://bitnami.com/stacks ...
4. **安装Ubuntu**: 选择中文语言以方便操作,至少分配两个分区,一个为根目录(/),大小建议10GB以上,另一个为交换分区(Swap),大小通常是内存的2倍(若内存小于2GB)或固定2GB(若内存大于等于2GB)。...
1. 安装语言包:如果你希望Ubuntu显示中文,可以通过“系统” → “系统管理” → “新立得软件包管理器”来安装中文语言包。 2. 使用软件包管理器安装Apache:在新立得软件包管理器中选择并安装相关的软件包,包括...
你可以参考"安装流程.txt"文件中的指导,或访问Apache OpenOffice的官方网站获取更详细的在线预览设置步骤。 总的来说,Apache OpenOffice 4.1.7 提供了一个强大且免费的办公解决方案,尤其适合那些希望避免软件...
### Ubuntu上安装Cacti监控系统详解 #### 一、Cacti简介 Cacti是一款功能强大的网络流量监控工具,它可以自动发现网络设备并绘制图表。这些图表可以帮助管理员了解网络带宽使用情况以及网络设备的性能指标。Cacti...
本文主要讲述如何在 Ubuntu 12.04 服务器版上安装 Asterisk,包括安装 LAMP 套件、phpmyadmin、Apache 配置和解决中文乱码问题等步骤。 首先,安装 LAMP 套件,包括 Apache2、Mysql-server、mysql-client、php5、...