Apache 虚拟主机的配置[Ubuntu]

== 基本配置 == 我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了。那么要如何进行设置呢?这就是本 HowTo 想解决的问题了。在 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
这样你在浏览器上输入 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 站点去了

http://hi.baidu.com/%C0%EE%B1%F8/blog/item/e825321297f71350f919b824.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell脚本——数字计算

Shell 和其它编程语言不同&#xff0c;Shell 不能直接进行算数运算&#xff0c;必须使用数学计算命令 要想让数学计算发挥作用&#xff0c;必须使用数学计算命令&#xff0c;Shell 中常用的数学计算命令如下表所示。 运算操作符/运算命令说明(( ))用于整数运算&#xff0c;效率…

windows下最好的C++ IDE

1. 你是不是用惯了VC6.0&#xff1f;假如是&#xff0c;我现在推荐的IDE仍然是VC6.0的IDE。 2. 你是不是觉得VC6.0过时了&#xff0c;很多C语法它都不支持&#xff1f;我现在推荐的编译器她在一直发展着&#xff0c;支持最新的C语法。 3. VC.net的界面弱智&#xff0c;而且包含…

Shell脚本——内置命令

一、内置命令 所谓 Shell 内置命令&#xff0c;就是由 Bash 自身提供的命令&#xff0c;而不是文件系统中的某个可执行文件。 例如&#xff0c;用于进入或者切换目录的 cd 命令&#xff0c;虽然我们一直在使用它&#xff0c;但如果不加以注意很难意识到它与普通命令的性质是不…

Shell脚本——基础语法

一、条件判断 1.1、基本语法 [ condition ]&#xff08;注意condition前后要有空格&#xff09; 注意&#xff1a;条件非空即为true&#xff0c;[ abcdef ]返回true&#xff0c;[] 返回false。 1.2、常用判断条件 两个整数之间比较 字符串比较 -lt 小于&#xff08;less …

#2002 - 服务器没有响应 (or the local MySQL server's socket is not ...

经常见有兄弟遇到这样的问题&#xff1a; mysql -u root -p一切正常&#xff0c;但是用phpmyadmin却死活不对&#xff0c;提示如下错误&#xff1a; #2002 - 服务器没有响应 (or the local MySQL servers socket is not correctly configured) 我 google 了一下&#xff0c;发现…

第一个Scala程序——Hello World!

一、交互式编程 交互式编程不需要创建脚本文件&#xff0c;可以通过以下命令调用&#xff1a; $ scala Welcome to Scala 2.13.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_231). Type in expressions for evaluation. Or try :help.scala> println("Hello Wo…

CENTOS5下VSFTPD的设置

需求:&#xff08;虚拟用户分下载用户&#xff0f;下载、上传但不能删除用户&#xff0f;管理用户&#xff09; 一、安装 yum -y install vsftpd* yum -y install pam* yum -y install db4* 二、系统帐户 1、vsftpd服务的宿主用户 useradd vsftpd -s /sbin/nologin 2、…

Scala基础语法

如果你之前是一名 Java 程序员&#xff0c;并了解 Java 语言的基础知识&#xff0c;那么你能很快学会 Scala 的基础语法。 一、基本语法 Scala 基本语法需要注意以下几点&#xff1a; 区分大小写 - Scala是大小写敏感的&#xff0c;这意味着标识Hello 和 hello在Scala中会有不…

DNS详解

一、DNS 概念 人和人要互相识别和记忆,需要名字作为辅助,而对于网络世界,在因特网内也需要一种命名系统来做类似的事情,该系统使用了域来划分,任何一个网络里的主机(或者路由器)都有独一无二的域名(类似国家代码),域又能继续划分为子域(类似每个国家有不同的省份代…

Shell脚本——函数

Shell 函数的本质是一段可以重复使用的脚本代码&#xff0c;这段代码被提前编写好了&#xff0c;放在了指定的位置&#xff0c;使用时直接调取即可。 一、语法 Shell 函数定义的语法格式如下&#xff1a; function name() {statements[return value] }对各个部分的说明&#…

scala通过JDBC进行数据库操作

scala通过JDBC方式操作mysql (需要加载 mysql-connector-java 驱动) maven依赖&#xff1a; <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.45</version></dependency>一…

Linux下Java的安装与配置

0、下载好JDK安装包后上传到Linux服务器的/usr/local/java/下 1、解压tar -zxvf jdk-8u251-linux-x64.tar.gz 2、改名mv jdk1.8.0_251 jdk1.8 3、配置环境变量vi /etc/profile 添加以下内容 #JAVA export JAVA_HOME/usr/local/java/jdk1.8 export JRE_HOME$JAVA_HOME/jre e…

运维同步rsync

Rsync(remote rynchronization)是一款开源的、快速的、多功能的、可实现全量以及增量的本地或者远程数据同步的备份的优秀工具&#xff0c;可使本地主机不同分区或目录之间及本地和远程两台主机之间的数据快速同步镜像&#xff0c;远程备份等功能同时它在同步文件的同时可以保…

Spark初识-什么是Spark

Spark是一个基于内存的开源计算框架&#xff0c;于2009年诞生于加州大学伯克利分校AMPLab&#xff08;AMP&#xff1a;Algorithms&#xff0c;Machines&#xff0c;People&#xff09;&#xff0c;它最初属于伯克利大学的研究性项目&#xff0c;后来在2010年正式开源&#xff0…

系统优化

1、关闭selinux sed -i ‘s/SELINUXenforcing/SELINUXdisabled’ setenforce 0 2.精简开机服务 ntsysv setup system service

Spark初识-Spark与Hadoop的比较

Spark&#xff0c;是分布式计算平台&#xff0c;是一个用scala语言编写的计算框架&#xff0c;基于内存的快速、通用、可扩展的大数据分析引擎 Hadoop&#xff0c;是分布式管理、存储、计算的生态系统&#xff1b;包括HDFS&#xff08;存储&#xff09;、MapReduce&#xff08;…

Spark初识-Spark基本架构概览使用

当需要处理的数据量超过了单机尺度(比如我们的计算机有4GB的内存&#xff0c;而我们需要处理100GB以上的数据)这时我们可以选择spark集群进行计算&#xff0c;有时我们可能需要处理的数据量并不大&#xff0c;但是计算很复杂&#xff0c;需要大量的时间&#xff0c;这时我们也可…

Spark初识-弹性分布式数据集RDD

Spark 的核心是建立在统一的抽象弹性分布式数据集&#xff08;Resiliennt Distributed Datasets&#xff0c;RDD&#xff09;之上的&#xff0c;这使得 Spark 的各个组件可以无缝地进行集成&#xff0c;能够在同一个应用程序中完成大数据处理。 一、RDD概念 RDD 是 Spark 提供…

nmon

1).采集数据&#xff1a; #nmon -s10 -c60 -f -m /home/ 参数解释&#xff1a; -s10 每 10 秒采集一次数据。 -c60 采集 60 次&#xff0c;即为采集十分钟的数据。 -f 生成的数据文件名中包含文件创建的时间。 -m 生成的数据文件的存放目录。 这样就会生成一个 nmon 文件&…

Spark入门- Spark运行Local本地模式

一、Spark单机模式部署 Spark版本 &#xff1a; spark-2.4.7-bin-hadoop2.7 1、安装配置JDK环境 2、下载Spark 官网下载http://spark.apache.org/ 然后上传到LInux服务器上 3、解压 tar -zxvf spark-2.4.7-bin-hadoop2.7.tgz解压目录说明 bin 可执行脚本 conf …