zoukankan      html  css  js  c++  java
  • SuSE Apache2 VirtualHost Build

    1,linux version:openSuSE 12.1

    2,add ServerName to DNS(johv.ts.com ,use the same IP)

    3,mkdir /srv/www/htdocs/jv_vh,it include the index.html

    4,modify /etc/apache2/vhost.d/jv_vh.conf(it will be included in httpd.conf)

    the content is below:

    ###begin

    NameVirtual johv.ts.com

    <VirtualHost johv.ts.com:80>##if not added ,the diffrent names all point to home page                             ##of the first virtualhost 

    ServerName johv.ts.com

    DocumentRoot /srv/www/htdocs/jv_vh/

    Order allow ,deny

    Allow from all

    #ErrorLog /var/log/apache2/jv_vh/error_log

    #Customlog /var/log/apache2/jv_vh/access_log combined(not use)

    NameVirtual jv.host.com

    <VirtualHost jv.host.com:80>

    ...

    ###end

    solute mothed:

    all address will visite the first VirtualHost(even #NameVirtualHost *:80)befor add the green words

     

    当有外部访问需求进来时,apache2优先会访问第一个虚拟主机;如果访问域名是其它虚拟主机则会指向该域名的虚拟主机,若该访问域名的虚拟主机不存在,则会指向第一个虚拟主机;如果没有虚拟主机才会指向默认站点!

    To solute the problem,find answer from  http://www.sunchis.com/html/php/php/2011/0617/339.html,tks

    以下是参考,感谢原作大侠(开始):

    copy from http://robinzs.blog.51cto.com/2834668/1178637

    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.conf与virutual2.conf
    vim /etc/apache2/vhosts.d/virtual1.conf
    添加如下内容:(添加的内容可以参考同级目录下的vhost.template文件)

    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

    上述配置文件内容与虚拟主机创建要求一一对应:
    ServerAadmin—虚拟主机管理员邮箱
    DocumentRoot—虚拟主机文件目录
    ServerName—服务名称,就是访问地址
    ErrorLog—错误日志
    CustomLog—访问日志,combined是日志格式的一种,兼容所有日志格式
    用同样方法配置virtual2.conf文件
    修改apache2的主配置文件添加站点信息
    vim /etc/apache2/httpd.conf
    找到Include /etc/apache2/vhosts.d/*.conf这一行,这一行是代表加载所有虚拟主机配置信息。
    在这一行下边添加:(其不在这里写也行,为了维护方便)

           Options Indexes FollowSymlinks
           AllowOverried All
           Order allow,deny
           Allow from all


           Options Indexes FollowSymlinks
           AllowOverried All
           Order allow,deny
           Allow from all
           
    在内是对站点内容的权限设置:
    Options-站点目录的权限设置
                       Indexes-如果在此目录下找不到"首页文件",就列出整个目录的文件,相反如果不例出目录文件则为-Indexes;
    FollowSymLinks-让在此目录开放的连接文件可以连接出此目录外。
    Allow Overried-表示是否允许额外配文件".htaccess"的权限复写,用户自己的个人网页若要修改权限时会用到。
    Order -安全设置,是否可被浏览的权限,默认为allow,deny以allow优先处理,没有写入规则的默认为deny即不可浏览,allow见下述。
    Allow from-默认为all,即全部客户都可浏览
    其实上述内容不写在httpd.conf,写在vhost.conf内也可以:

    ServerAdmin webmaster@robinzs.com
    ServerName virtual1.robinzs.com
    DocumentRoot /srv/www/vhosts/

            Options All
            AllowOverride All
            Order deny,allow
            Allow from all
       

    但如此做,有可能会出现无法访问的问题,也许会花长时间排错,自己测试无所谓。在生产环境我们应选择安全的方法来完工作,所以此配置方法不建议。



    创建相应站点文件与目录
    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

    参考内容(结束)

    #my point

    想说的好的文章会指引你找到对的方法,所以有时候在互联网找东西就像在翻垃圾

  • 相关阅读:
    彻底理解ThreadLocal(转)
    javascript中神奇的(+)加操作符
    quartz集群调度机制调研及源码分析---转载
    quartz源码解析--转
    通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
    LeetCode 917. Reverse Only Letters (仅仅反转字母)
    LeetCode 893. Groups of Special-Equivalent Strings (特殊等价字符串组)
    LeetCode 824. Goat Latin (山羊拉丁文)
    LeetCode 443. String Compression (压缩字符串)
    LeetCode 387. First Unique Character in a String (字符串中的第一个唯一字符)
  • 原文地址:https://www.cnblogs.com/eiguleo/p/3879101.html
Copyright © 2011-2022 走看看