Server Setting https://marstree.ltd 火星樹資訊科技有限公司 專營系統、電子商務、資訊解決方案 Thu, 11 Aug 2022 15:41:07 +0000 zh-TW hourly 1 https://wordpress.org/?v=6.9.1 https://i0.wp.com/marstree.ltd/wp-content/uploads/2020/04/cropped-MarsTree.png?fit=32%2C32&ssl=1 Server Setting https://marstree.ltd 32 32 176111519 【網上研討會】7月27日 如何運用雲端開單系統和Amazon Web Services (AWS) 網頁託管服務去支持你的業務 https://marstree.ltd/aws-webinar-20200727/ https://marstree.ltd/aws-webinar-20200727/#comments Fri, 17 Jul 2020 11:09:19 +0000 https://marstree.ltd/?p=1318 運用雲端系統有什麼好處?想優化開單程序? 想把龐大數據儲存在安全雲端系統?

MARStree 活動 | 如何運用雲端開單系統和Amazon Web Services (AWS) 網頁託管服務去支持你的業務

Ingram Micro 聯同Amazon Web Services (AWS) 及MarsTree將於 7月27日(星期一) 舉辦線上研討會,為你介紹如何利用雲端開單系統,簡易完成線上開單以及倉存管理功能,使用AWS雲端去託管您的網站和應用程式的好處,及Ingram Micro如何助你在雲端上建構與部署。

網上研討會主題: 如何運用雲端開單系統和Amazon Web Services (AWS) 網頁託管服務去支持你的業務
日期: 7月27日 (星期一)
時間: 3pm – 4pm
活動詳情請按 這裡

MARStree 雲端開單系統

活程日程及講者

  1. 利用雲端開單系統 - 簡單完成線上開單及倉存管理
    講者:David Chu, MARS Tree Information Technology Ltd.
  2. 為何要使用AWS雲端去託管您的網站和應用程式?
    講者:Cathy Li, Amazon Web Services
  3. Ingram Micro助你在雲端上的建構與部署
    講者:Daniel Yim, Ingram Micro

按此立即報名

如有查詢,請聯絡我們 (電郵:david@marstree.ltd 或致電 +853 28509279)

請注意:在您報名後,網上研討會的登入連結,將會由電郵給您,感謝你的支持!

MARStree 幫您生意數碼轉型!AWS做網站

The post 【網上研討會】7月27日 如何運用雲端開單系統和Amazon Web Services (AWS) 網頁託管服務去支持你的業務 first appeared on MARStree.]]>
https://marstree.ltd/aws-webinar-20200727/feed/ 1 1318
LAMP Webserver 安裝! 網站訪問流程全面講! https://marstree.ltd/lamp_webserver/ https://marstree.ltd/lamp_webserver/#respond Wed, 04 Mar 2020 01:35:22 +0000 http://www.theprogramclub.com/?p=195 在Programming 行業中 LAMP 不是一盞燈,而是一堆軟件(software bundle)的簡稱,透過這個LAMP,自學Programming的您,可以輕鬆建立到網站!

今天我們會講解Webserver的架構,由您在瀏覽器輸入域名那一刻,去到網站顯示在你眼前,這個過程做了什麼? 我們更會示範 LAMP Webserver 是如何建立。

PS:你趕時間的話,也可以只看我的標題及重點字眼,我會用粗體去標明。
大家有問題,你可以在下面留言區留言問我!

我們今次會圍繞兩個主題去講解:

如果你是想知道概念長知識的朋友,可以按第一個問題
如果你是想知道如何操作建立LAMP的朋友,可以看第二個問題

一. 訪問網站流程

訪問網站流程
由您在瀏覽器輸入域名那一刻,去到網站顯示在你眼前,各個單位都做了不同的工作。

總體來說,訪問網站的流程:

  1. 輸入域名後,DNS (Domain Name Server)解析域名變為 IP address
  2. 根據 IP address 在互聯網會前往對應指定服務器
  3. 服務器中的Webserver會根據域名前往特定的文件進行存取
  4. 特定的文件會整理數據庫數據,以及顯示網站

