關於網路那些事...

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

如何將主 DNS子網域point到另一個網域子資料夾

設定主網域指向 B 網域

在主網域的 DNS A-record ( 如果用 IPv6 則設定 AAAA-record ) 指向到另一個網域的IP

注意,DNS 只能指向 IP ,無法指向該IP的子資料夾

另一個網域的主伺服器設定請求轉導

當主 DNS point 到另一個子網域後,另一個子網域本身應該要 point 到一台主機

則需要在這一台主機進行設定 Virtual hosting

來對於子網域的 redirect/equate 指向子資料夾的部分,

例如,由 subdoname.A.com 請求過來時,會透過這個方式: ${DocumentRoot of B.com}/folder ,會提供 folder 內容

https://vlemon.com/blog/google-cloud-platform/how-to-create-sub-domain-in-google-cloud-compute-engine/

Continue Reading

MAC 無法使用 git 狀況排解:xcrun: error: invalid active developer path...missing xcrun at:

在Mac 更新 cli 後發生 git 無法適用的情況

錯誤訊息:

git ixcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

解決方式:

輸入下方指令,安裝完成即可解決

xcode-select --install

Continue Reading

l5-repository Presenter 上手2

Presenter

前面提到,在 l5-repository 有兩種方式可以實作 Presenter

第一種,可以直接建立 Transformrer 並且設定他來操作 Presenter class 第二種,可以直接在 model 實作 Transform 的 interface,並且 use 預設的 Presenter ModelFractarPresenter,也能達到同樣的效果

開始使用 Presenter 之前,必須 Requires Fractal

Continue Reading

l5-repository 上手

安裝

composer require prettus/l5-repository

設定 ServiceProvider

如果是 >= laravel5.5 ,ServiceProvider 會自動設定好

其他版本

要在 config/app.php 增加

'providers' => [
    ...
    Prettus\Repository\Providers\RepositoryServiceProvider::class,
],

發布設定

設定完成多出一個設定檔: /config/repository.php

php artisan vendor:publish --provider "Prettus\Repository\Providers\RepositoryServiceProvider"

Continue Reading

DNS Resource Record (RR)

DNS Server

負責處理 DNS 相關服務

Zone File

每一個域名都會有相對應的檔案,稱為區域檔案(Zone File),每一個 Zone File 都可以各自設定類型(Resource Record, RR),底下則介紹一些 RR 及相關用法

SOA - Start Of Authority

在 zone file 一開始會進行 SOA 定義,

在 SOA 描述 name server, version … 等,並且指定要授權的主機及管理者信箱

Continue Reading

gcloud SDK 安裝及建立 google repository

下載 gcp sdk

https://cloud.google.com/sdk/docs/

下載 macOS 64 位元 (x86_64)

Continue Reading

Git flow 簡記

Git flow 是一個 Git 開發分枝開發流程的建議

演化至今,各官方也陸續依照相關建議提出自家的開發流程,如 GitHub Flow、Gitlab Flow

根據 Git flow 建議,可以將分枝區分為以下幾種

Continue Reading

Git 提交訊息樣式建議

Git 官方建議的提交訊息樣式,可以讓提交訊息更加容易理解及管理

原則上,可以將訊息分成三種型態

  • 類型:標題
  • 內容
  • 註解

類別

首先,在 commit 標題之前,建議要先清楚定義類別,定義方式有以下建議:

Continue Reading

Linux 命令-小記

簡單紀錄,需要用的一些指令

取得 linux 版本

查看核心 linux 版本,如果是 CentOS ,會看到 Red Hat 相關資訊,因為 CentOS 是基於 RH

cat /proc/version

Continue Reading

Lumen 擴充 generator

Lumen 主旨在建立一個快速微服務框架

在預設的功能中,僅保留少數 laravel 原生功能項目

舉例來說,Lumen 不提供 artisan make:controller

因此,在建立 controller 時候需要手動方式生成

在 controller 裏已經有準備好 controller.php 讓你方便複製

這裡則是要介紹,如何透過擴充 lumen generator ,將 laravel 多數 command 能在 lumen 中使用

Continue Reading

GCP 建立 SSH 連線登入VM方式

進入 GCP dashboard

查看VM

右邊選單> Compute Engine

這裡面會列出 VM 執行個體

Continue Reading

Mac $PATH 環境變量設置及查詢

將 installer 變數放在 PATH 環境變數中

就能讓我們直接在 bash 直接下達 installer 的指令

這裏介紹 Mac PATH 環境變數的設置方式

Continue Reading

Laravel npm install dev 出現 cross-env 錯誤解法

