标签: VirtualHost

  • Apache VirtualHost设定

    通常在一台Web Server上,會有數個不一樣的網站要執行,這時候各個網站的domain name就必須靠VirtualHost設定

    VirtualHost基本設定

    #指定主機所有port 80所指定的虛擬主機

    NameVirtualHost *:80

     

    <Virtualhost *:80>

    #DNS

    ServerName wp.johnsonlu.org

     

    #Web Root Path

    DocumentRoot /var/www/test

     

    #Alias可以將DocumentRoot底下的路徑對應成特定目錄路徑

    Alias /doc/ /var/www/test/doc/

     

    #控制目錄權限

    <Directory “/usr/share/doc/”>

    #Options可以透過+號或-號來控制目錄權限,例如關閉Index目錄

    #FollowSymLinks是允許連到DocumentRoot以外的其他目錄、MultiViews是多國語言支援

    Options -Indexes FollowSymLinks MultiViews

     

    #AllowOverride是用來設定Override權限。None代表關閉.htaccess;FileInfo則是開啟

    AllowOverride None

     

    #Order負責控制Deny和Allow執行順序

    Order Deny,Allow

    #控制要拒絕的連線

    Deny from all

    #控制可以通過的連線

    Allow from 127.0.0.0/255.0.0.0

    </Directory>

     

    #Log

    ErrorLog /var/log/error_log

    </Virtualhost>

    Alias也可以透過正規表示法設定成pattern,可以參考mod_alias

    Directory設定可以參考Directory Directive

    Allow和Deny的部份可以參考mod_access_compat

     

     

    另外也可以把VirtualHost設定成動態的pattern

    (需要開啟mod_vhost_alias module)

    <VirtualHost *:80>

    ServerName api.johnsonlu.org

    ServerAlias *.api.johnsonlu.org

    VirtualDocumentRoot /home/johnsonlu/www/api/%0/public

    </VirtualHost>

    這樣一來,假設我有一個/home/johnsonlu/www/api/test.api.johnsonlu.org/public的路徑,就可以對應到test.api.johnsonlu.org

    VirtualDocumentRoot的字串pattern可以參考 mod_vhost_alias