Step1. 輸入域名後,DNS (Domain Name Server)解析域名變為 IP address

DNS 解析域名變為IP address
在這個互聯網的世界,所有訊息都是用IP address去確認位置,而域名(Domain Name)則是一個人類看得懂的一個名字。

故此,電腦世界是需要DNS(Domain Name Server)去記錄和解析不同的域名所對應的IP address

每當購買完域名後,都要修改DNS的記錄,就是告訴給DNS知道,您的域名對應什麼IP address

Step2. 根據 IP address 在互聯網會前往對應指定服務器

根據 IP address 在互聯網會前往對應指定服務器

剛剛也講過,在這個互聯網的世界,所有訊息都是用IP address去確認位置。

DNS解析到IP address之後,請求訊息就會經不同的路由器(Router) 去到前往對應指定服務器。

Step3. 服務器中的Webserver會根據域名前往特定的文件進行存取

服務器中的Webserver會根據域名前往特定的文件進行存取

一個服務器可以有多個Webserver;
一個Webserver可以有多個寄存的網站;
Webserver可以是:

當請求訊息去到服務器中的Webserver,Webserver會根據域名前往特定的文件進行網站資料的存取。

如果這個網站是一個HTML寫成的靜態網站(Static Website)的話,您就會看到網站在您的瀏覽器出現了!

Step4. 特定的文件會整理數據庫數據,以及顯示網站

特定的文件會整理數據庫數據,以及顯示網站
當Webserver拿到網站編程文件時,特定的文件會整理數據庫數據,並顯示網站結果到您的瀏覽器,這個網站又稱動態網站(Dynamic Website)

顧名思義,就是架構固定,但內容會因為數據庫數據的變動,而有變化。

網站編程文件可以是:

看到去到這裡,如果大家覺得學習到新知識的話,請大家都分享這文章吧! 感謝!

二. 建立LAMP 網頁服務

剛剛說了訪問網站流程,而建立LAMP 就是去建立上面所說的Step3Step4

LAMP 不是一盞燈,而是一堆軟件(software bundle)的簡稱。

這裡會和大家一步建立起LAMP

我們會使用Ubuntu 18.04LTS 去做LAMP中的Linux 系統,如果您想知道如何安裝Ubuntu 18.04LTS,可以看以下片段:

0. 升級做root管理員

執行以下指令,升級做root管理員

  sudo -s

執行時,會要求輸入密碼。

1. 安裝Apache

執行以下指令,安裝Apache

  apt update
  apt install apache2

期間會問是否安裝的問題時,請按Y 和按Enter進行確認。

  • apt 是Ubuntu 中管理軟件下載、安裝和移除的一個工具
  • apt update 目的是令apt下載到軟件是最新版本

2. 調整防火牆試允許網站的傳輸

執行以下指令:

  ufw app list

它會列出可以選擇的服務:

Output
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

然後執行以下指令:

  ufw allow in "Apache Full"

意思是允許"Apache Full" 這個服務輸入服務器存取資料。

Apache Full 包括了Apache 和 Apache Secure;
Apache 是指HTTP的訪問 (Port: 80);
Apache Secure 是指HTTPS的訪問 (Port: 443);

如果你是建立靜態網站的話(即上面訪問網站流程Step3),你可以在瀏覽器網址欄位輸入http://服務器的ip_address

可使用以下的指令獲取服務器的ip address

  ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

你便可以看到一個Apache預設提供的網站,如下圖:
LAMP Webserver apache 預設網站

Apache安裝成功!

放心!我們會繼續安裝下去,會為大家實現動態網站!

3. 安裝MySQL數據庫

再來吧!執行apt指令

  apt install mysql-server

期間也會問是否安裝的問題時,請按Y 和按Enter進行確認。安裝完之後,我們要為MySQL數據庫的管理員建立密碼,執行以下指令:

  mysql_secure_installation

