關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

什麼是繼承抽象 Abstract

Abstract 可以用來定義 Abstract 類、一般方法名稱及參數,Abstract 方法。

一般的方法可以實作邏輯。

如果是 Abstract 方法,則僅作描述,不實作邏輯。邏輯會保留到某個類別繼承(extends)時,來實作(強制)。

透過抽象,可以讓我們定義好規則以及實作一些方法,讓其他類別擴充時,可遵照規則實作,以及直接可使用這些方法。

Continue Reading

Mac 強制移除本地 mysql 佔用 3306,解決無法 kill 3306 process 問題

在本地預計使用docker 建構 mysql ,卻發現 3306 port 被佔用的情況。

這時,透過 刪除指定進程方式,來移除佔用 3306 port 的 process

先將 3306 process 找出,並且移除

Continue Reading

解決,請求過大導致 The request record is too big

解決,請求過大導致 The request record is too big

Nignx & PHP-FPM 架構中,發送單一請求若header傳輸量過大,就會爆出 request record is too big 的錯誤,

可以檢查是否直接透過http params 方式來夾帶參數

當參數過大,就會導致內容無法送達而爆出錯誤。

Continue Reading

Guzzle PUT 傳輸參數方式說明

Guzzle PUT 數據方式說明

使用 Guzzle

使用 Guzzle 只能透過 POST 方式來傳遞 application/x-www-form-urlencoded form params

( 官方原文:form_params - Used to send an application/x-www-form-urlencoded POST request. )

若使用 PUT, DELTE 則需要改用 body 或者 json 格式傳輸,例如:

Continue Reading

npm install -g 後出現 command not found 解決方式

npm install -g 後出現 command not found 解決方式

這裏說明 npm global 安裝完畢出現 command not found 解決方式,以 vue-cli 安裝為例

安裝 vue-cli 流程發生無法從環境變數中直接使用 vue 指令,出現 command not found 或者 sh: vue-cli-service: command not found 該如何解決:

在新主機安裝 vue-cli 之後

npm install -g @vue/cli

在執行版版檢查時,發生 vue: command not found

# vue --version
-ash: vue: command not found

解決這問題的方式如下:

Continue Reading

IP掩碼 32,24,16,8 意思及 Nginx 設定限制IP 僅開放特定IP及允許內部網路訪問

Nginx 設定限制IP 僅開放特定IP及允許內部網路訪問

僅開放公司IP或內部IP訪問,常見設定如下:

Continue Reading

AWS 增加 Volumes 容量後,磁碟進行擴容方式

AWS 增加 Volumes 容量後,磁碟進行擴容方式

當 Volumes 容量不足時,可以直接在 Volumes 容量,

調整容量後,實際容量還不會增加,這時還必須再進行系統指令進行擴容

這裡分別說明針對分割區 及 檔案系統 進行擴容的方式:

提醒,再增加容量前,建議先建立快照

確認磁碟類型

在開始前,先透過 lsblk查看目前磁碟區,以及確認你要擴充的磁碟

接著檢查你磁碟的類型,例如:

sudo file -s /dev/xvda

接著,請針對磁碟的類型,進行對應的擴容方式

以下說明三種類型的擴充方法:

Continue Reading

HTST 強制安全傳輸技術介紹

HTST 強制安全傳輸技術介紹

HTTPS 超文本傳輸安全協定(HyperText Transfer Protocol Secure)是一種讓HTTP傳輸過程可透過 SSL/TLS 來對封包進行加密的安全傳輸協定,預設使用的是 443 port。

也就是在不安全的傳輸,額外建立安全機制。

在敏感及機密性的網路傳輸,都必須使用 HTTPS 避免身份及隱私被劫持。

Continue Reading

Linux - 一次修改 所有資料夾權限 755 及檔案權限 644

在 Linux 維護專案時,有時遇到檔案權限問題,這裡說明如何一次處理的方式 例如,要將 /var/www/ 底下所有檔案及資料夾進行權限變更,作法如下: 一次修改資料夾權限為 755 find /var/www/ -type d -exec chmod 2775 {} \; 一次修改檔案權限為 644 find /var/www/ -type f -exec chmod 0664 {} \;

Continue Reading

介面 Interface

