2014年5月4日 星期日

雲端網路實務 2013/5/5

01-Apache 2 安裝與啟動

 更新套件情單
$ sudo apt-get update

Apache 2 安裝

$ sudo apt-get install apache2
[sudo] password for student:
正在讀取套件清單... 完成
正在重建相依關係
正在讀取狀態資料... 完成
以下套件是被自動安裝進來的,且已不再會被用到了:
  linux-headers-2.6.32-21 linux-headers-2.6.32-22
  linux-headers-2.6.32-22-generic-pae
使用 'apt-get autoremove' 來將其移除。
下列的額外套件將被安裝:
  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
建議套件:
  apache2-doc apache2-suexec apache2-suexec-custom
下列【新】套件將會被安裝:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common
  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
升級 0 個,新安裝 9 個,移除 0 個,有 1 個未被升級。
需要下載 3,328kB 的套件檔。
此操作完成之後,會多佔用 10.1MB 的磁碟空間。
是否繼續進行 [Y/n]?y
下載:1 http://tw.archive.ubuntu.com/ubuntu/ lucid/main libapr1 1.3.8-1build1 [116kB]
下載:2 http://tw.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1 1.3.9+dfsg-3build1 [85.4kB]
下載:3 http://tw.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-dbd-sqlite3 1.3.9+dfsg-3build1 [27.1kB]
下載:4 http://tw.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-ldap 1.3.9+dfsg-3build1 [25.1kB]
下載:5 http://tw.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-bin 2.2.14-5ubuntu8 [2,622kB]
下載:6 http://tw.archive.ubuntu.com/ubuntu/ lucid/main apache2-utils 2.2.14-5ubuntu8 [159kB]
下載:7 http://tw.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-common 2.2.14-5ubuntu8 [290kB]
下載:8 http://tw.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-worker 2.2.14-5ubuntu8 [2,364B]
下載:9 http://tw.archive.ubuntu.com/ubuntu/ lucid/main apache2 2.2.14-5ubuntu8 [1,482B]
取得 3,328kB 用了 2s (1,345kB/s)
選取了原先未被選取的套件 libapr1。
(正在讀取資料庫 ... 系統目前共安裝了 159384 個檔案和目錄。)
正在解開 libapr1 (從 .../libapr1_1.3.8-1build1_i386.deb)...
選取了原先未被選取的套件 libaprutil1。
正在解開 libaprutil1 (從 .../libaprutil1_1.3.9+dfsg-3build1_i386.deb)...
選取了原先未被選取的套件 libaprutil1-dbd-sqlite3。
正在解開 libaprutil1-dbd-sqlite3 (從 .../libaprutil1-dbd-sqlite3_1.3.9+dfsg-3build1_i386.deb)...
選取了原先未被選取的套件 libaprutil1-ldap。
正在解開 libaprutil1-ldap (從 .../libaprutil1-ldap_1.3.9+dfsg-3build1_i386.deb)...
選取了原先未被選取的套件 apache2.2-bin。
正在解開 apache2.2-bin (從 .../apache2.2-bin_2.2.14-5ubuntu8_i386.deb)...
選取了原先未被選取的套件 apache2-utils。
正在解開 apache2-utils (從 .../apache2-utils_2.2.14-5ubuntu8_i386.deb)...
選取了原先未被選取的套件 apache2.2-common。
正在解開 apache2.2-common (從 .../apache2.2-common_2.2.14-5ubuntu8_i386.deb)...
選取了原先未被選取的套件 apache2-mpm-worker。
正在解開 apache2-mpm-worker (從 .../apache2-mpm-worker_2.2.14-5ubuntu8_i386.deb)...
選取了原先未被選取的套件 apache2。
正在解開 apache2 (從 .../apache2_2.2.14-5ubuntu8_i386.deb)...
正在進行 man-db 的觸發程式 ...
正在進行 ufw 的觸發程式 ...
正在進行 ureadahead 的觸發程式 ...
ureadahead will be reprofiled on next reboot
正在設定 libapr1 (1.3.8-1build1) ...

正在設定 libaprutil1 (1.3.9+dfsg-3build1) ...

正在設定 libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3build1) ...
正在設定 libaprutil1-ldap (1.3.9+dfsg-3build1) ...
正在設定 apache2.2-bin (2.2.14-5ubuntu8) ...
正在設定 apache2-utils (2.2.14-5ubuntu8) ...
正在設定 apache2.2-common (2.2.14-5ubuntu8) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.

正在設定 apache2-mpm-worker (2.2.14-5ubuntu8) ...
 * Starting web server apache2                                                  
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                         [ OK ]
正在設定 apache2 (2.2.14-5ubuntu8) ...

正在進行 libc-bin 的觸發程式 ...
ldconfig deferred processing now taking place

[問題] 由上述安裝資訊, Apache 2 已啟動那些 Module ?

檢視 Apache 2 的內部設定值

$ /usr/sbin/apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Apr 13 2010 19:29:28
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

[註] 由上面資訊中, 可以得知 Apache 2 的主要設定檔是 /etc/apache2/apache2.conf


檢視 /etc/apache2/sites-enabled/000-default 設定檔 (網站根目錄, cgi-bin 目錄)

這個設定檔, 定義 Apache 2 網站根目錄所在的目錄 (DocumentRoot /var/www), 還有定義 /cgi-bin 目錄, 執行 CGI 程式
<VirtualHost *:80>
 ServerAdmin webmaster@localhost

 DocumentRoot /var/www

 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>

 <Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </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

    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>

網站根目錄放置在 /var/www 這個目錄嗎? 為什麼呢?因為 DocumentRoot 這個設定值的關係啦!此外,由於 Apache 允許 Internet 對我們的資料進行瀏覽, 所以你當然必須要針對可被瀏覽的目錄進行權限的相關設定,那就是 <Directory> 這個設定值的重要特色!先讓我們來看看預設的主網頁設定吧!
DocumentRoot "/var/www"           放置首頁的目錄!
這個設定值重要到不行,因為他規範了 WWW 伺服器主網頁所放置的『目錄』所在。這個設定值是可以被隨意更動的,不過更動之後你必須要針對該目錄進行權限設定,也就是底下要講到的 Directory 這個設定值來規範目錄的權限才行喔!
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
以最嚴格設定值, 設定系統根目錄 (/)





沒有留言:

張貼留言