之後它會詢問您是否需要啟用VALIDATE PASSWORD 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 和按Enter進行確認。之後它會詢問你採用哪一個密碼驗證強度等級。這裡我建議用1,即MEDIUM(最少8位密碼,有大小楷和符號)

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

之後你會被詢問是否更改管理員root的密碼:

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進行確認,然後輸入您想改的密碼。

完成更改的密碼管理員密碼之後,可以輸入以下指令去確認是否更改成功:

   mysql -u root -p

如成功的話,您會進入了MySQL數據庫的界面,您可以打exit回到shell 的界面:

mysql> exit

MySQL安裝成功!

4. 安裝PHP

執行以下的安裝指令:

apt install php libapache2-mod-php php-mysql

上面的指令一次安裝了三個軟件:

  1. 安裝php
  2. libapache2-mod-php 是一個Apache的模組(module)去讀取PHP文檔;
  3. php-mysql 是一個PHP的延伸插件(extension),功能是使得PHP能夠操作MySQL數據庫。

一般來說,Apache 會優先讀取網站目錄中index.html的檔案,而使用了PHP的話,我們都想Apache優先讀取了index.php的檔案,如果沒有index.php,才讀取index.html

故此,輸入以下指令,編輯Apache 讀取index檔的次序;
nano /etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

您會看到index.html會比index.php排得優先,而我們的目標是要先讀index.php,所以修改結果是如下:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

完成修改後,按CTRL+X,再按Y儲存修改,按Enter離開。

由於我們修改過Apache 的設定,我們要把Apache 重啟,故執行以下指令:

  systemctl restart apache2

PHP 也安裝完成了!

5. 最後確認安裝是否成功

執行以下指令:

  nano /var/www/html/phpinfo.php

並輸入以下的PHP:

<?php
  echo phpinfo();

完成後請按Ctrl+X,按Y儲存,按Enter離開。

最後,我們就可以到瀏覽器網址欄中輸入以下連結http://ip_address/phpinfo.php,瀏覽器有以下畫面出現,即是現在已經完成安裝了!

LAMP Webserver phpinfo結果

三. LAMP Webserver常見問題

Q1. LAMP 是什麼?

Ans:LAMP 不是一盞燈,而是一堆軟件(software bundle)的簡稱。

  • L 是 Linux 操作系統,我們會用Ubuntu18.04LTS;
  • A 是 Apache Webserver;
  • M 是 MariaDB 或 MySQL 數據庫;
  • P 是 網站編輯語言 可以很多

Q2. 靜態網站 vs 動態網站?

Ans:靜態網站(Static Website)是以HTML檔案寫成,架構和內容都固定的;動態網站(Dynamic Website)是以網頁編程語言寫成,架構是固定,但內容是由網頁編程語言調用數據庫資料得來的,數據庫是動態可變的內容。

Q3. 由我在瀏覽器打網址的開始,去到網站顯示,這個過程做了些什麼?

Ans: 概括來說,由你在瀏覽器打網址的開始,會經過以下的流程:

  1. 輸入域名後,DNS (Domain Name Server)解析域名變為 IP address
  2. 根據 IP address 在互聯網會前往對應指定服務器
  3. 服務器中的Webserver會根據域名前往特定的文件進行存取
  4. 特定的文件會整理數據庫數據,以及顯示網站

如果覺得文章有用記得分享。
你還有什麼問題問我?在留言區留言吧!**

The post LAMP Webserver 安裝! 網站訪問流程全面講! first appeared on MARStree.]]>
https://marstree.ltd/lamp_webserver/feed/ 0 1138
自學Programming! Shell Programming – 如何利用Shell Script 簡單自動備份您電腦? https://marstree.ltd/shellscript-backup/ https://marstree.ltd/shellscript-backup/#respond Sat, 22 Feb 2020 20:50:29 +0000 http://www.theprogramclub.com/?p=118 今次我們會繼續自學Programming的講解,學會Programming其中一個目的,是為您生活或工作帶來更多自動化的便利。

