雪花臺灣

網頁伺服器(http server)

大家都聽過linux很適合用來當伺服器,Ubuntu是最多人熟悉的linux版本,現在就來說明如何在Ubuntu上架設網頁伺服器

來架設屬於自己的網頁吧!

本篇使用LAMP架構L:Linux作業系統  A:Apache網頁伺服器  M:MySQL資料庫  P:PHP

 

1.安裝及設定Apache

apache是apache軟體基金會研發的open source網頁伺服器,目前到2.4.25版

進到/etc/apache2,所有與apache相關的檔案全在這裡

首先打開設定檔apache2.conf(記得用root權限打開),apache2.conf包含apache主要的設定

找到Global configuration,從這裡以下開始設定

ServerRoot "(路徑)"         apache設定檔所在的目錄,例如設定擋在etc的apache2這個目錄裡,就是"/etc/apache2",最右邊不要加/,預設有mark掉,要把#拿掉才會生效

Timeout (秒數)                 設定client端多久沒反應就自動踢出

KeepAlive On/Off             是否讓client端建立一次連線可以對server發出多次request,打開可以讓client一次連上後同時做多件事(例如同時上傳下載多個檔案),不用每次都要重新連接

MaxKeepAliveRequests (數量)          client端每次連線可以同時從網頁下載的檔案數,0為無限制

KeepAliveTimeout (秒數)                   client端上次發出request後多久沒再發出request即自動踢出

HostnameLookups On/Off/Double     紀錄每個連上的client的方式,On會紀錄client的網域名稱,Off會紀錄client的ip,Double兩者都會紀錄                  


下面有一個<Directory />,這裡設定要對個別目錄內容在網頁上如何呈現,每段代表一個目錄,開頭的<Directory (目錄名)>代表要對哪個目錄設定,結尾用</Directory>結束,夾在中間的是設定項目和參數,例如<Directory />代表對/這個目錄的設定,</Directory>是結尾,中間是設定

Options 

 Indexes:如果這個目錄下沒有首頁檔,就在網頁上顯示出這個目錄下所有檔案的檔名

 ※首頁檔就是在這個網頁首頁對應到的目錄裡叫index.html的這個檔案,內容要用html設計,首頁上的背景、物件、連結等都可以用這個檔設計

 FollowSymLinks:當client連到你的網頁時,apache會讀取index.html,這個參數可以透過連結載入目錄外的index.html,所以有了這個參數,再將目錄外的index.html建一個symbolic link在這個目錄裡,就可以在網頁上顯示index.html的內容了

 ※symbolic link的指令sudo ln -s /(原檔位置、檔名) /(要建立連結的目錄)

 ExecCGI:讓這個目錄有執行CGI程式的權限

 Includes:讓一些server-side include程式可以執行

 MultiViews:在紀錄錯誤的檔案中以多種語言紀錄錯誤訊息,語言種類取決於系統設定

AllowOverride

 ALL:這個目錄的全部權限設定皆可以被client端的.htaccess這個檔覆寫

 AuthConfig:只有網頁認證設定可以被client端的.htaccess覆寫

 Indexes:只有indexes相關的設定可以被client端的.htaccess覆寫

 Limits:可以直接設定client端可在這個目錄下做哪些動作

 None:不可覆寫任何權限設定

 AllowOverride設定為Limits時,直接在<Directory (目錄名)>和</Directory>之間加入

 <Limit A B C....>

 Order allow,deny/deny,allow 

 Allow/Deny from all/(ip位址)

 </Limit>

 A、B、C...是要規範client在這個目錄下的網頁做的事,allow,deny代表基本上允許,特別規定者除外,deny,allow代表基本上不允許,特別規定者除外

 all是對所有的client都用此設定,或可以指定對哪些ip位址的client用此設定

 例如

 <Limit GET POST OPTIONS>
 Order allow,deny
 Allow from all
 </Limit>

 代表允許所有client在這個目錄的網頁做GET、POST、OPTIONS這些動作,特別規定者除外

Require all denied:所有使用者的apache都不可以使用這個目錄當網頁,特別規定者除外

Require all granted:所有使用者的apache都可以使用這個目錄當網頁,特別規定者除外 

預設只有三個目錄,當然也可以自己加入想要當網頁的目錄,格式與上面的一樣

打開apache2目錄裡的ports.conf 

