3月 02, 2020

Debian 安裝 nginx 與 PHP-FPM

安裝套件(有關 PHP-FPM 說明)
# apt install nginx php-fpm php-mysql
# apt install mysql-server
修改配置檔 /etc/nginx/sites-enabled/default
# SSL configuration
listen 443 ssl default_server;
ssl_certificate         /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/domain.com/chain.pem;
include snippets/ssl.conf;

# With php-fpm (or other unix sockets):
location ~ \.php$ {
  fastcgi_pass unix:/run/php/php7.3-fpm.sock;
  include         fastcgi_params;
  fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
  fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;        
}

11月 09, 2019

HTC U11 手機維修記

第一次碰到手機完全打不開,充電也沒用的狀況。趕時間只能送去外廠修...大概一個小時就處理好了,只不過代價就是有點貴,尤其在知道電池的成本後。

4月 07, 2019

Pentium G5400 ASUS PRIME H310M-K R2.0

再組一台長輩機,近期固態硬碟(SSD)價格大跳水,可能再過一年容量就會逼近傳統硬碟了。
傳統硬碟 1TB 目前大約是 $1300 左右,固態硬碟價格則是 240G($1000)、480G($1700)。
  • Intel Pentium G5400 , $2150
  • 華碩 PRIME H310M-K R2.0 (裝機版四年保) , $1990
  • 金士頓 UV500 120G (TLC顆粒/五年保) , $750
  • 威剛 8G DDR4-2666 , $1250
  • 全漢 聖武士350W (全日系DC-DC/五年保) , $990
  • Fractal Design the Core 1100 , $990
Total = $8,120



同場加映...友人委託的另台電腦
  • Intel Core i3-8100 , $4300
  • 技嘉 B360M DS3H (四年保) , $2750
  • 金士頓 UV500 240G (TLC顆粒/五年保) , $1130
  • Toshiba 1TB , $1190
  • 威剛 8G DDR4-2666 , $1250
  • 全漢 聖武士350W (全日系DC-DC/五年保) , $990
  • Fractal Design the Core 1100 , $990
Total = $11,850 (CPU+板子優惠$6300)



最後總結,這次選的機殼非常好,不論質感跟空間運用都極其恰當,對於只有簡單需求的使用者「一張小板mATX + 3.5吋硬碟 + 2.5吋SSD」都能塞的下。

12月 12, 2018

Node.js on macOS

Node.js 官網的安裝檔(10.14 LTS)會新增下列資料:
  • /usr/local/bin/{node, npm, npx}
  • /usr/local/lib/node_modules
  • /usr/local/include/node
反安裝方式可參考 stackoverflow 這篇文章

9月 12, 2018

快速轉移 Fortigate 防火牆設定檔

原始設備:FortiGate FG-300C、目標設備:FortiGate FG-60D

防火牆介面「管理模式」分為兩類:

Switch Mode(單一規則管理所有連接埠)
In this mode, all ports are grouped to a single switch, represented as "internal"
Interface Mode(各連接埠規則皆獨立)
In this mode, each port is independent and is represented as port1 through port7.
在較小型號的 FortiGate 上,連接埠命名預設是 WAN/DMZ/Internal,系統預設所有的 Internal Ports 皆套用到同一組 Policy;大一點型號的 Fortigate 則將連接埠直接命名為 Port1~portN。

想把設定值硬套過來,要先改變 Port 的對映方式,例如 (Port1, WAN1)、(Port5, Internal2)




9月 07, 2018

2018 Essilor 新眼鏡


  • 2018-09-07 / $5500
  • 依視路 鑽潔®E-SPF濾藍光鏡片(A4鍍膜)

8月 21, 2018

[PL2303] 在 macOS 下連線路網路設備(USB to RS232)

PL2303 安裝驅動後,在 macOS 終端機直接用 screen 指令即可透過 RS232 連接設備:

screen /dev/tty.usbserial 9600