所以我們今天會為大家講解以下:

  1. Shell Programming是什麼?
  2. 一起用Shell編程,去實現自動化備份您的電腦;
  3. 我們也會提供自動化程序的下載

先介紹自己:
我是火星豬David! 是MARS tree的技術總監。在Programming方面已超過10年經驗,今天會和大家逐步實現自動化備份您的電腦

PS:如果你趕時間取得自動備份電腦的Shell Script 的話,可以直接按這裡下載

有什麼關於自學Programming方面的問題,你可以在下面留言區留言問我!*

Shell Programming是什麼?

Shell Programming 就是在UNIX系統中的BASH Shell中進行指令的編程,去實現不同電腦系統的自動化。對於系統管理員來說,自己學會Shell Programming 就是在UNIX,可以大量減省操作時間。

UNIX系統包括:

Shell Programming vs Linux Programming

講到這裡,可能有些人在外面會聽過Linux Programming, 那麼同時在Linux中的Shell, 有什麼不同呢?

Shell Programming Linux Programming
操作層面 在應用層面的操作,不會修改Linux 核心 修改Linux 的核心
使用編程 Shell Script C
修改難度 容易 困難
程序運行速度
操作功能 功能會受限於BASH支持的指令 功能較多,因為可以直接編輯Linux 核心

總括來說:
對於初學的朋友來說,最好先選擇Shell Programming,因為困難和風險都是較小,萬一改錯了Linux 的核心,那就gg了!

這裡也附上一個影片關於Shell script 的 基礎語法:

好吧!說了很多概念,不如我們進入實戰吧!

Shell Script編程: 實現自動化備份您的電腦

STEP1. 定義變量

我們會為Shell Script定義以下的參數:

  • 變量 backDir:是指需要備份的目錄;
  • 變量 destDir:是指備份之後壓縮檔存放的目錄;
  • 變量 numberOfDayFileKeep:是指備份壓縮檔存放的天數
#!/bin/bash
#
# 自動備份電腦Shell Script
#
backupDir="/home/davidchu/lession1" #需要備份的目錄
destDir="/home/davidchu/lession2/back_dir" #備備份之後壓縮檔存放的目錄
numberOfDayFileKeep=30 #備份壓縮檔存放的天數

STEP2. 開始為需要備份的目錄進行壓縮備份

這個步就是會為需要備份的目錄進行壓縮備份,我們會壓縮備份檔會以backup年月日時分秒.tar.gz 命名,儲放於$destDir

#!/bin/bash
#
# 自動備份電腦Shell Script
#
backupDir="/home/davidchu/lession1" #需要備份的目錄
destDir="/home/davidchu/lession2/back_dir" #備備份之後壓縮檔存放的目錄
numberOfDayFileKeep=30 #備份壓縮檔存放的天數

#壓縮檔會以backup年月日時分秒.tar.gz 命名
tar zcPf $destDir/backup`date +%Y%m%d%H%M%S`.tar.gz $backDir 

STEP3. 檢查存放的目錄中備份壓縮檔是否超過30天

以下是Programming 的過程及解釋:

  • for f in \ls -1r $dest\ :意思是把存放的目錄中備份壓縮檔按名稱由大於小排序,並給予變量 f 使用;
  • 變量 i :負責計算數量,在存放的目錄中數到一個文件時會加1;
  • let "i++" :幫變量i加1
#!/bin/bash
#
# 自動備份電腦Shell Script
#
backupDir="/home/davidchu/lession1" #需要備份的目錄
destDir="/home/davidchu/lession2/back_dir" #備備份之後壓縮檔存放的目錄
numberOfDayFileKeep=30 #備份壓縮檔存放的天數

#壓縮檔會以backup年月日時分秒.tar.gz 命名
tar zcPf $destDir/backup`date +%Y%m%d%H%M%S`.tar.gz $backDir 

i=0
for f in `ls -1r $dest`; do
    if [ i -ge 30 ]; then
        #進行刪除
    fi
    let "i++"
done

STEP4. 在存放的目錄中把備份壓縮檔存放超過30天刪除

