啟用與停用網站的方法
a2ensite 站点名 a2dissite 站点名
基於名字的(透過網域來區分)的虛擬主機
安裝好apache以後預設有一個叫default的虛擬主機。新建虛擬主機時可以直接複製預設虛擬主機的設定文件,在其基礎上修改新虛擬主機的設定參數。
#copy /etc/apache2/site-available/default /etc/apache2/site-available/sitename
測試環境
作業系統:Ubuntu Server 12.04 LTS
測試機位址:10.39.6.59
測試機網域:*.example.com
機器上設定多個網域名稱或主機名稱時,我們就要用到基於名稱的虛擬主機了。那麼要如何進行設定呢?這就是本指南想解決的問題 了。在 Ubuntu 的 /etc/apache2/ 目錄下有個 Apache2 的主設定檔 apache2.conf。在該檔案中我們可以看到下列欄位:# Include the virtual host configurations: Include /etc/apache2/sites-enabled/[^.#]*(12.04版本里无[^.#]*)
<VirtualHost *:80> ServerName www.firehare.com ServerAdmin admin@mail.firehare.com DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place # Commented out for Ubuntu #RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch 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 ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
<VirtualHost *:80> ServerName edunuke.example.com ServerAdmin edunuke@mail.example.com DocumentRoot "/var/www/edunuke/" ErrorLog "/var/log/apache2/edunuke_errors.log" CustomLog "/var/log/apache2/edunuke_accesses.log" common </VirtualHost>
sudo a2ensite edunuke
sudo /etc/init.d/apache2 restart 这里可以使用reload 重新加载
sudo a2dissite edunuke sudo /etc/init.d/apache2 restart
上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone 的话,上面的这点设置是远远不够的,由于 Zope+Plone 结构所采用的端口并非是80端口,所以我们还得做端口重定向。为了能够做这个,我们得激活 Rewrite 和 Proxy 两个模块。激活模块很简单,同站点配置目录一样,在 Apache2 中也有两个模块配置目录:mods-available 和 mods-enabled。在 mods-available 目录中的是所有可用的模块,而在 mods-enabled 目录中的则是已被安装到 Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy 模块的配置引导文件,所以只需要简单地将其安装到 Apache2 中即可。使用命令:
sudo a2enmod rewrite sudo a2enmod proxy
然后,添加虚拟主机站点 plone.example.com,同 edunuke 站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或 "#" 这两个字符的了。然后编辑该文件:
<VirtualHost plone.example.com:80> ServerName plone.example.com ServerAdmin plone@mail.example.com ErrorLog "/var/log/apache2/plone_errors.log" CustomLog "/var/log/apache2/plone_accesses.log" common RewriteEngine on RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P] <Proxy *> Order Deny,Allow Deny from all Allow from all </Proxy> </VirtualHost>
这样就安装好了 plone.example.com 虚拟主机站点,可以在浏览器中地址栏中输入 http://plone.example.com 就可以重定向到 Zope+Plone 站点去了。