在使用 Laravel 裡面的 Vue Components 時,會需要使用到編譯 vue js 的功能

例如,修改 ExampleComponent.vue 之後,要執行以下語法才會將修改編譯到 app.js

npm run dev

Laravel 在 mac 或 linux 環境下,可能會出現 cross-env 相關錯誤訊息

Continue Reading

Supervisor 介紹與使用方式

Supervisor 是由 python 所寫的一套進程管理系統,可以監控指定的程式,當程式崩潰停止執行時,將程式重啟

Supervisor 有分成 (1) server 主程式 與 (2) client process

(1) server 主程式: 是由 supervisor 執行 supervisor.conf 設定檔所啟動

(2) client process: 則由 supervisorctl 來控制 process

在運行過程,是以C/S模式來運行,也就是由 client process (supervisorctl) 將守護進程的訊息傳送給 server 主程式(supervisord),開始啟用守護進程服務。

一般操作設定 supervisor 都會建議在 root 權限下進行,

Continue Reading

Vim 常用指令

Vim 常用指令

底下列出一些常用的 Vim 指令

Continue Reading

DNS TTL 選擇時間長短 ,差別在哪

在設定 DNS 時,選完類型 (A、CNAME、MX…)、主機名稱 (@、subdomainname、service..)、指向(@、IP或網域)

接下來就會看到 TTL 包含了 1/2小時、1小時、12小時、1天、1周…

接下來會說明 TTL 是甚麼? 以及DNS TTL 選擇時間長短 ,差別在哪

TTL ( Time to Live, 存留時間) 是用來記錄 DNS 有效時間的參數值

Continue Reading

Heroku ClearDB database (MySQL) 連線方式 (sequel pro) 筆記

Heroku 的 Add on 擴充功能,提供了資料庫的項目

在 MySQL 會選擇 “ClearDB MySQL :: Database” 這個 AddOn

這項服務是免費的,但是必須要先填寫信用卡資料,才能完成啟用

啟用後,就能在 local cli 登入 heroku

接著執行

heroku config | grep CLEARDB_DATABASE_URL

或者

Continue Reading

Swoole 與傳統 PHP-FPM 差異

在swoole 官方介紹到運作原理時,就有針對 swoole 運作方式與 PHP-FPM 的差異進行比較

傳統 PHP-FPM 是基於 PHP Server 來解析

而 Swoole 則是用 C 所編譯的 PHP 擴充,可以直接透過 CLI mode 與 server 溝通

這一點差異就讓 swoole 能做到傳統 php model 無法達成的事情

讓 PHP 開發者可寫出高效能、可拓展的程式

並且可以直接設計 no-blocking I/O 程式,以及與底層 linux kernel 溝通

其中包括幾點:

  • swoole 可以充分運用 CPU 核心資源,用來分配 worker 任務
  • swoole 可以直接支援 websocker server 與 TCP/UDP server 長連結
  • 可以直接與多種 server-side 協定進行溝通
  • 可以直接管理及重複使用 memory 中的狀態

Continue Reading

閒聊 FastCGI 與 PHP-FPM

閒聊 FastCGI 與 PHP-FPM

在這裡記錄一下 FastCGI 與 PHP-FPM 的關係

關於 FastCGI

FastCGI 是一個協定,從字面上其實就能看到 Fast + CGI,意思就是加速CGI

CGI 是一個協定,在webserver接收到請求時,會跟請求內容進行對應處理,再返回對應文件給瀏覽器

Continue Reading

netstat 指令小記

在 Linux 建構服務時,通常遇到問題除了查詢log 之外,大多數還會確認連線是否正常,port是否有打通之類

Linux 命令列的 netstat 可以查詢到各種網路相關訊息

當我們要檢測 socket、TCP、UDP、IP、ethernet等各種連線,都可以用它來查詢

支援一般權限,以及 IPv4, IPv6

這裡筆記方式記錄一些用法

搭配 watch 監控現有連線

watch -d -n0 "netstat | grep ESTABLISHED"

以下可能是 CentOS的環境使用:

列出完整的 URL 位址

netstat -tup -W

這個指令可以將所有連線的 IP 位址列出來,並依照每個 IP 位址的連線數排序

netstat -an | grep ESTABLISHED | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr

用 awk 分析連線 這個指令可以分析 Apache 的連線,列出每個 IP 位址的連線數

sudo netstat -anpt | grep http | grep ESTABLISHED | awk -F "[ :]*" '{print $4}' | uniq -c

這個指令可以將所有連線的 IP 位址列出來,並依照每個 IP 位址的連線數排序.

Continue Reading