如何在Apache服务器配置多端口运行多个网站

如何在Apache服务器配置多端口运行多个网站,第1张

环境:

apache22

配置:

1注册端口,默认为80,可增加或修改,因此次需部署三个网站,因此至少增加两个端口(81,82);

2将端口和发布路径绑定,新增加两个VirtualHost,

<VirtualHost :80>

  ServerName  localhost

  Documentroot  "D:/publish/web"

</virtualHost>

<VirtualHost :81>

  ServerName  localhost1

  Documentroot  "D:/publish/web1"

</virtualHost>

<VirtualHost :82>

  ServerName  localhost2

  Documentroot  "D:/publish/web2"

</virtualHost>

:80,:81,:82即为网站端口;

3为多个网站发布目录授权,

<Directory "D:/publish/web">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

<Directory "D:/publish/web1">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

<Directory "D:/publish/web2">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

使用vim打开httpd-vhostsconf

4如何在Macbook Pro搭建PHP开发环境

将你要指定IP访问的虚拟主机配置复制一份,修改其中ServerName的值为IP

输入命令apachectl restart,重启Apache!

apache

Apache音译为阿帕奇,是北美印弟安人的一个部落,叫阿帕奇族,在美国的西南部。相传阿帕奇是一个武士,他英勇善战,且战无不胜,被印弟安人奉为勇敢和胜利的代表,因此后人便用他的名字为印弟安部落命名,而阿帕奇族在印第安史上也以强悍著称。

Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazoncom、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

Apache服务器拥有以下特性:

支持最新的HTTP/11通信协议

拥有简单而强有力的基于文件的配置过程

支持通用网关接口

支持基于IP和基于域名的虚拟主机

支持多种方式的HTTP认证

集成Perl处理模块

集成代理服务器模块

支持实时监视服务器状态和定制服务器日志

支持服务器端包含指令(SSI)

支持安全Socket层(SSL)

提供用户会话过程的跟踪

支持FastCGI

通过第三方模块可以支持Java Servlets

如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

http://wwwapacheorg/

是它的官方网站

双击文件apache_2213-win32-x86-no_sslmsi将自动安装Apache HTTP Server 2213,假设安装目录是%APACHE2_HOME%。安装过程中有以下选项:

for All Users, on Port 80, as a Service

only for the Current User, on Port 8080, when started Manually

推荐将Apache安装成启动服务(as a Service),在端口80侦听。如果安装成手动启动并在端口8080侦听,一来会和Tomcat占用的端口号冲突,二来在手动启动和停止Apache服务器的时候我遇到了一些麻烦。

如果已经有一个老版本的Apache服务器(如Apache 13)被安装成了启动服务并占用了端口80,可以进入老版本Apache服务器的安装目录(Apacheexe文件所在的目录),用以下命令将之关闭和移除:

apache -k shutdown

apache -k uninstall

如果没有把Apache 2安装成启动服务,可以使用以下命令增加Apache2启动服务:

%APACHE2_HOME%\bin\apache -k install

Apache 2安装成功后会在Windows启动时自动在端口80启动。同时启动的还有ApacheMonitor(该程序被加在开始/程序/启动菜单中)。ApacheMonitor可以监视Apache 2的运行状况,并提供方便的启动,关闭和重启操作,类似于Apache 13中的apmgrexe。对于热中于手动操作的用户来说,也可以退出ApacheMonitor,并将之从开始/程序/启动菜单中删除,这并不影响Apache 2的运行。

手动启动、关闭和重启Apache 2的方法如下:

%APACHE2_HOME%\bin\apache -k start

%APACHE2_HOME%\bin\apache -k restart

%APACHE2_HOME%\bin\apache -k shutdown

可能出现的问题和解决方法:

当启动、重启或关闭Apache 2时出现提示:No installed service named apache2 - Apache 2没有被安装成启动服务,需使用命令 %APACHE2_HOME%\bin\apache -k install 将之安装成启动服务。

当启动Apache 2时出现提示:Could not bind to address 0000:80 - 有其它程序占用了80端口,它们可能是老版本的Apache,也可能是其它的HTTP服务器(如Windows的IIS),需要将它们先关闭才能在端口80启动Apache 2

或者,由于是IIS在运行,IIS使用了80端口号,要把apache改成Port 8080,

改httpdconf文件中的listen 80-->listen 8080,

改完-->remove apache-->reinstall apache,

然后restart apache services,

需要在电脑中安装 Oracle Virtual Box 和 Vagrant 。

步骤1:创建 CentOS 虚拟机

在本地目录(本文中使用 ~/vagrant 目录)中创建一个 Vagrantfile 文件,内容如下:

# -- mode: ruby --

# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrantconfigure(VAGRANTFILE_API_VERSION) do |config|

configvmbox = "centos65"

configvmbox_url = "https://githubcom/2creatives/vagrant-centos/releases/download/v651/centos65-x86_64-20131205box"

configvmnetwork :forwarded_port, guest: 80, host: 8080

configvmnetwork :public_network

configsshforward_agent = true

end

在这里,我就不解释 Vagrant 和 Vagrantfile 了。 Vagrantfile 创建好后,在 Vagrantfile 所在目录中再创建一个 htdocs 目录并在其中创建一个 indexhtml 文件, html 文件内容如下:

This file is being server by http server running inside docker container

Vagrantfile 文件和 htdocs 目录都创建好了,现在我们来执行下面的命令:

vagrant up # 启动虚拟机,这一步可能会让我们选择网卡

vagrant ssh # 虚拟机启动后,通过ssh登陆到虚拟机中

步骤2:安装 docker

执行下面的命令来安装 docker :

sudo yum -y update # Update Installed packages

sudo yum install docker-io # Install Docker

sudo service docker start # Start Docker

步骤3:设置 Docker

Docker 需要一个基本的镜像才能运行,我们的所有容器都是(直接或间接)基于这样一个镜像来运行的,下面的命令把一个基本镜像 pull 到本地:

sudo docker pull centos # Download base image

步骤4:为我们的容器创建第一个镜像

# 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令

# 注:-t -i 参数用于创建一个虚拟的命令行。

sudo docker run -t -i centos /bin/bash

现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:

yum -y update # 更新软件包

yum install which # 安装which命令

yum install git # 安装Git

安装完成后,按 Ctrl + d 来退出容器的命令行。

# 执行sudo docker ps -a,可以看到被我们终止的容器

CONTAINER ID IMAGE COMMAND CREATED……

da9031d3568f centos:64 /bin/bash 5 minutes ago…

把我们所做的改变提交到一个新的容器:

# 这里我们创建一个自己的基础容器,容器中安装好了文章中所需的常用工具。读者的容器 id 可能与文章中的有所不同,以上一步 docker ps -a 的结果为准。

sudo docker commit da90 custom/base

容器成功提交后,执行 sudo docker images ,我们会看到刚才提交的容器(如下面的结果所示)。我们就以这个容器为基础容器,再来创建一个新的容器。

REPOSITORY TAG IMAGE ID CREATED

custom/base latest 05b6cecd370b 2 minutes ago

centos 64 539c0211cd76 10 months ago

centos latest 539c0211cd76 10 months ago…

步骤5:创建新的容器,并安装 apache

# 以 custom/base 容器为基础,运行一个新的容器。

sudo docker run -t -i custom/base /bin/bash

# 安装 httpd

yum install httpd

步骤6:再次提交新的容器

按 Ctrl + d 来退出容器的命令行,然后执行命令:

# 这个命令会把步骤5中我们安装 httpd 带来的改变提交到新的名为 custom/httpd 的容器镜像中。你的容器 id 可能会和文章中有所不同,以 sudo docker ps -a 命令的结果为准。

sudo docker commit aa6e2fc0b94c custom/httpd

你应该已经发现了,我们创建了一个带有 http 服务器并可以复用的容器镜像。你可以根据这种思想,为自己所需的每个组件都创建一个容器,然后把这些容器复用于开发环境或者生产环境。

步骤7:运行 http 服务器

# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM

# -v 参数把主机共享给虚拟机的一个卷挂载到容器中

# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile

# -p 参数把虚拟机的80端口映射到容器的80端口;虚拟机的80端口在 Vagrantfile 中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80

sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash

# 启动 Apache

apachectl -k start

步骤8:在浏览器中测试

在浏览器中浏览 http://localhost:8080 ,你应该可以看到步骤1中 html 文件的内容。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在Apache服务器配置多端口运行多个网站

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情