Web服務器的搭建
時間:2018-09-29 來源:未知
在任何項目工程中,服務器一定是必不可少的一環。然而似乎對服務器這個概念還是比較陌生的,其實服務器只是因為他們的功能的不同導致其不同的概念,其實簡單的說服務器就是一臺運行程序的主機。
現在我們來看一下關于服務器更加全面的定義:
服務器,也稱伺服器,是提供計算服務的設備。由于服務器需要響應服務請求,并進行處理,因此一般來說服務器應具備承擔服務并且保障服務的能力。
服務器的構成包括處理器、硬盤、內存、系統總線等,和通用的計算機架構類似,但是由于需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
在網絡環境下,根據服務器提供的服務類型不同,分為文件服務器,數據庫服務器,應用程序服務器,WEB服務器等。
由此可以看到服務器可以分為硬件服務器和軟件服務器,而硬件服務器基本就可以當做是我們的PC或者是開發板,而軟件服務器就是運行在某個硬件服務器的程序。而關于硬件服務器我們不去深究我們只是在使用他,而軟件服務器是我們需要研究并使用的,我們以web服務器為例。
Web服務器一般指網站服務器,是指駐留于因特網上某種類型計算機的程序,可以向瀏覽器等Web客戶端提供文檔, 也可以放置網站文件,讓全世界瀏覽;可以放置數據文件,讓全世界下載。目前主流的三個Web服務器是Apache Nginx IIS。
由此可見web服務器就是給我們提供網頁顯示的必要條件,現在我們簡單了解下,在Ubuntu下的web服務器的搭建,以Apache服務器為例。
一、安裝Apache
Ubuntu提供了3個apache2的軟件包,它們分別是apache2-mpm-worker、apache2-mpm-prefork、apache2-mpm-event。如果你在安裝Ubuntu操作系統《入門篇:ubuntu server 安裝教程》的時候你選擇安裝了LAMP包的話,那么安裝的是apache2-mpm-prefork。如果你沒有選擇安裝LAMP包,安裝完系統之后,執行下面的命令安裝apache2這個軟件包時,安裝的是apache2-mpm-worker:
sudo apt-get install apache2
二、配置Apache
在Ubuntu中,Apache的軟件包時由ubuntu官方核心開發組維護的。他們在編譯apache時,只編譯進了很少的模塊。如果需要其它的模塊,則需要手工添加。這也大大增強了apache的可定制性和靈活性。可以使用apache2 -l命令查到被編譯進apache2的模塊。
1、Apache配置文件說明
Ubuntu和Debian對apache2軟件包做了很多定制,很多配置文件的布局都和原來的apache2的布局不同。以下是/etc/apache2目錄下各個配置文件的說明:
*apache2.conf——全局配置文件
*conf.d/——該目錄存放一些一般性的配置
*envvars——存放環境變量,一般不需要修改
*httpd.conf——用戶配置文件
*mods-available/——該目錄下是已經安裝的可用模塊
*mods-enabled/——該目錄下是已經啟用的模塊
*ports.conf——httpd服務的端口
*sites-available/——該目錄下是可用的虛擬主機
*sites-enabled/——該目錄下是已經啟用的虛擬主機
其中,apache2.conf是apache2的主配置文件,它會讀取上面列出的所有目錄和文件(sites-available目錄除外,因為apache不需要知道有哪些虛擬主機可用,它只需要加載那些已經啟用的虛擬主機就可以了。)
2、Apache模塊
新安裝的Apache編譯加載的模塊很少,很多模塊要手動安裝或者加載。可以使用a2enmod查看可用的模塊和用a2dismod查看已經啟用的模塊。如果你要用的模塊還沒有安裝,但是你又不知道這個模塊在Ubuntu中的確切名稱,則可以先用apt-get search libapache2-mod命令進行搜索,找到正確的軟件包名稱后,再用apt-get install來安裝。
3、Apache網頁文件默認存放的位置
在默認情況下,apache把網站文件放在/etc/www目錄下。通過DocumentRoot關鍵字的設置,你可以把任意目錄指定為網頁文件的根目錄。你也可以在里面建立多個網頁文件的目錄,如:
/var/www/www.aliwo.net
/var/www/bbs.aliwo.net
……
也就是說每個網站有自己單獨的文件夾,這樣管理起來比較清晰。另外/var分區需要大一些,因為MySQL數據庫文件和日志文件,以及網站日志文件都保存在這里。
4、Apache虛擬機設置
apache既支持基于域名的虛擬主機,也支持基于IP的虛擬主機。
Ubuntu的Apache2為提供虛擬主機支持做了很好的配置。如果你的服務器只有一個網站,基本上不用修改配置,虛擬機就可以用了;如果有多個網站,則可以復制defualt虛擬主機的配置文件進行修改,這樣可以很快的建立多個網站。
每個apache的虛擬主機都有單獨的配置文件。這些虛擬主機的配置文件放在/etc/apache2/sites-available目錄下。上面提到的default虛擬主機,位于這個目錄里。如果你在瀏覽器中訪問服務器的IP地址,出現頁面“It Worker!”,表明網站已經在提供服務了。
4.1創建一個新的虛擬主機
要創建一個新網站,你需要創建一個新的虛擬主機。假設我現在要創建一個域名為www.aliwo.net的虛擬主機:
*先將default虛擬主機復制一份,以便用來修改:
sudo cp default www.aliwo.net
*然后編輯www.aliwo.net
sudo nano www.aliwo.net
www.aliwo.net內容如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
FCGIWrapper /usr/bin/php5-cgi .php
Options ExecCGI SymLinksIfOwnerMatch
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>
修改后:
<VirtualHost *:80>
ServerAdmin aliwo@qq.com
ServerName www.aliwo.net
ServerAlias aliwo.net
DocumentRoot /var/www/www.aliwo.com
<Directory />
FCGIWrapper /usr/bin/php5-cgi .php
Options ExecCGI SymLinksIfOwnerMatch
AllowOverride None
</Directory>
<Directory /var/www/www.aliwo.com>
Options FollowSymLinks MultiViews
AllowOverride ALL
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>
4.2、啟動www.aliwo.net
sudo a2ensite www.aliwo.net
同時禁止default(即禁止使用IP訪問)。
sudo a2dissite default
5、建立網站目錄
#cd /var/www
#mkdir /var/www/www.aliwo.net
然后把網頁文件上傳到目錄里面。
6、重啟apache2,生效網站:
sudo /etc/init.d/apache2 restart
這樣一個站點就建立了,以后要建立新的網站,就復制www.aliwo.net這個虛擬機的配置文件,修改servername和網站目錄路徑就可以了。
現在我們就可以正常的使用web服務器,而作為一個編程工作者,我們要常常接觸到服務器這個概念,研究明白總歸沒有什么壞處。

