Ubuntu 下apache2 虚拟主机配置

来源:互联网 发布:多学科优化 编辑:程序博客网 时间:2024/04/27 21:49
一、安装:
ubuntu 及debian 下的apahce 有点特别,如果使用apt-get 方式安装( apt-get install apache2 ) 则安装目录默认在 /etc/apache2 默认log在 /var/log/apache2/ (这个鸟地方让我找了好久)

二、配置文件说明
/etc/apache2/apache2.conf 此为apache2 的主配置文件 具体可参考 http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html
/etc/apache2/ports.conf 此为apache2的端口配置文件,此处设置了apache2 需要监听的端口 使用 Linsten port 格式
/etc/apache2/httpd.conf 此为apache2的用户 “主” 配置文件,这里可以直接配置网站目录,也可以只写一些全局网站生效的设置,eg:目录权限。默认为空,即所有内容由虚拟主机配置文件(即单独的网站配置文件)设置。需要注意一点 针对虚拟主机,ServerName 项需要在这里设置(不同的虚拟主机--即网站不同),可以写多个,否则在启动服务器的时候会提示:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
mods-available
mods-enabled
sites-available
sites-enabled
以上几个目录作用见上文参考:

三、网站配置及多虚拟主机(网站)
此处可以分两种情况:第一 系统默认方式:即按照上面介绍的配置文件更改;第二 自定义修改方式;

假设我们需要添加一个新网站,端口8080 网站目录 /var/www/web_server2 
方式一:
1、按照上面的说明配置:
apache2.conf 不需要更改;
ports.conf 添加 端口监听:
    NameVirtualHost *:8080 #此行不必须
    Listen 8080
httpd.conf 添加 ServerName:
    ServerName 0.0.0.0:8080 #此处IP地址可以换成域名或者具体地址,ServerName 正常应该放到虚拟主机配置中,但实际测试发现不生效,必须写在这里;
配置虚拟主机(网站):
    cp sites-available/default sites-available/my_web_server2 #这里将默认的虚拟主机配置拷贝一份为my_web_server2(名字可以任取,建议和主机域名一致,不必和网站目录一致)
修改配置如下:
NameVirtualHost *:8080  #此行不必须(默认是写在 ports.conf 中)

<VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/web_server2 #修改这里为实际网站目录
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/web_server2/>  #修改这里为实际网站目录
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ........

enable 网站:
    a2ensite my_web_server2 #my_web_server2 为sites-available/目录下的虚拟主机配置文件名(之前拷贝复制的)
    service apache2 reload
    sudo /etc/init.d/apache2 restart
确认网站启动:
    ls -l sites-enabled/ 有my_web_server2 的文件链接
    netstat -anpt|grep 8080 有0.0.0.0:8080 的监听(这里和你设置的 ServerName 有关,可能是具体的IP地址)
访问 http://ip:8080 即可

==================================================================================

方式二:
从上面的配置可以看出,虚拟网站的设置涉及多个配置文件,这样做的好处是管理较规范,模块化处理方便;但对于一个单独的虚拟主机来说,配置可能不那么简单,所以,我们可以充分利用apache2配置的灵活性,自定义配置方式:将虚拟主机的配置尽量集成在自己的配置中。

1、修改 apache2.conf 注释掉ports.conf
    # Include ports listing
    # Include ports.conf
2、修改httpd.conf 同上
3、修改虚拟主机配置文件
    my_web_server2 中添加 Listen 8080
4、同上

第二种方式将端口监听的配置放在虚拟主机自己的配置中,方便主机配置。
0 0