今天要介紹的兩個在網頁後端開發中非常重要角色:網頁伺服器(Web server)和資料庫(Database)。
什麼是web server呢?
首先要先提到另外兩個角色:app server和client端。
app server是我們的應用程式伺服器,client端則是指任何發送請求到server端並接收回應的裝置/應用程式,而web server透過HTTP協議,在client端和app server之間作為溝通的橋樑。
當使用者在瀏覽器網址列中輸入網址,這時請求會先送到web server,web server收到這個請求後,
會根據請求的URL和config檔裡的設定來處理請求。
請求內容又可分為靜態資源和動態資源:
* 若是靜態資源,web server會直接去檔案系統裡找到讀取對應檔案,並將文字/圖片/HTML/Script等靜態內容回給瀏覽器,讓瀏覽器渲染之後呈現在使用者面前。
* 若是動態資源,例如要執行php或nodejs等後端程式碼、去資料庫撈資料等,web server則會再把請求發送到app server,由app server產生對應內容後,再讓web server返回給瀏覽器。
常見的web server有apache、nginx,而這篇會以apache為例示範如何安裝。
作業系統:Ubuntu 18.04
打開terminal,輸入以下指令:
$sudo apt update
$sudo apt install apache2
安裝好後,打開瀏覽器,在網址列打上:
(server_ip若沒特別設定過基本上都是127.0.0.1)
http://your_server_ip
看到這個畫面就表示安裝成功~
或者也可以輸入這個指令來查看apache的狀態
sudo systemctl status apache2
若apache未啟動,可以輸入以下指令啟動
sudo systemctl start apache2
或許看到這有人會好奇,為什麼是apache2? 那apache1呢?
apache1.x是在1990年代開發的,許多技術都已過時,而相較之下apache2則擁有mult-ithreading、優化過的記憶體管理等,可以更有效的處理大量請求。apache1也已經不再被維護,因此也隱含一些安全性問題,且在他之後推出的nginx、caddy等都是效能及易用性更高更受歡迎的選擇,apache1已逐漸被市場淘汰,所以2002推出了apache2,解決了第一代既有問題,且現在都還持續被維護,是個穩定、安全且被廣泛使用的web server。
安裝MySQL server
$sudo apt install mysql-server
安裝過程系統會詢問你是否要繼續,輸入y就行了
安裝好後,輸入以下指令,啟動互動式shell script:
$sudo mysql_secure_installation
接著系統會詢問你是否要安裝VALIDATE PASSWORD PLUGIN
VALIDATE PASSWORD PLUGIN是MySQL的一個plugin,用於驗證使用者設定的密碼強度,進而提高安全性。
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
輸入y的話便會看到以下文字,可依據你的需求設定密碼強度:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
若輸入了上面的驗證規範(validation policy),設定MySQL密碼時就必須遵從你所設定的強度規範,否則MySQL會拒絕你的密碼並出現錯誤。
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
接下來系統問你的每個問題只要按y和enter就可以了。
他會刪除一些匿名用戶和測試的資料庫,並禁止root遠端登錄,然後載入剛才你所設定的驗證規範,以便讓MySQL立即遵從你的設定。
安裝好後,打開terminal,輸入 mysql -uroot -p
然後輸入你的MySQL密碼,看到這個畫面就表示安裝成功:
參考資料:https://www.howtoing.com/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04?fbclid=IwAR1ju1jXaY93yje8-VSlT-dcj3iIroORAt-a9OdUT4vU_KPwTxgNnvxDc70