ubuntu httpserver 安裝配置(apache+mysql+php)

        參考文章來源:http://www.cnblogs.com/zhy113/archive/2013/03/26/2983659.html     作者:zhaohongyu113

        web代碼素材來源:開源中國http://www.oschina.net/news/39477/charisma

         筆者按照下面的步驟在ubuntu下部署了apache httpsever ,並上傳了從開源中國下載的web代碼,web代碼放在/var/www下、效果如下:



        其實還可以做成文件服務器,把文件放在/var/www即可,效果如下圖:


參考部署步驟:

一:安裝

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 中

  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中,裏面有這樣的內容:

  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 中增加監聽端口

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

        在sites-available中新加一個文件(可以拷貝原有的default並改名)用戶定義新的站點

  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的軟連接

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

        重啓apache服務器即可。

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

  1. <VirtualHost 127.0.0.1:80>  
  2.     ServerAdmin [email protected]  
  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 [email protected]  
  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是必填字段):

    1. NameVirtualHost 127.0.0.1:80  
    2.   
    3. nbsp;<VirtualHost *:80>  
    4.     ServerAdmin [email protected]  
    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 [email protected]  
    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>  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章