Tom Liao

@tom54699

👋 Hi, I'm Tom, a passionate backend engineer with expertise in Python (Flask), Node.js, and PHP (Laravel).

Joined on Feb 7, 2024

  • 前言 :::info 這篇文章簡單整理在處理匯出匯入 CSV 檔案遇到的一些小問題,和解決方案。 ::: 匯出後,Windows 系統打開出現亂碼 因為是在 MAC 開發測試,一開始沒有意識到這個問題,直到客戶詢問才發現。 造成原因 Mac 和 Windows 系統對於 CSV 檔案的編碼默認設置不同,Mac 可能使用 UTF-8,而 Windows 上的 Excel 通常預設使用 ANSI 或其他編碼方式來讀取 CSV 檔案。
     Like  Bookmark
  • 前言 :::info 再上一篇文章中,我們大致了解了 Docker,也成功建立了一個 MySQL 容器,大家應該對 Dockerfile、container、image 有一點概念了。如果還是不太懂,可以多多爬文,一開始接觸有個撞牆期很正常,建議實作可以比較快熟悉上手。 今天主要會簡單介紹 Volume 和簡單的實作。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: Docker Volume 是什麼?
     Like  Bookmark
  • 前言 :::info 這篇文章的主要目標是定期在本地 Windows 主機備份雲端 Linux Server 上的專案、SQL 檔案和 Docker Volume 資料夾。在這過程中,我們將會使用一個名為 rclone 的工具,該工具能夠實現數據同步和轉移的功能。透過 rclone,我們能夠有效地將本地和雲端的資料同步,從而保證資料的安全性和可靠性。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: Rclone 簡單介紹
     Like  Bookmark
  • 前言 :::info 再上一篇文章中,我們大致了解了 Docker,也成功建立了一個 MySQL 容器,大家應該對 Dockerfile、container、image 有一點概念了。如果還是不太懂,可以多多爬文,一開始接觸有個撞牆期很正常,建議實作可以比較快熟悉上手。 今天主要會簡單介紹 Volume 和簡單的實作。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: Docker Volume 是什麼?
     Like  Bookmark
  • 前言 :::info 這篇文章主要分享了為了實現異地備份資料庫而進行的一些設定和實作步驟。文中分享的設定檔,需要根據特定需求進行調整。 因為這個伺服器具有一些特殊情況。通常情況下,一個伺服器可以運行一個 MySQL 容器來管理多個專案的資料庫。但這個伺服器的每個專案幾乎都運行著獨立的 MySQL 容器。這種情況的原因是因為這些專案都是從別的伺服器搬遷過來的,MySQL 版本不一致,因此無法共用一個容器。 文中主要會用到一個工具是 rclone,用來數據同步和轉移。 ::: :::warning
     Like  Bookmark
  • 前言 :::info 前幾天,前端同仁告訴我 API 中的 created_at 時間錯誤,時間都提早了八個小時。本來以為是小問題,但後來發現事情不簡單。所以今天來分享一下,我這次遇到的 Laravel 資料時區問題。 ::: 事情經過 如果想跳過直接看解法可以往下滑到解決方法。 檢查資料庫
     Like 1 Bookmark
  • 前言 :::info 因為小弟剛接觸 Docker 時,也撞牆了很久,看了很多文章也還是似懂非懂。直到實在操作過幾次後,才慢慢越來越了解。所以我這邊想用超級白話的方式來說明 Docker 可以帶給我們什麼便利。這邊的介紹不講細節,也可能沒有很嚴謹,主要目的是想給完全沒有碰過的人一個很簡單的概念。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: Docker 是什麼?
     Like  Bookmark
  • 前言 :::info 接下來的主題 <從零開始:在 Ubuntu 伺服器上部署專案>,會有一個很明確的目標,就是在伺服器上建立兩個有獨立網域的專案。實際專案內容不重要,主要是想分享架設過程中會用到的一些技術。 會用到 Docker-compose 建立容器來部署我們的專案,並使用 Nginx 來做反向代理和設定 SSL。如果還有餘力,後續也會分享如何使用 Github Action 來建立一套簡易的 CI/CD 流程,方便日後部署。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS :::
     Like  Bookmark
  • 前言 :::info 之前公司的伺服器都是用圖形化介面,為了怕未來會太依賴圖形化介面,所以租了一台 VPS 來架設。這系列會持續更新一些有關 Ubuntu Server 架設相關的文章。應該都是新手向,畢竟小弟也不是什麼高手。 ::: 系列文章 自建網頁伺服器的簡易心得系列文(一) - 三個提升Server安全性的設定之防火牆篇 自建網頁伺服器的簡易心得系列文(二) - 三個提升Server安全性的設定之Fail2ban篇
     Like  Bookmark
  • 前言 :::info 這次要介紹的是我的主管分享給我的一個系統安全性的概念。就是標題說的,禁止在登入 SSH 時使用 root 使用者。通常我們會使用一個普通權限的使用者登入,如果有需要再切換成 root 使用者來操作需要權限的指令。這篇會介紹這樣做的原因,以及如何去設定,最後再提到一些要注意的地方。 ::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: 禁止 root 使用者原因
     Like  Bookmark
  • 前言 :::info 即使已經使用防火牆,為什麼還需要 Fail2ban 呢?因為通常會開放一些埠號,如 SSH,以供外部使用。因此,日誌中會記錄到一些嘗試暴力破解的行為。在這種情況下,Fail2ban 可以分析日誌信息,根據設置的規則來封鎖這些惡意登錄者的 IP 地址。這樣可以進一步提高伺服器的安全性。不過,需要注意設置規則時要小心,有時候甚至可能因為自己輸錯密碼而把自己的 IP 地址鎖在小黑屋裡。::: :::warning Server Linux 版本: Ubuntu 22.04.3 LTS ::: Fail2ban 簡單介紹 Fail2ban 是一種用於防範惡意登入嘗試和拒絕服務攻擊的工具,它可以監視系統日誌文件,並在偵測到惡意行為後採取自動化措施來保護伺服器。
     Like  Bookmark
  • 前言 :::info 根據小弟的經驗,如果伺服器開放了對外的埠口,很容易在日誌中看到大量的機器人和爬蟲嘗試登入資料庫或 SSH。這些登入嘗試的頻率之高,即使沒有暴力破解成功,也會讓人感到困擾。因此,使用防火牆來設定規則,並謹慎地決定是否真的需要對外開放埠口,是保護資訊安全的第一步。 ::: 防火牆基本安裝&設定指南 安裝防火牆 (UFW),保護好 Server 的 port 安裝指令sudo apt update sudo apt install ufw+ :::success
     Like  Bookmark