關於網路那些事...

網路行銷,SEO,網路趨勢,教學文章,網頁設計,生活時事

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

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

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

先將 3306 process 找出,並且移除


最後,如果你喜歡這篇文章,請幫忙點個讚



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

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

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

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

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


最後,如果你喜歡這篇文章,請幫忙點個讚



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 格式傳輸,例如:


最後,如果你喜歡這篇文章,請幫忙點個讚



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

解決這問題的方式如下:


最後,如果你喜歡這篇文章,請幫忙點個讚



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

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

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


最後,如果你喜歡這篇文章,請幫忙點個讚



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

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

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

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

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

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

確認磁碟類型

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

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

sudo file -s /dev/xvda

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

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


最後,如果你喜歡這篇文章,請幫忙點個讚



HTST 強制安全傳輸技術介紹

HTST 強制安全傳輸技術介紹

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

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

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


最後,如果你喜歡這篇文章,請幫忙點個讚



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

在 Linux 維護專案時,有時遇到檔案權限問題,這裡說明如何一次處理的方式

例如,要將 /var/www/ 底下所有檔案及資料夾進行權限變更,作法如下:

一次修改資料夾權限為 755

find /var/www/ -type d -exec chmod 2775 {} \;

一次修改檔案權限為 644

find /var/www/ -type f -exec chmod 0664 {} \;

最後,如果你喜歡這篇文章,請幫忙點個讚



介面 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 :'.$message);
    }
}

class LogToFile {
    public function execute($message)
    {
        var_dump('log the message to a file :'.$message);
    }
}

class UsersController { 
    protected $logger;
    
    public function __construct(LogToFile $logger)
    {
        $this->logger = $logger;
    }
    
    public function show()
    { 
        $user = 'nahid';
        $this->logger->execute($user);
    }
}

$controller = new UsersController(new LogToFile);
$controller->show();

例如,目前在 UsersController 使用 LogToFile,

<?php
public function __construct(LogToFile $logger)

要手動改成

<?php
public function __construct(LogToDatabase $logger)

使用 Interface 則可以統一界定一個格式,在 constructor 只需要注入 Interface 即可。
我們只需要在 new 來統一做設定。

<?php

interface Logger 
{
    public function execute($message);
}

class LogToDatabase implements Logger 
{
    public function execute($message){
        var_dump('log the message to a database :'.$message);
    }
}

class LogToFile implements Logger 
{
    public function execute($message) 
    {
        var_dump('log the message to a file :'.$message);
    }
}

class UsersController 
{
    protected $logger;
    
    public function __construct(Logger $logger) 
    {
        $this->logger = $logger;
    }
    
    public function show() 
    {
        $user = 'nahid';
        $this->logger->execute($user);
    }
}

$controller = new UsersController(new LogToDatabase);
$controller->show();

參考: https://medium.com/better-programming/understanding-use-of-interface-and-abstract-class-9a82f5f15837
https://www.w3schools.com/php/php_oop_classes_abstract.asp


最後,如果你喜歡這篇文章,請幫忙點個讚



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

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

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

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


最後,如果你喜歡這篇文章,請幫忙點個讚