幾個月前研究了下apache2的架構與部署,時隔那麼長時間發現居然全忘了,不得不重新來一遍,寫一片日誌方便以後查閱。
首先我用的是ubuntu系統,不爲別的,光是它方便的軟件安裝與卸載過程就令你無法抗拒。特別是在Redhat下面掙扎數小時,安裝成功一個軟件,突然發現在Ubuntu下只需要一行命令的時候,你的心中就有了決定。當然,Redhat下也有它自己的yum命令,但是個人覺得還是遠沒有Ubuntu好用。
1. apache2的安裝
言歸正轉,首先是安裝apache2.
簡簡單單一句話:#apt-get install apache2
一系列刷屏完成之後,apache2的各個組成部分被安裝在5個地方:
- 配置文件的位置:/etc/apache2
- lib文件的位置:/usr/lib
- 啓動文件的位置:/etc/init.d/apache2
- 網頁存放位置:/var/www
- 軟件所在位置:/usr/share/apache2
如果對Ubuntu下的軟件安裝不熟悉,可以參考:http://blog.csdn.net/lrenjundk/article/details/7082620
2. apache2的啓動與關閉
啓動與關閉apache2可以使用以下命令:
- 啓動:/etc/init.d/apache2 start 或者 apache2ctl start
- 關閉:/etc/init.d/apache2 stop 或者 apache2ctl stop
- 重啓:/etc/init.d/apache2 restart 或者 apache2ctl restart
3. 網頁部署:
在apache2下面部署網頁也相當簡單,首先打開配置文件目錄:
#cd /etc/apache2
root@lrenjundk-virtual-machine:/etc/apache2# ls
apache2.conf envvars magic mods-enabled sites-available
conf.d httpd.conf mods-available ports.conf sites-enabled
3.1 apache參數:
在該目錄下,最爲重要的是apache2.conf文件,其中包含了apache的主要參數,包括可以配置的線程數量,進程數量,用戶數量,服務器數量等等:
- <IfModule mpm_worker_module>
- StartServers 2
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadLimit 64
- ThreadsPerChild 25
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
- <IfModule mpm_event_module>
- StartServers 2
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadLimit 64
- ThreadsPerChild 25
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
- <IfModule mpm_prefork_module>
- StartServers 5
- MinSpareServers 5
- MaxSpareServers 10
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
3.2 鏈接網頁
要鏈接網頁首先需要在/var/www 中創建自己的網頁,此處已經有一張默認的網頁index.html。也就是apache2啓動後默認的那張It works。
建立自己的網站,首先需要創建一個獨立的文件夾,以區分不同的網站,並且能確保他們之間互不影響。當然,apache可以同時啓動多個虛擬站,那是後話。
#mkdir wsclient
#cp /usr/my.html .
這樣我們就能進入網頁部署的第二步,打開apache配置文件夾,我們會發現在這下面有兩個名爲 sites-available和sites-enabled的文件夾。首先打開sites-available,其中保存了我們網站的虛擬機配置信息。對於我們的網頁,我們可以新建一個名爲wsclient的文件,並進行以下編輯
- NameVirtualHost *
- <VirtualHost *:8080>
- ServerAdmin webmaster@localhost
- DocumentRoot /var/www/wsclient
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- <Directory /var/www/wsclient>
- 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 ${APACHE_LOG_DIR}/error.log
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
- CustomLog ${APACHE_LOG_DIR}/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>
先不要管其他內容,我們需要注意的是如果綁定我們原本的文件夾到此虛擬機上,關鍵語句:
- DocumentRoot /var/www/wsclient
最後,有了虛擬機和網站信息,還需要打開apache下的另一個文件夾sites-enabled,將虛擬機註冊到apache上,當apache啓動的時候,會自動啓動虛擬機。我們的網站也就能站成運行了:
#cd ../sites-enabled
#ln -s ../sites-abailable/wsclient wsclient
大功告成,打開瀏覽器,輸入localhost或者你機器的ip就能顯示你所編輯的網頁了