SUSE11-Linux架设apache虚拟主机

 
Linux提供HTTP服务的组件是apache,如今SUSE11自带的组件版本是 apache2
先说一下架设环境
硬件:虚拟机
IP地址: 192.168.1.102
主机名: robinzs
 首先安装组件,图形界面或字符界面亦可。
 zypper install –y apache2
suse的 zypper与redhat的 yum功能相似,前题是都需设置好安装源,由于是拿虚拟机作的测试,因此个人安装源是镜像。
 安装以后开始部署,为何要部署虚拟主机。由于虚拟主机可以架设多个站点在同一台服务器,且均可以从 80端口通迅数据,因此本次实验部署虚拟主机
 Apache2的配置文件目录在 /etc/apache2/下,需用到的文件有:
 /etc/apache2/httpd.conf 主配置文件
 /etc/apache2/listen.conf 监听端口配置文件
 /etc/apache2/vhosts.d/*.conf 虚拟主机配置文件
 说到这里简单提一下suse11下的apache2 目录结构。与红帽不一样,红帽是将 大部份配置文件内容都在 httpd.conf中;而suse11的apache2是将 httpd.conf 文件 打散成若个文件,在httpd.conf中有 Include标签能够加载打散这些文件的内容,因此在suse11下配置站点须要修改多个文件。

 
    如今开始配置apache2,首先在 /etc/apache2/vhosts.d/目录下建立文件 *.conf, 文件名随便,能够以站点域名命名,我建立的叫 virtual1.confvirutual2.conf
vim /etc/apache2/vhosts.d/virtual1.conf
添加以下内容:(添加的内容能够参考同级目录下的 vhost.template文件)
< VirtualHost *:80 >
ServerAdmin    webmaster@robinzs.com
DocumentRoot    /srv/www/htdocs/virtual1/
ServerName        virtual1.robinzs.com
ErrorLog            /var/log/apache2/virtual1/error_log
CustomLog         /var/log/apache2/virtual1/access_log combined
</ VirtualHost >
上述配置文件内容与虚拟主机建立要求一一对应:
ServerAadmin—虚拟主机管理员邮箱
DocumentRoot—虚拟主机文件目录
ServerName—服务名称,就是访问地址
ErrorLog—错误日志
CustomLog—访问日志, combined是日志格式的一种,兼容全部日志格式
用一样方法配置 virtual2.conf文件
修改apache2的主配置文件添加站点信息
vim /etc/apache2/httpd.conf
找到 Include /etc/apache2/vhosts.d/*.conf这一行,这一行是表明加载全部虚拟主机配置信息。
在这一行下边添加:(其不在这里写也行,为了维护方便)
< Directory "/srv/www/htdocs/virtual1/" >
        Options Indexes FollowSymlinks
        AllowOverried All
        Order allow,deny
        Allow from all
</ Directory >
< Directory "/srv/www/htdocs/virtual2/" >
        Options Indexes FollowSymlinks
        AllowOverried All
        Order allow,deny
        Allow from all
         </ Directory >
<Director>内是对站点内容的权限设置:
Options-站点目录的权限设置
                    Indexes-若是在此目录下找不到"首页文件",就列出整个目录的文件,相反若是不例出目录文件则为 -Indexes
FollowSymLinks-让在此目录开放的链接文件能够链接出此目录外。
Allow Overried-表示是否容许额外配文件".htaccess"的权限复写,用户本身的我的网页若要修改权限时会用到。
Order -安全设置,是否可被浏览的权限,默认为allow,deny以allow优先处理,没有写入规则的默认为deny即不可浏览,allow见下述。
Allow from-默认为all,即所有客户均可浏览
其实上述内容不写在httpd.conf,写在vhost.conf内也能够:
< VirtualHost *:80 >
ServerAdmin webmaster@robinzs.com
ServerName virtual1.robinzs.com
DocumentRoot /srv/www/vhosts/
< Directory "/srv/www/vhosts/" >
         Options All
         AllowOverride All
         Order deny,allow
         Allow from all
     </ Directory >
</ VirtualHost >
 但如此作,有可能会出现没法访问的问题,也许会花长时间排错,本身测试无所谓。在生产环境咱们应选择安全的方法来完工做,因此此配置方法不建议。
 
 
建立相应站点文件与目录
a 虚拟主机站点目录
mkdir /srv/www/htdocs/virtual1
mkdir /srv/www/htdocs/virtual2

b 虚拟主机主页
vim /srv/www/htdocs/virtual1/index.html
vim /srv/www/htdocs/virtual2/index.html
内容随便,为了方便我没用html写,直接就写的Test1 for virtual1与Test2 for virtual2
c 日志目录
mkdir /var/log/apache2/virtual1
mkdir /var/log/apache2/virtual2
修改 /etc/hosts文件
 
添加内容:
192.168.1.102    virtual1.robinzs.com
192.168.1.102    virtual2.robinzs.com
由于两个虚拟主机都用的是80端口访问,上述操做都作完以后并不能正常访问,只能访问 virtual1.robinzs.com的页面,输入virtual2.robinzs.com也是同样.这时须要修改参数使全部虚拟主机都可以使用80端口.
修改 /etc/apache/listen.conf文件
NameVirtualHost *:80的注释去掉便可.
这里顺道提一句apache2的 访问优先级。当有外部访问需求进来时,apache2优先会访问第一个虚拟主机;若是访问域名是其它虚拟主机则会指向该域名的虚拟主机,若该访问域名的虚拟主机不存在,则会指向第一个虚拟主机;若是没有虚拟主机才会指向默认站点!
重启服务
rcapache2 restart
设置apaceh2 开机自启
chkconfig apache2 on
 
 
用浏览器访问测试
输入域名
virtual1.robinzs.com
virtual2.robinzs.com
 
输入IP
相关文章
相关标签/搜索