ubuntu httpserver 安裝配置

來源:互聯網
上載者:User
一:安裝

1.開啟終端,輸入“sudo apt-get install apache2”

2.驗證apache2.0安裝是否完成,在瀏覽器中開啟http://localhost/或者http://127.0.0.1。如果出現It works!那證明成功;

3.sudo apt-get install php5

4.sudo apt-get install libapache2-mod-php5(我的機子在裝php5的時候預設裝了這個的,所以提示已經安裝)

5.sudo /etc/init.d/apache2 restart”,斷行符號;(此為重啟APACHE),如果成功,說明php和apache2安裝成功

6.sudo apt-get install mysql-server”,斷行符號;(此為安裝MYSQL)

7.“sudo apt-get install libapache2-mod-auth-mysql”,斷行符號;(此為讓apache、php支援 mysql)

8.在終端輸入“sudo apt-get install php5-mysql”,斷行符號(我的提示如下:

下列軟體包有未滿足的依賴關係: php5-mysql : 依賴: php5-common (= 5.4.6-1ubuntu1) 但是 5.4.6-1ubuntu1.2 正要被安裝E: 無法修正錯誤,因為您要求某些軟體包保持現狀,就是它們破壞了軟體包間的依賴關係

可能原因是我在安裝mysql的時候用的是ubuntu官方的源,但安裝php5時改成了163的源了,因為官網速度太忙了。

但是該過來還是不行。先不管了,有其他事情忙的很。

9.在終端輸入“sudo /etc/init.d/apache2 restart”,斷行符號;

 

二:配置

1.apache2.conf 是主設定檔,httpd.conf 使用者設定檔

2.虛擬目錄在 httpd.conf 中

[plain] view plaincopy

  1. <VirtualHost *>  
  2. DocumentRoot "路徑"  
  3. ServerName 名稱  
  4. <Directory "路徑"> allow from all Options +Indexes </Directory>  
  5. </VirtualHost>  
  6.   
  7. <VirtualHost *:80>  
  8. ServerName www.test.com  
  9. DocumentRoot /home/test  
  10. </VirtualHost>  

3.根設定(預設主目錄)在 /etc/apache2/sites-available/default

4.重啟命令  sudo /etc/init.d/apache2 restart 或者 cd /etc/init.d sudo apache2 restart

5.記錄檔在 /var/log/apache2/

 

vi /etc/httpd/conf/httpd.conf

      在Windows下,Apache的設定檔通常只有一個,就是httpd.conf。但我在Ubuntu Linux上用apt-getinstall apache2命令安裝了Apache2後,竟然發現它的httpd.conf(位於/etc/apache2目錄)是空的!進而發現Ubuntu的Apache軟體包的設定檔並不像Windows的那樣簡單,它把各個設定項分在了不同的設定檔中。嚴格地說,Ubuntu的Apache(或者應該說Linux下的Apache)的設定檔是/etc/apache2/apache2.conf,Apache在啟動時會自動讀取這個檔案的配置資訊。而其他的一些設定檔,如httpd.conf等,則是通過Include指令包含進來。當然,完全可以把所有的設定放在apache2.conf或者httpd.conf或者任何一個設定檔中。Apache2的這種劃分只是一種比較好的習慣。

      安裝完Apache後的最重要的一件事就是要知道Web主目錄在什麼地方,對於Ubuntu而言,預設的是/var/www。怎麼知道的呢?apache2.conf裡並沒有DocumentRoot項,httpd.conf又是空的,因此肯定在其他的檔案中。經過搜尋,發現在/etc/apache2/sites-enabled/000-default中,裡面有這樣的內容:

[plain] view plaincopy

  1. NameVirtualHost *  
  2. <VirtualHost *>  
  3. ServerAdmin webmaster@localhost  
  4. DocumentRoot /var/www/  
  5. ……  

        這是設定虛擬機器主機的,虛擬機器主機 (Virtual Host) 是在同一台機器搭建屬於不同網域名稱或者基於不同 IP 的多個網站服務的技術。可以為運行在同一物理機器上的各個網站指配不同的 IP 和連接埠,也可讓多個網站擁有不同的網域名稱。進一步的配置和使用,就可以查閱APACHE的手冊了。

      再看看/etc/apache2目錄下的東西。剛才在apache2.conf裡發現了sites-enabled目錄,而在/etc/apache2下還有一個sites-available目錄,這裡面才是真正的設定檔,而sites-enabled目錄存放的只是一些指向這裡的檔案的符號連結,可以用ls -l/etc/apache2/sites-enabled/來證實一下。所以,如果apache上配置了多個虛擬機器主機,每個虛擬機器主機的設定檔都放在sites-availabl,那麼對於虛擬機器主機的停用、啟用就非常方便了:當在sites-enabled下建立一個指向某個虛擬機器主機設定檔的連結時,就啟用了它;如果要關閉某個虛擬機器主機的話,只需刪除相應的連結即可,根本不用去改設定檔。

       mods-available、mods-enabled和上面說的sites-available、sites-enabled類似,這兩個目錄是存放apache功能模組的設定檔和連結的。當我用apt-get installphp5安裝了PHP模組後,在這兩個目錄裡就有了php5.load、php5.conf和指向這兩個檔案的連結。這種目錄結果對於啟用、停用某個Apache模組是非常方便的。

        最後一個要說的是ports.conf,這裡面設定了Apache使用的連接埠。如果需要調整預設的連接埠設定,建議編輯這個檔案。或者你嫌它實在多餘,也可以先把apache2.conf中的Include/etc/apache2/ports.conf一行去掉,在httpd.conf裡設定Apache連接埠。

        ubuntu裡預設安裝的目錄結構很有一點不同。在ubuntu中module和 virtualhost的配置都有兩個目錄,一個是available,一個是enabled,available目錄是存放有效內容,但不起作用,只有用ln連到enabled過去才可以起作用。對調試使用都很方便,但是如果事先不知道,找起來也有點麻煩。

/etc/apache2/sites-available 裡放的是VH的配置,但不起作用,要把檔案link到 sites-enabled 目錄裡才行。


設定檔httpd.conf說明

DocumentRoot "/var/www/html" ---Apache預設伺服器主目錄路徑

DirectoryIndex index.html index.htm index.php index.html.var ---預設文件,多個檔案之間用空格分開
Listen 192.168.1.1:80       設定監聽ip是192.168.1.1的地址和連接埠為80
Listen 192.168.1.2:8080   設定監聽ip是192.168.1.2的地址和連接埠為8080

ServerRoot "/etc/httpd"     設定相對根目錄的路徑 ,通常是指存放設定檔和記錄檔的地方。預設是:/etc/httpd 一般包括conf和logs子目錄

ErrorLog logs/error_log     設定錯誤記錄檔,注意:如果記錄檔存放路徑不是以“/”開頭,意味著該檔案是相對於 ServerRoot目錄
CustomLog logs/access_log combined      訪問日誌(combined指明日誌使用的格式,還有common格式)

ServerAdmin c.z.cz@163.com    設定網路系統管理員的Email,當用戶端伺服器發生錯誤時,伺服器通常會向用戶端返回錯誤提示頁面,為了方便解決錯誤,這個網頁中通常有管理員的Email地址,可以通過使用 ServerAdmin語句來設定管理員的EMail地址

ServerName www.cz.com:80       設定伺服器主機名稱 (如果有網域名稱可以填入網域名稱,沒有網域名稱則可填入伺服器IP地址)

AddDefaultCharset UTF-8            設定預設字元集,定義伺服器返回給客戶機預設字元集(由於西歐UTF-8是Apache預設字元集,因此當訪問有中文的網頁時會出現亂碼,這時只要將字元集改成GB2312,再重啟Apache服務即可)

虛擬目錄的

Alias /down    "/software/download"     建立虛擬目錄(建立名為down的虛擬目錄,它對應的實體路徑是:/software/download)
Alias /ftp        "/var/ftp"                       建立虛擬目錄(建立名為ftp的虛擬目錄,它對應的實體路徑是:/var/ftp)

<Directory "/var/www/html">       設定目錄許可權(<Directory "目錄路徑">此次寫設定目錄許可權的語句</Directory>)
      Options FollowSymLinks      page:116
      AllowOverride None
</Directory>

虛擬機器主機詳解

        Apache的虛擬機器主機是一種允許在同一台機器上,運行超過一個網站的解決方案。虛擬機器主機有兩種,一種叫基於IP的(IP-based),另一種叫基於名字的(name-based)。虛擬機器主機的存在,對使用者來說是透明的。

        基於IP的虛擬機器主機

        對於基於IP的虛擬機器主機來說,必須為每個虛擬機器主機配備一個單獨的IP。也就是說你的伺服器必須有多個IP地址。對於這種方式,我們在本地就可以做一個實驗來進行配置。配置基於IP的虛擬機器主機,有兩種方法:

        一是啟動多個apache伺服程式,每個執行個體使用單獨的設定檔,一般來說,在同一台機器上,架設兩個網站,這兩個網站互相之間不希望對方訪問自己的檔案,就使用這種方式,每個apache執行個體都是用單獨的使用者名稱,組來啟動,並且放到不同的目錄下,這種方式只要在apche的設定檔中,為Listen命令配置不同的ip即可;

        在ports.conf 中增加監聽連接埠

[plain] view plaincopy

  1. NameVirtualHost *:80  
  2. Listen 80  
  3. NameVirtualHost *:12340  
  4. Listen 12340  

        在sites-available中新加一個檔案(可以拷貝原有的default並改名)使用者定義新的網站

[plain] view plaincopy

  1. <VirtualHost *:12340>  
  2.     ServerAdmin webmaster@localhost  
  3.     ServerName wwwtest  
  4.     DocumentRoot /var/wwwtest  
  5.     ErrorLog /var/wwwtest/log/wwwtest_error.log  
  6.     LogLevel warn  
  7.     CustomLog /var/wwwtest/log/wwwtest_access.log combined  
  8. </VirtualHost>  

        在sites-enable中新加一個對sites-available的軟串連

[plain] view plaincopy

  1. ln -s /etc/apache2/sites-available/test /etc/apache2/sites-enabled/test   

        重啟apache伺服器即可。

        第二種方法是只啟動一個單一的apache進程,使用VirtualHost指令來為不同的網站,配置不同的值,這種配置方式,我們可以在本地做個實驗的,由於127.0.0.*的所有ip都是指向原生,所以,我們可以隨便拿兩個出來做實驗,按照如下方式配置apache,之後,在hosts檔案中,將網域名稱綁定到配置的ip上,就可以實現在本地運行多個wp系統的一個配置:

[plain] view plaincopy

  1. <VirtualHost 127.0.0.1:80>  
  2.     ServerAdmin yourname@domain.com  
  3.     DocumentRoot "/usr/mySite/test1"  
  4.     ServerName site1.com  
  5.     ServerAlias www.site1.com  
  6.     ErrorLog "logs/site1.com-error.log"  
  7.     CustomLog "logs/site1.com-access.log" combined  
  8. </VirtualHost>  
  9.   
  10. <VirtualHost 127.0.0.2:80>  
  11.     ServerAdmin yourname@domain.com  
  12.     DocumentRoot "/usr/mySite/test2"  
  13.     ServerName site2.com  
  14.     ServerAlias www.site2.com  
  15.     ErrorLog "logs/site2.com-error.log"  
  16.     CustomLog "logs/site2.com-access.log" combined  
  17. </VirtualHost>  


        基於名字的虛擬機器主機
        基於名字的虛擬機器主機比起基於IP的來說,配置要更加簡單,它只要依靠用戶端發送的HTTP頭資訊中的HOST欄位來判斷,伺服器到底要服務哪個虛擬機器主機。一般情況下,還是比價推薦使用這種方式。因為IP資源日漸稀缺,對於一般使用者來說,為一台伺服器購買多個IP也是成本較高的。

        使用這種方式配置時,首先是用NameVirtualHost指令,配置次apache執行個體監聽的IP地址和連接埠號碼,然後使用VirtualHost指令來配置不同的虛擬機器主機,上述的例子,用這種方式配置的話,配置方法如下(注意,在這種方式中,ServerName是必要欄位):

[plain] view plaincopy

    1. NameVirtualHost 127.0.0.1:80  
    2.   
    3. nbsp;<VirtualHost *:80>  
    4.     ServerAdmin yourname@domain.com  
    5.     DocumentRoot "/usr/mySite/test1"  
    6.     ServerName test1.com  
    7.     ServerAlias www.test1.com  
    8.     ErrorLog "logs/test1.com-error.log"  
    9.     CustomLog "logs/test1.com-access.log" combined  
    10. </VirtualHost>  
    11.   
    12. <VirtualHost *:80>  
    13.     ServerAdmin yourname@domain.com  
    14.     DocumentRoot "/usr/mySite/test2"  
    15.     ServerName test2.com  
    16.     ServerAlias www.test2.com  
    17.     ErrorLog "logs/test2.com-error.log"  
    18.     CustomLog "logs/test2.com-access.log" combined  
    19. </VirtualHost>  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.