5月 22, 2018

使用 PHP 整合 Windows Active Directory(AD) 進行身份認證

首先安裝 PHP-LDAP 套件:
# apt-get install php-ldap

之後是示範程式碼:
<?php
  $ADserver = "xx.xx.xx.xx";
  $domain   = "example.com.tw";
  $baseDN   = "dc=example,dc=com,dc=tw";
            
  $user     = 'Jack';
  $pass     = 'Password_here';  
  
  /* Format should like Jack@example.com.tw */
  $ldapDN   = $user . '@' . $domain;
  
  $ldapConn = ldap_connect( $ADserver ) or die("Connect fail");
  
  /* IMPORTANT */
  ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
  ldap_set_option($ldapConn, LDAP_OPT_REFERRALS, 0);

  if ($ldapConn) 
  { 
    $ldapbind = ldap_bind($ldapConn, $ldapDN, $pass);   
    if ($ldapbind) 
    {
      $filter = "(sAMAccountName=$user)";
      $result = @ldap_search($ldapConn, $baseDN, $filter);
      
      if($result == false) 
      {
        /* empty search result */
      }
      else
      {
        $row       = ldap_get_entries( $ldapConn, $result );   
        $loginName = $row[0]['displayname'][0];     // display name
        $loginID   = $row[0]['samaccountname'][0];  // AD account
      }    
    } 
    else 
    {         
      die("User,Pass do not match");
    } 
  }
  ldap_close($ldapConn);  
?>

1月 17, 2018

使用 PHP 連接 Microsoft SQL Server 資料庫

依不同的 PHP 版本而定...

PHP 5.x

上古時代想連接 SQL Server 則要透過 FreeTDS 開源套件,說明如下:
FreeTDS is a set of libraries for Unix and Linux that allows your programs to natively talk to Microsoft SQL Server and Sybase databases.
; 安裝所需套件
# apt-get install freetds-common freetds-bin unixodbc php5-sybase

其中 php5-sybase 就包括 mssql.so 函式庫,所以基本上一行指令可以搞定所有事;之後更改 FreeTDS 相關參數(TDS連線協定版本)與連線編碼(UTF8支援中文字):

設定 /etc/freetds/freetds.conf:
[global]
# TDS protocol version
tds version = 8.0
client charset = UTF-8

連線測試可用下列指令:
tsql -S DBserver -p 1433 -U dbadmin -P dbpass
1> SELECT  @@servername
2> GO
3> SELECT @@servicename
4> GO

在 PHP 程式中使用下列指令進行連線/查詢 (PHP7中捨棄):
  • mssql_connect()
  • mssql_query()
  • mssql_fetch_array()

 PHP 7.x

微軟針對這個PHP版本所開發延伸套件:Microsoft Drivers for PHP for SQL Server(專案網址)
; 在 /etc/apt/sources.list 加入 APT 套件庫
deb https://packages.microsoft.com/debian/8/prod jessie main

; 安裝套件
# apt-get install php-pear msodbcsql mssql-tools unixodbc-dev
# pecl install sqlsrv
# pecl install pdo_sqlsrv

; 掛載函式庫
extension=sqlsrv.so
extension=pdo_sqlsrv.so

在 PHP 程式中使用下列指令進行連線/查詢:
  • sqlsrv_connect()
  • sqlsrv_query()
  • sqlsrv_fetch_array()

12月 22, 2017

長輩組8.5K主機:Pentium G4400 華碩 H110M-K

傳說中的長輩機,用過固態硬碟(SSD)就回不去了,所以這次試試美光的產品!
  • Intel Pentium G4400 , $1630
  • 華碩 H110M-K (裝機版四年保) , $1890
  • 美光 BX300 120G (MLC顆粒/三年保) , $1550
  • 美光 4G DDR4-2400 , $1250
  • 全漢 聖武士350W (全日系DC-DC/五年保) , $990
  • 酷碼 RC-343 , $1350