ports.conf設定伺服器要用的port

Listen (port數)                                http協定要用哪個port

<IFModule ssl_module>
Listen (port數)                                ssl協定要用哪個port
</IFModule>

<IFModule mod_gnutls.c>
Listen (port數)                                gnutls模式要用哪個port
</IFModule>                        


打開sites-available資料夾,裡面有一個檔名有default的檔,另外在sites-enabled資料夾裡有它的symbolic link,sites-enabled裡放的都是sites-available的連結,所以改其中一個檔兩邊的檔會一起改

打開sites-available裡檔名帶有default的那個檔

ServerName (網域名)            網頁的DNS名稱,必須先註冊過或設定在hosts裡(下面會詳細說明)

ServerAdmin (電郵信箱)        網頁管理員的電子郵件信箱

DocumentRoot (目錄位置)     網頁相關檔案擺放的目錄

當在瀏覽器打上DNS位置,也就是servername,會看到以documentroot設定的目錄為首頁的網頁,如果目錄內有擺index.html這個網頁檔,頁面會顯示網頁檔的內容,如果沒有就要看apache2.conf裡對這個目錄的設定

可以在documentroot目錄下建子目錄,子目錄的網址是documentroot的網域名稱加上/(目錄名),例如網域名稱叫www.example.com,首頁目錄是/var/www/html,如果在/var/www/html目錄裡建一個目錄A,那麼在瀏覽器打www.example.com/A可以進到目錄A,這就是為什麼很多網頁的網域名後面會有/囉

 

2.安裝及設定PHP

PHP是伺服器端script,是給伺服器看的,不像html、CSSjavascript是給瀏覽器看的,所有與伺服器相關的動作(存取資料庫、在伺服器端讀寫檔案、與其他伺服器端的程式溝通)都必須由PHP達成,安裝php後網頁伺服器(Apache)才能編譯所有.php檔,雖然簡單的不涉及後端的網頁可以不用PHP,但大多數網頁都需要使用,至於PHP語法這裡不提

以下指令安裝php

到/etc/php/(php版本)/apache2裡,會看到php.ini,它是php的設定檔,打開它

找到allow_url_fopen、allow_url_include,確定它們是On

找到post_max_size,這個參數是以POST方法傳送表單的最大容量限制0是無限制,如果太小,會發現在上傳檔案時跑很久,有可能是這個原因

此外,upload_max_filesize和memory_limit這兩個值也檢查一下,三個參數的大小關係必須是memory_limit>post_max_size>upload_max_filesize

在terminal打a2enmod php7.0,這個指令是啟動php用的,看到Module php7.0 already enabled表示php已啟動

service apache2 restart重新啟動apache

打開/etc/apache2/mods-available/php7.0.conf

裡面是如下畫面

在</FilesMatch>下面加上

   <FilesMatch ".\.html$">
   SetHandler application/x-httpd-php
   </FilesMatch>

如下

php部分完成

 

3.安裝及設定MySQL資料庫

MySQL是一種資料庫,除了儲存資料,還提供查詢、排序(sort)刪除、分類、合併分開等功能,它以表單欄位的形式儲存資料,可以由PHP下達指令自動化操作,MySQL看的是SQL語法,至於SQL語法這裡不提

以下指令安裝MySQL

設定資料庫root使用者(資料庫管理員)的密碼

安裝phpmyadmin

以下按照圖上選擇

設定phpmyadmin登入密碼

下面輸入剛剛root user相同的密碼即可

以下如圖上選擇

port number留白即可

MySQL database name for phpmyadmin設一個自己喜歡的名字

MySQL username for phpmyadmin預設是phpmyadmin,直接確定即可

以下預設是root,直接確定即可

如出現以下畫面,選keep the local version currently installed

打開/etc/apache2/apache2.conf

在IncludeOptional sites-enabled/*.conf底下加一行Include /etc/phpmyadmin/apache.conf

安裝php7.0-mbstring

重新啟動apache

在瀏覽器打http://localhost/phpmyadmin,如出現以下畫面代表成功了,試著用username:root和剛剛設定的root使用者密碼登入

大功告成!😃😃😃

 

如無安裝mysql-server會出現此錯誤

如出現以下錯誤

到/etc/dbconfig-common/phpmyadmin.conf

找到dbc_dbport=' '這行

將它設為0

retry

相關文章