我們會使用rm -rf $dest/$f 把過期的壓縮檔刪除,故此程序如下:

#!/bin/bash
#
# 自動備份電腦Shell Script
#
backupDir="/home/davidchu/lession1" #需要備份的目錄
destDir="/home/davidchu/lession2/back_dir" #備備份之後壓縮檔存放的目錄
numberOfDayFileKeep=30 #備份壓縮檔存放的天數

#壓縮檔會以backup年月日時分秒.tar.gz 命名
tar zcPf $destDir/backup`date +%Y%m%d%H%M%S`.tar.gz $backDir 

i=0
for f in `ls -1r $dest`; do
    if [ i -ge 30 ]; then
        #進行刪除
        rm -rf $dest/$f
    fi
    let "i++"
done

STEP5. 完成程序編寫!

恭喜您!您已經完成了自動備份的程序編寫了,之後就是設定你的電腦,實現自動備份。

來到這裡:

  • 如果大家遇到有問題,可以在留言區留言;
  • 如果覺得實用請分享給朋友,感謝

自動備份電腦Shell Script

以下Shell Script內容適合以下系統使用者:

Shell Script 調教

下面是自動備份電腦的Shell Script,可以自行修改的位置:

  • 變量 backDir:是指需要備份的目錄;
  • 變量 destDir:是指備份之後壓縮檔存放的目錄;
  • 變量 numberOfDayFileKeep:是指備份壓縮檔存放的天數

    火星豬David: 調教後便能自行使用了!

#!/bin/bash
#
# 自動備份電腦Shell Script
#
backupDir="/home/davidchu/lession1" #需要備份的目錄
destDir="/home/davidchu/lession2/back_dir" #備備份之後壓縮檔存放的目錄
numberOfDayFileKeep=30 #備份壓縮檔存放的天數

echo "START BACKUP $backupDir"; #開始做備份壓縮檔
tar zcPf $destDir/backup`date +%Y%m%d%H%M%S`.tar.gz $backDir #壓縮檔會以backup年月日時分秒.tar.gz 命名

i=0
for f in `ls -1r $destDir`; do
    if [ $i -ge 30 ]; then
        echo "REMOVE THE OLDEST FILE $destDir/$f" #如果壓縮檔存放超過30天,會被此程序刪除
        rm -rf $destDir/$f
    fi
    let "i++"
done

exit 1;

使用方法

macOS 用戶

macOS 可以用以下步驟實現自動排程:

  1. 請把上Shell Script複製到文件中 backup.sh
  2. 開啟終端機(Terminal);
  3. 執行 chmod +x ~/Documents/backup.sh 意思是開放系統執行權限;
  4. 執行 crontab -e;
  5. 按 "i" 進入INSERT MODE, 加上以下文字:
    0 0 * * * ~/Documents/backup.sh > /dev/null
  6. ESC,再按:wq儲存便可以了(意思是設定系統每天00:00執行備份)。

Linux 用戶

Linux 可以用以下步驟實現自動排程:

  1. 請把上面Shell Script複製到 /usr/local/src/backup.sh
  2. 執行 chmod +x /usr/local/src/backup.sh 意思是開放系統執行權限;
  3. 執行 echo "0 0 * * * root bash /usr/local/src/backup.sh > /dev/null" >> /etc/crontab
    意思是設定系統每天00:00執行備份
  4. 執行 service cron start,便可以了。

Shell Programming 常用情景有什麼呢?

最後我們也總結了下面一些情景,是需要到Shell Script

  • Senerio 1. 自動備份
  • Senerio 2. 自動send Email;
  • Senerio 3. 快速處理多個操作(生成大量檔);
  • Senerio 4. 自動下載網上的檔案;

我們會不斷補充相關的Shell Script 的指令的!
如果大家還想知道更多Shell Programming 的指令,記得訂閱我們了!

The post 自學Programming! Shell Programming – 如何利用Shell Script 簡單自動備份您電腦? first appeared on MARStree.]]>
https://marstree.ltd/shellscript-backup/feed/ 0 1134