Total = $8,500

[重要]
Skylake 晶片組(H110/B150等)起,由於 USB 控制器從 EHCI 改為新一代 xHCI 之故, 造成 Windows 7 無法經由隨身碟安裝,若想循原有模式進行則需要一些改裝:
  1. 將 Windows 7 ISO 檔轉入隨身碟
  2. 透過技嘉 Windows USB Installation Tool 封裝「驅動程式」至隨身碟
  3. 開始系統安裝

12月 12, 2017

使用 C# 透過 Active Directory 驗證使用者

using System.DirectoryServices; 

static void Main(string[] args)
{
    string Username = "0MXXX";
    string Password = "AbXXX";
    DirectoryEntry entry = new DirectoryEntry("ADserver.domain.com.tw");
    entry.Path = "LDAP://DC=domain,DC=com,DC=tw";
    DirectorySearcher search = new DirectorySearcher(entry);

    /* Must using 'SAMAccountName' here */
    search.Filter = "(&(SAMAccountName=" + Username + "))";

    SearchResult result = search.FindOne();    
    string DisplayName = (String)result.Properties["displayname"][0];
    System.Console.WriteLine(DisplayName);
}
記得透過 DirectorySearcher.Filter 指定搜尋 SAMAccountName 鍵值;回傳的結果陣列中 displayname 則是使用者登入 AD 後顯示名稱。

10月 16, 2017

新增 Windows 系統服務(Service)

建立 Windows 系統服務的方法:

1. 使用內建 sc 指令
sc.exe create <service_name> binPath= "<path_for_service_executable>"
說明:binPath= 後面要空一格,並且使用雙引號把路徑包起來。
2. 使用工具軟體 NSSM 新增服務,這個好像蠻多人推薦的。

9月 01, 2017

MacBookPro 2017(256G SSD, 8G RAM)

先貼一下規格,再談購買流程(教育優惠)。這次從 Apple Store 網站上訂的是「沒有」Touch Bar 版本的 Macbook Pro,如果以過去使用 Windows 筆記型電腦的角度來看,蘋果產品的定價當然只有一個字貴,但有鑑於每個用過 Mac 的人都說多好多神。
  • Intel Core i5 Kaby Lake 2.3 GHz 雙核心 (7360U)
  • 8GB 2133MHz LPDDR3
  • 256GB SSD 儲存裝置
  • 美式鍵盤
  • Intel Iris Plus Graphics 640
目前 MacBook Pro 屬第四代產品於2016年10月發表,主推 Touch Bar 功能,上一代是主打 Retina 顯示器。於2017年6月進行小改版,將處理器由第六代(Skylake)升級為第七代(Kaby Lake),變更幅度不大,外觀仍維持原有設計。

今年 Apple 在臺灣有不少變革,除了開設第一家直營店,還在網路商店增加了美式鍵盤的配置選項,對於獨鐘簡潔鍵盤的使用者,再也不用跑個老遠出國扛電腦或找人代購。九月正好搭上 Back to School(BTS)教育優惠專案,買電腦就送一副 Beats Solo3 Wireless 耳機,這件事又推了敗家之路一把😂,專案適用的身份之一是這樣:
如果您是教職員工,請提供下列任一文件的掃描檔
  • 教職員識別證(正面、背面)
  • 聘書
  • 推薦函
所以在校的行政人員也能享有優惠, 下訂前問了網路客服兩次有關識別證與付款者認定問題「若識別證持有人為A、付款人為B,可否?」答覆皆不同:
  • 客服1:識別證持有人A,付款人或收貨人其中一者為A即可
  • 客服2:識別證持有人、付款者需為同一人才算符合
感覺得出來審核規則保有部份彈性,因此決定先試客服1提供的資訊,反正資格不符會退刷費用。


然後覺得有點貴不想買的 AppleCare 保固,最後還是掏錢了: