Apache 是目前廣泛使用的跨平台 Web Server。其與 PHP、MySQL 等的結合,已成為中小型網站主機的最佳選擇。
安裝

安裝 Apache2 與 PHP5

$ sudo aptitude install apache2 php5

設定
虛擬主機

以下範例假設網域為 abc.com,三台虛擬主機分別為 a.abc.com、b.abc.com、c.abc.com 且都位於 IP 1.2.3.4 這台伺服器上。
DNS 設定

要方便管理設定虛擬主機,最好要能自己管理 DNS,否則需要一個配合度極高的 ISP。 於 DNS 設定上,僅需將上面三台虛擬主機的 FQDN 對應到 1.2.3.4 這個 IP 上即可;亦即正解部份加上三比如下紀錄:

;三台虛擬主機
a            IN    A    1.2.3.4
b            IN    A    1.2.3.4
c            IN    A    1.2.3.4

Apache 設定

Apache 設定虛擬主機有需多種方式,但主要都是以 http 表頭傳入的網址來作判別;以下列出兩種設定虛擬主機的方式。
一般設定方式

NameVirtualHost 1.2.3.4
<VirtualHost 1.2.3.4>
        ServerName      a.abc.com
        ServerAdmin     root@abc.com
        DocumentRoot    /var/www/a
</VirtualHost>

<VirtualHost 1.2.3.4>
        ServerName      b.abc.com
        ServerAdmin     root@abc.com
        DocumentRoot    /var/www/b
</VirtualHost>

<VirtualHost 1.2.3.4>
        ServerName      c.abc.com
        ServerAdmin     root@abc.com
        DocumentRoot    /var/www/c
</VirtualHost>

簡易設定方式

使用此方式需要啟用 vhost_alias_module 這個模組。

$ sudo ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-enabled/vhost_alias.load

接著於 httpd.conf 加入下面設定:

UseCanonicalName Off
VirtualDocumentRoot /home/www/%0

此種方式在 /home/www 目錄下,每增加一個目錄就等同增加一台虛擬主機,最後的 %0 的意思參照下表。

0    the whole name
1    the first part
2    the second part
-1    the last part
-2    the penultimate part
2+    the second and all subsequent parts
-2+    the penultimate and all preceding parts
1+ and -1+    the same as 0
SSL 連線

使用 SSL 連線時資料有經過加密處理,安全性高、不易外洩。但對網站主機來說,須消耗更多資源,速度會較緩慢。
啟用 Apache2 SSL 功能模組

sudo a2enmod ssl

建立 SSL 認證檔

sudo mkdir /etc/apache2/ssl
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
上述指令執行後依照畫面描述輸入各項所需資料即可。

註:使用 make-ssl-sert 建立的認證檔預設使用時間是一個月。若要更長時間則須手動更改 /usr/sbin/make-ssl-cert,將 -keyout $output 更改成 -keyout $output -days 365 (你要的天數)。
建立 SSL 站台

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
sudo ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl

修改 /etc/apache2/sites-available/default

NameVirtualHost *

<VirtualHost *>
ServerName  hostname

改成

NameVirtualHost *:80

<VirtualHost *:80>
ServerName  hostname:80

修改 /etc/apache2/sites-available/ssl

NameVirtualHost *

<VirtualHost * >

ServerName  hostname
ServerAdmin webmaster@localhost

改成

NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

ServerName  hostname:443
ServerAdmin webmaster@localhost
.
.
.

最後更改 Apache2 監聽的通訊埠,修改 /etc/apache2/ports.conf

#新增下面這行,讓 Apache2 監聽 443 port
Listen 443


neio 發表在 痞客邦 留言(0) 人氣()