Interface Interface 類別主要用於定義一些關鍵字及 public 的抽象方法,不需要定義方法的 body 及參數。 <?php interface Logger{ public function excute(); } 首先,針對未使用 Interface 的情況進行說明, 如果在大型專案只有使用 Class,例如以下範例,當我們要切換不同的 Log 方式時,就要透過手動方式在多處 constructor 處進行 hard-coded 變更,例如 <?php class LogToDatabase { public function execute($message) { var_dump('log the message to a database :'.

Continue Reading

Synology NAS 架站:如何設定 proxy 將對外 80 port 轉導到指定 Docker 服務

Synology NAS 設定 proxy 將對外 80 port 轉導到指定 Docker 服務

在 NAS 建立對外網站,通常會使用 proxy 方式來做轉導

本篇會預設你已經對於 Docker, NAS 有基礎的了解,並且知道如何在 NAS 新增 Docker 服務,以及設定網域指向的知識。

Continue Reading

Synology NAS 變更 預設 80 port 的方式

Synology NAS 變更 預設 80 port 的方式 Synology NAS 預設都會使用 80 port,且會轉導到 500x port 這裡將說明如何變更 80 port 。 變更 Synology 預設 80 port 的方式很簡單 首先 ssh 登入到 NAS 接著,修改 nginx 設定

Continue Reading

[解決] GitLab 強制 push 到 master 出現錯誤 You are not allowed to force push...

[解決] GitLab 強制 push 到 master 出現錯誤 You are not allowed to force push…

在 GitLab 強制 push 到 master 時,

git push -f origin master

出現錯誤訊息:

remote: GitLab: You are not allowed to force push code to a protected branch on this project.

Continue Reading

Laravel 6.5 版本發佈功能

Laravel 6.5 版本發佈功能 LazyCollection LazyCollection 可以調用 Memy() ,能記取計算過的值,在運算大數據過程,能避免大量消耗內存的狀況。 範例: <?php ... $users = User::cursor()->remember(); // No query has been executed yet. $users->take(5)->all(); // The query has been executed, and the first 5 users have been streamed from the DB.

Continue Reading

CentOS 設置靜態IP 方法

CentOS 預設是使用 DHCP 自動取得IP,因此IP位置會浮動,在假設主機來說,不太適合。

這裡說明如何將 IP 位置設定為靜態固定 IP :

Continue Reading

Vue - VSCode 基本配置 ESLine & Prettier 代碼自動風格化

Vue - VSCode 基本配置 ESLine & Prettier 代碼自動風格化

這裡記錄 Vue 初始設定會用到的一些基本設定

包括語法亮潔以及代碼自動風格化設定.

另外會提到如何在 VSCode settings.json 設定儲存自動將語法進行整理,風格化

Continue Reading

Terminal 複製 貼上 past 會出現 "00~" "01~" 或 "0~" "1~" 解決方式

在Terminal 使用vim 之後,若出現複製貼上會出現 00~, 01~ 或 0~, 1~ 原因可能是你的Terminal 正處於bracketed黏貼模式( bracketed paste mode) 在一些尚未更新或較為老舊的terminal可能會出現00~ 01~ 的字段 解決方式是直接透過以下語法將 bracketed paste mode 關閉 printf "\e[?2004l"

Continue Reading

ElasticSearch 入門 - 功能及操作說明

ElasticSearch 入門 - 功能及操作說明

ElasticSearch 可以把數據透過 Index 索引的方式來儲存。

通常,一台機器可以運行多個 ElasticSearch,每一個都視為一個節點(Node)。

在 ElasticSearch 主要結構與關聯資料庫做對比的話,關係大致如下:

ElasticSearch 關聯資料庫
索引(Index) 資料庫(Database)
類型(Type) 資料表(Table)
文檔(Document) 數據行紀錄(Row)
域(Field) 數據列(Column)
參數映射(Mapping) 模式(Schema)

Continue Reading

Laradock 本地 local 環境新增 SSL Keygen 方式,及設定 Nginx 支援 Https

Laradock 本地 local 環境新增 SSL Keygen 方式,及設定 Nginx 支援 Https

在內部測試機測試瀏覽器錄音功能需要用到 Https,在這裡記錄如何在 localhost 環境安裝憑證及設定 https

Continue Reading

解決 GCP storage 取得資料發生 blocked by CORS policy

解決 GCP storage 取得資料發生 blocked by CORS policy

透過 GCP Storage 儲存檔案,在前端呈現時出現了 CORS 問題

錯誤訊息: Access to fetch at url from origin url has been blocked by CORS policy: NO ‘Access-Control-Allow-Origin’ header is present on the requested resource. …

原因是在於,GCP Storage 為了預防惡意取用而預設不開啟。

這裡紀錄如何透過 Gsutil 開啟 GCP storage 跨域請求

Continue Reading