如何在Apache服务器配置多端口运行多个网站
环境:
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 文件的内容。
0条评论