linux环境apache多端口配置虚拟主机的方法深入介绍

  默认情况下,linux上apache使用的

  默认文档目录是:/var/www

  默认端口是:80

  如果想发布自己的一个系统资源目录,可以使用下面的方法,执行如下命令:

  (1)添加监听端口

  #cd /etc/apache2

  #vim ports.conf

  文件添加:

  NameVirtualHost *:8000

  Listen 8000

  (2)配置虚拟目录

  #cd /etc/apache2/sites-available

  #cp default default-me

  #vim default-me

  文件内容如下:

  

复制代码 代码如下:

  <VirtualHost *:8000 >

  ServerAdmin webmaster@localhost

  DocumentRoot /wwwroot

  <Directory / >

  Options FollowSymLinks

  AllowOverride None

  </Directory>

  <Directory /wwwroot/ >

  Options Indexes FollowSymLinks MultiViews

  AllowOverride None

  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

  </VirtualHost>

  粗体部分是关键点。

  (3)发布站点

  # ln -s /etc/apache2/sites-available/default-me /etc/apache2/sites-enabled/001-default

  (4)重启服务

  #/etc/init.d/apache2 restart

  (5)测试

  http://localhost:8000/

  如果能够正常访问就说明配置正确了。

  

复制代码 代码如下:

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  # Virtual Hosts

  #

  # If you want to maintain multiple domains/hostnames on your

  # machine you can setup VirtualHost containers for them. Most configurations

  # use only name-based virtual hosts so the server doesn't need to worry about

  # IP addresses. This is indicated by the asterisks in the directives below.

  #

  # Please see the documentation at

  # <URL:http://httpd.apache.org/docs/2.2/vhosts/ >

  # for further details before you try to setup virtual hosts.

  #

  # You may use the command line option '-S' to verify your virtual host

  # configuration.

  #

  # Use name-based virtual hosting.

  #

  NameVirtualHost *:81

  NameVirtualHost *:82

  NameVirtualHost *:83

  NameVirtualHost *:84

  NameVirtualHost *:85

  NameVirtualHost *:86

  #

  # VirtualHost example:

  # Almost any Apache directive may go into a VirtualHost container.

  # The first VirtualHost section is used for all requests that do not

  # match a ServerName or ServerAlias in any <VirtualHost> block.

  #

  <VirtualHost *:81>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/www-nongye

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/www-nongye/errornongye.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:82>

  <Directory "D:/AppServ/www-chinaec" >

  Options FollowSymLinks

  #Deny from all

  Allow from all

  </Directory>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www-chinaec

  ServerName www.dede.com

  DirectoryIndex index.php index.html

  ErrorLog D:/AppServ/www-chinaec/errornongjiale.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:83>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/www-05110

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/www-05110/errornong05110.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:84>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/wordpress

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/wordpress/errornongwordpress.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:85>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/magento

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/magento/errormagento.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:86>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/magento1322

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/magento1322/errormagento1322.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:88>

  ServerAdmin [email protected]

  DocumentRoot D:/AppServ/www/www-nongjiale

  ServerName www.dede.com

  ErrorLog D:/AppServ/www/www-nongjiale/errornongjiale.log

  CustomLog logs/dummy-host2.appservnetwork.com-access_log common

  </VirtualHost>

  <VirtualHost *:80>

  ServerAdmin [email protected]

  DocumentRoot "C:/Apache2.2/docs/dummy-host2.x"

  ServerName dummy-host2.x

  ErrorLog "logs/dummy-host2.x-error.log"

  CustomLog "logs/dummy-host2.x-access.log" common

  </VirtualHost>

  1、单域名单端口设置

  如:www.abc.com 默认用80访问

  特别说明,apache的配置默认都在安装目录下的conf目录里面

  或者是/etc/apache2

  不过一定要注意,listen.conf文件中端口监听是否开启

  如下图,表示已经开启80端口监听

  直接默认

  1、单域名单端口设置

  如:www.abc.com 默认用80访问

  特别说明,apache的配置默认都在安装目录下的conf目录里面

  或者是/etc/apache2

  不过一定要注意,listen.conf文件中端口监听是否开启

  如下图,表示已经开启80端口监听

  直接默认修改default-server.conf

  这个配置最好简单

  安装好了,之后,默认已经能够使用了,只是要把它修改成你需要的域名及访问路径罢了。

  给一个标准配置吧

  

复制代码 代码如下:

  DocumentRoot "/srv/www/htdocs"

  #

  # Configure the DocumentRoot

  #

  <Directory "/srv/www/htdocs">

  # Possible values for the Options directive are "None", "All",

  # or any combination of:

  #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

  #

  # Note that "MultiViews" must be named *explicitly* --- "Options All"

  # doesn't give it to you.

  #

  # The Options directive is both complicated and important.  Please see

  # http://httpd.apache.org/docs-2.2/mod/core.html#options

  # for more information.

  Options None

  # AllowOverride controls what directives may be placed in .htaccess files.

  # It can be "All", "None", or any combination of the keywords:

  #   Options FileInfo AuthConfig Limit

  AllowOverride None

  # Controls who can get stuff from this server.

  Order allow,deny

  Allow from all

  </Directory>

  2、单域名多端口设置

  

复制代码 代码如下:

  <Directory "/srv/www/htdocs/bbs">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  <Directory "/srv/www/htdocs/">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  NameVirtualHost   *:80

  NameVirtualHost   *:81

  <VirtualHost *:80>

  DirectoryIndex  index.html index.php

  ServerName   "www.abc.com "

  DocumentRoot   "/srv/www/htdocs/"

  </VirtualHost>

  <VirtualHost *:81>

  DirectoryIndex   index.php

  ServerName   "www.abc.com:81 "

  DocumentRoot   "/srv/www/htdocs/bbs/"

  </VirtualHost>

  3、多域名多端口设置

  

复制代码 代码如下:

  <Directory "/srv/www/htdocs/btc">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  <Directory "/srv/www/htdocs/bbs">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  <Directory "/srv/www/htdocs/">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  NameVirtualHost   *:80

  NameVirtualHost   *:81

  <VirtualHost *:80>

  DirectoryIndex  index.html index.php

  ServerName   "www.abc.com "

  DocumentRoot   "/srv/www/htdocs/"

  </VirtualHost>

  <VirtualHost *:80>

  DirectoryIndex  index.html index.php

  ServerName   "www.btc.com "

  DocumentRoot   "/srv/www/htdocs/btc"

  </VirtualHost>

  <VirtualHost *:81>

  DirectoryIndex   index.php

  ServerName   "www.abc.com:81 "

  DocumentRoot   "/srv/www/htdocs/bbs/"

  </VirtualHost>

  需要注意的问题是,多端口监听,一定要注意listen.conf文件,是否开启了相应端口。