Programming 實踐 https://marstree.ltd 火星樹資訊科技有限公司 專營系統、電子商務、資訊解決方案 Sat, 08 Aug 2020 09:55:20 +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 Programming 實踐 https://marstree.ltd 32 32 176111519 自學Programming 裝備分享 – 硬件篇 https://marstree.ltd/hardware/ https://marstree.ltd/hardware/#respond Wed, 10 Jun 2020 18:12:58 +0000 https://www.theprogramclub.com/?p=258 有些人這陣子就問我,究竟我在自學Programming時,自己用了什麼裝備呢?我自學Programming應該看什麼的書籍呢?我今次一一列出我自己的裝備。

我是火星豬David! 是MARS tree的技術總監。在Programming方面已超過10年經驗,

這篇文章將會為大家分享自己在學習和做programming時,會使用到的一些裝備。

我講以下兩類的裝備:

  • [電腦硬件](#pc “電腦硬件”);
  • [書籍](#book “書籍”);

    這篇文章會介紹電腦硬件,下篇文章會介紹書籍;
    我們會不斷更新裝備清單,大家如果想一直留意我們的動態,你們可訂閱我們網站Programming 編程資訊吧!

電腦硬件 {#pc}

iMac

首先我會推薦大家用好的電腦,我起初去自學網站開發的時候,是用一台 Dell 的手機電腦,但之後就接觸到一台macbook pro, 發現性能和操作的習慣都是很方便,所以由此之後就轉會macOS 了。

在我現在MARStree 也是用macOS。關於Desktop 類電腦,我會使用iMac,使用的型號如下:

iMac 27-inch

Display: Retina 5K display
Processor: 3.1GHz 6‑core Intel Core i5 (Turbo Boost up to 4.3GHz)
Memory: 8GB (two 4GB) of 2666MHz DDR4 memory; four SO-DIMM slots, user accessible
Storage: 1TB Fusion Drive
Graphics: Radeon Pro 575X with 4GB of GDDR5 memory

更多資料可以前往Apple查閱

MacBook Pro

由於我工作的需要,需要帶laptop 外出工作,我們使用MacBook Pro 13-inch。因為MacBook Pro 都有一定的重量,外出工作可以用較為輕和小的型號,然而它的性能非常之好,可以做到很多的運算:

MacBook Pro 13-inch

Display: Retina display 13.3‑inch (diagonal) LED-backlit display with IPS technology;
Processor: 1.4GHz quad‑core Intel Core i5, Turbo Boost up to 3.9GHz, with 128MB of eDRAM
Storage: 256GB SSD
Memory: 8GB of 2133MHz LPDDR3 onboard memory

更多資料可以前往Apple查閱

Samsung T5 Portable Harddisk

然而,因為MacBook ProSSD硬盤的儲存比較細小,經常有不足夠空間的問題,所以我故意去使用一個Portable SSD 硬盤,而一般SSD 會很少去做Portable版本,而Samsung 則是做了這個領域的帶領。

Samsung T5 Portable Harddisk

Interface: Compatible with USB 3.1 Gen2 (10Gbps), backwards compatible
Capacity: 2TB
Transfer Speed: Up to 540 MB/s
Weight: 51g

更多資料可以前往Samsung查閱

Amazon Kindle

Developer 需要不斷的補充新知識,看書是一個很好的方法去學習,我習慣上去Amazon 購電子書,一般我使用Kindle 進行閱讀

Kindle Paperwhite

Storage: 8 GB or 32 GB
Resolution: 300 ppi
Wi-Fi connection: Wi-Fi or Wi-Fi + Free Cellular Connectivity

我們下一篇文章會分章Developer 可以看什麼書籍。

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

The post 自學Programming 裝備分享 – 硬件篇 first appeared on MARStree.]]>
https://marstree.ltd/hardware/feed/ 0 1275
【WordPress 教學】使用WordPress.com輕鬆建構網站!零基礎都得! https://marstree.ltd/wordpress_toturioal/ https://marstree.ltd/wordpress_toturioal/#respond Sat, 04 Apr 2020 14:01:39 +0000 http://www.theprogramclub.com/?p=247 今次會跟大家去分享WordPress去做網站!而我們經常都會聽到WordPress,但是他究竟是什麼?有什麼功能令WordPress做到這麼強勁呢?今次我們會和大家一一去講解WordPress,最後會同大家一起用WordPress.com 去創作自己的個人網站。

今次我們會從下面幾點去講解:

PS:你趕時間的話,也可以只看我的標題及重點字眼,我會用粗體去標明。

有什麼WordPress方面的問題,你可以在下面留言區留言問我!*

我是火星豬David! 是MARS tree的技術總監。在Programming方面已超過10年經驗,今次會跟大家去分享WordPress去做網站!

一. WordPress是什麼?

WordPress
WordPress是一個以PHP語言開發出來的內容管理系統Content Management System (簡稱CMS),它的誕生使得網站發展變得更簡單。直到2020年,網路上有 36% 的網站皆選用 WordPress 服務。

全球已經有超過12.4億個網站,如果計一下,差不多有5個億的網站是使用WordPress去創造,WordPress也是目前最受歡迎的部落格系統

二. 為什麼建立網站使用WordPress

WordPress 以下的特點令到他這麼受歡迎:

  1. SEO功能優越;
  2. 佈景主題(Theme)和外掛(Plugins)選擇很多很方便;
  3. 外掛(Plugins)可以開發;

1. SEO功能優越

SEO 搜索引擎優化
SEO全稱是指Search Engine Optimisation(搜索引擎最佳化)。上面也講述過,WordPress 是一個最受歡迎的部落格系統,它方便使用者專心地專注寫好內容,而它內在的html結構,都對GoogleBingYahoo等搜索引擎非常有好。

另外,我們也可以透過一些外掛(Plugins)的安裝,可以實現在把網站頁面和內容制作sitemap.xml 提交到GoogleBing等搜索引擎。

2. 佈景主題(Theme)和外掛(Plugins)選擇很多很方便

WordPress 佈景主題 | The Program Club 編程俱樂部
對於很多新手初學網站建構的人,外觀設計是一個很頭痛的地方,而WordPress 就完全解決到這個問題,WordPress 有大量的外觀佈景主題(Theme),簡單的安裝套用就可以了;另外也可以使用WordPress 的外掛(Plugins)去令網站的功能豐富。

3. 外掛(Plugins)可以自行開發

WordPress 外掛 | The Program Club 編程俱樂部
對於開發者來說,WordPress 是一個開放代碼的系統,他提供代碼的編輯、佈景主題的編輯以及外掛插件的編輯,如果你是懂得代碼編程的,就可以自行修改WordPress裡面的內容。

三. WordPress.com vs WordPress.org

如果你是一個新手去接觸WordPress,你可能會找到WordPress.com 以及 WordPress.org,當中兩者有什麼分別?

以下我就有一個表格講解兩者的分別:

WordPress.com WordPress.org
WordPress.com 是一個WordPress寄存網站的服務,你可以在上面建構自己的網站或部落格 WordPress.org 是一個 WordPress的軟件,我們可以把他下載,並放在不同的服務器上建構網站或部落格
WordPress.com 是一個平台,我們需要在上面註冊後才使用 WordPress.org 是完全獨立的用戶管理系統,用戶可以自行安排用戶及其角色
使用WordPress.com 的基本版是免費的,但如何要使用更多的功能上話,就要付費去升級了 使用WordPress.org 是免費的,用戶也可以自行開發外掛,當然用戶自行要付自己的服務器費用
WordPress.com 不能上傳外掛,所有功能由WordPress提供 WordPress.org 是可以供開發者上傳自己開發的外掛,你擁有更多的自由和彈性

所以兩者都是可以用來做網站,但對新手初學者來說,WordPress.com 比較容易學習,因為你不用太多的網站寄存的技巧,而使用WordPress.org 則需要你懂得相關的網站寄存的知識。

四. 如何使用WordPress.com 創建網站

好吧!現在我們就來一起用WordPress.com去創建網站。

WordPress.com 的計劃選擇

首先上到 WordPress.com,你會看到不同的計劃,上面都有提及過,WordPress.com提供免費的基本版本,而進階功能版本就要求付費了。如下圖:
WordPress收費計劃 | The Program Club 編程俱樂部

WordPress.com 主要分為以下五種計劃:

  • 基礎入門版:免費;
  • 個人版:US$4;
  • 進階版:US$8;
  • 商務版:US$25;
  • 電子商務版 - US$45;

我建議如果你是個人,想建構一個部落格或者網站的話,可以使用:

  • 基礎入門版;
  • 個人版;
  • 或者進階版;

而如果你是一個企業或者公司,你想用這個網站做推廣或者網上買賣,則使用:

  • 商務版;
  • 電子商務版;

WordPress 方案對比
"WordPress 方案對比2"

我們今次會帶大家先用基礎入門版,遊一遊WordPress!
首先我們需要註冊帳號:
WordPress 註冊帳號

WordPress 基本設定及帳號設定(Manage)

  1. 進入管理後台之後,我們先到 Manage > Settings,在General中,我們可以修改 Site Title 以及 上傳Site Icon,變更網站語言Language,以及修改網站的時區Site Timezone,提提你好多朋友都忘記修改自己網站的時區,這樣有機會使得你的頁面和文章顯示不出來,修改完成後按「Save Setting」。

WordPress管理後台 | The Program Club 編程俱樂部
WordPress上傳圖片 | The Program Club 編程俱樂部

  1. 在Writing中,去設定好文章所用到的分類Categories 以及文章標籤 Tags,這是方便日後編寫文章時有個區分,以及方便其它人搜索而設定。

WordPress分類及標籤 | The Program Club 編程俱樂部

  1. 前往菜單 Manage > People,我們可以邀請(Invite) 不同的用戶加入網站。我們可以安排用戶不同的用戶角色。
    WordPress 用戶管理 | The Program Club 編程俱樂部
    WordPress 邀請用戶 | The Program Club 編程俱樂部

WordPress 不同的角色(Role) 權限,可以瀏覽這個連結:
https://wordpress.com/support/user-roles/

WordPress 外觀設定(Design)

  1. 前往菜單 Design > Themes,這裡會有很多不同的網站佈景主題給你選擇,你可以點選自己一個喜歡的主題之後,就可以按「Activate this design」

WordPress 佈景主題 | The Program Club
WordPress 佈景主題2 | The Program Club

WordPress 頁面及文章(Pages and Posts)

  1. 前往菜單 Site > Pages,我們可以新增/修改/刪除頁面,我們先點擊 Home 編輯首頁。

WordPress 頁面

  1. 我們可以為首面簡單的編輯文字標題及圖片等等,完成後按右上角"Update"便可。

WordPress 編輯首頁

  1. 之後按左上角的WordPress Logo 就可以跳回管理後台,之後前往 Site > Posts,我們可以在這裡新增/修改/刪除文章,
    點擊「Add new post」。

WordPress 文章

  1. 我們在這裡可以添加自己的文章標題以及內容,當完成編輯後,按「Publish」之後就可以發佈。

WordPress 新增文章

好啦!大致上 WordPress.com 的入門版已經得差不多了。

五. WordPress常見問題

Q1. WordPress 是什麼?

Ans:WordPress是一個以PHP語言開發出來的內容管理系統Content Management System (簡稱CMS),它的誕生使得網站發展變得更簡單,使用它去製作網站,你可以專注於內容的創作,不用理會功能和外觀的開發。

Q2. Wix vs WordPress?

Ans:他們都是可以用來做網站的平台,區分是我們要知道自己要做網站的用途是什麼,WixWordPress 操作更簡單設計美觀,但Wix 的缺點是SEO功能不太完善;所以要看情況使用,Wix可以用作售後服務的頁面;而WordPress ,好適合長期經驗的網站,如Blog 或者企業網站,因為他對文章SEO較好。

Q3. WordPress.com vs WordPress.org?

Ans: WordPress.com 是一個WordPress寄存網站的服務,你可以在上面建構自己的網站或部落格;WordPress.com 是一個平台,我們需要在上面註冊後才使用。 兩者的功能大致一樣。

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

The post 【WordPress 教學】使用WordPress.com輕鬆建構網站!零基礎都得! first appeared on MARStree.]]>
https://marstree.ltd/wordpress_toturioal/feed/ 0 1122
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