2017年3月6日 星期一

如何設定 nginx 或 php-fpm 這類網站 daemon 的環境變數?

    一般網站應用程式若需要執行 cron job,通常都是使用 Web daemon user 身份(例如:CentOS下的 apache、nginx,Debian下的 www-data)來執行,比較常遇到的問題通常是程式執行中產生的目錄、檔案權限問題。

    Linux 系統下控制 user 預設建立檔案、目錄權限的設定,全域設定在 /etc/bashrc 或 /etc/profile,直接將 umask 修改為你想要的數字即可,例如:一般預設值是 umask 022,所以遮罩後檔案就會是 644,而目錄就是 755,因此當我們想要讓 group 可以寫入,就要將 umask 設為 002。

2016年7月5日 星期二

如何產生 Elliptic Curve 數位憑證

  一般我們申請網站 HTTPS 數位憑證,最常見的公鑰加密演算法大多是 RSA 2048bit,最近公司的網站想做全網 HTTPS 加密 (由於 Google 強力推薦,未來的 HTTP/2 也是建構在 HTTPS 上),於是很好奇想看看那個早就全網 HTTPS 的 Facebook 臉書,到底是申請哪一家的憑證。

  於是開啟 Chrome 的開發人員工具  >  Security >  View Certificate,發現 Facebook 的加密演算法是「橢圓曲線加密法」ANSI X9.62 橢圓曲線 prime256v1 ,還真是與眾不同啊。


2015年12月15日 星期二

Solr 5.x 簡易建置手冊

A. 系統及軟體規格

  • 主機(VM)規格

   CPU:2 Core 以上(建議最少 2GHz)
   RAM:4GB 以上(建議 8GB)
   HDD:30GB 以上(視 Solr Core 數多寡,單一Core約佔用250MB~300MB)

  • 系統規格

   RedHat Enterprise Linux 6.5 (CentOS Linux 6.5) 以上, x86_64

  • 軟體規格

   Java:Oracle JDK 1.7.0_79 x86_64 以上(建議 JDK 8),或 OpenJDK 1.7.0u55 x86_64 以上
   Tomcat:Tomcat Server 7.0.54 以上
   Solr:Solr 5.1.0 以上(建議 5.3.1 以上)
   Log4j:log4j 1.2.10 以上
   slf4j:slf4j 1.7.7 以上
   資料匯入 Driver:mysql-connector-java 5.1.32 以上(視匯入資料種類而定)
   資料匯入 dataimport:solr-dataimporthandler-<solr_version>.jar (依 solr 版本選用)
   中文分詞:mmseg4j 2.3.0 以上 ( for lucene/solr 5.x )


2015年11月18日 星期三

Mac OS X 10.10.4 更新之後已經原生支援 non-Apple SSD Trim 功能

根據 ARS 網站在 2015年6月的報導:
http://arstechnica.com/apple/2015/06/latest-os-x-update-allows-you-to-enable-trim-for-third-party-ssds/

讓 Mac 用戶煩惱許久對 non-Apple 製造的第三方 SSD Trim 支援,終於在 10.10.4 的更新中,正式獲得 Apple 官方認證了。

2015年10月19日 星期一

如何在美國以外的地區啟用 News App

升級到 iOS 9 之後,原本的「書報攤」App 被取消了,取代的是「News」App,功能跟介面與 Flipboard 類似,可惜的是目前似乎只有美國、英國、澳洲、加拿大等地可以使用

http://www.apple.com/tw/pr/library/2015/06/08Apple-Announces-News-App-for-iPhone-iPad.html

如果你想要嚐鮮一下,試試「News」App 的話,可以依照下面的設定方法開啟封印:

2015年10月5日 星期一

如何停用 OS X El Capitan 的 System Integrity Protection 功能

2015 年發表的 OS X El Capitan 使用 System Integrity Protection (簡稱 SIP)
基本上這個模式保護 /System 這個目錄無法被其它第三方軟體寫入,即使用 sudo 或 su 成 root 也不行,對一般「正常使用者」來說,算是個方便而無感的系統保護功能

但是對一些「進階使用者」,若臨時要對 /System 目錄作寫入、刪除、ln 等動作,就需要先停用 System Integrity Protection

請依下列步驟來停用 SIP
1. Mac 重新開機,按住 CMD(⌘) + R 進入 Recovery HD

2. 點選上方選單「工具」-> 「終端機」

3. 在終端機指令列輸入:
csrutil disable

這樣就是停用 SIP 模式了,接著重新開機即可

csrutil enable : 可以啟用 System Integrity Protection
csrutil status : 可以觀察目前 SIP 的狀態是啟用或是停用

如果我只是想停用部份 SIP,讓「TotalFinder」或是「XtraFinder」可以正常運作呢?

前面同樣是第 1 、 2 步驟,但在第 3 步改用下列指令:
csrutil enable --without debug

這樣就可以停用部份 SIP 功能,但是會失去完整保護的功用,請慎用

2015年10月1日 星期四

Mac OS X 10.9 Maverick 之後 (包含 10.10 Yosemite、10.11 El Capitan),建立開機 USB 碟的方法

1. 從 Mac App Store 下載 OS X 10.10 Yosemite 或 OS X 10.9 Maverick 或 OS X 10.11 El Capitan

2. 開啟 Finder  ->  應用程式  -> 工具程式  ->  終端機 ( Terminal.app),
    然後在終端機中輸入以下指令:
   (其中 /Volume/Untitle 請修改為你的 USB 碟名稱)

OS X 10.9 Maverick:
sudo /Applications/Install\ OS\ X\ Maverick.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Maverick.app --nointeraction

OS X 10.10 Yosemite:
sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction

OS X 10.11 El Capitan:
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction

2015年3月10日 星期二

Mac OS X 下的 minicom 要如何按出 meta key ?

以前常在 Linux 的 Terminal 下使用 minicom 這個小程式來操作 USB to Serial (也就是 USB to RS-232) 來連接「數據機」、Router、Switch 等網路裝置

一般 Linux 底下的 minicom 使用 control + <Fn> 來操作一些 minicom 的一些特定功能
例如 control + x 就是 hang up 並退出 minicom

2014年11月19日 星期三

Mac OS X 不斷跳出「輸入鑰匙圈密碼」對話視窗,但已遺失密碼無法取消,要如何處理?

先不要理會「輸入鑰匙圈密碼」對話視窗,依照下列步驟:
1. 開啟 Finder ,點「前往」 ->  「前往資料夾...」,輸入 "~/Library/Keychains"
2. 刪除類似以下 uuid 目錄
   rm -rf A8F5E7B8-CEC1-4479-A7DF-F23CB076C8B8
3. 重新開機後,就會請你輸入新的鑰匙圈密碼

2014年8月25日 星期一

Mac OS X 的幾個簡單網路指令用法

平常習慣在 Linux Terminal 下操作一些網路指令,可是切換到 Mac OS X 的 Terminal 下,雖然說 OS X 承襲自 BSD Unix,但一些常用的網路指令、參數卻有些差異,以下紀錄我比較常用的幾個

2014年7月23日 星期三

加快 Dock 自動隱藏時的回復速度,以及 Mission Control 的動畫速度

在 MacBook 上,為了讓 OS X 的畫面空間更大一些,有些人會在「系統偏好設定」中啟用「自動隱藏及顯示 Dock」的功能
這時候如果要讓 Dock 自動隱藏時,回復顯示的速度加快要怎麼做呢?

2014年4月8日 星期二

如何在 Mac OS X 的「簡介」(Quick Look) 選取內容來 Copy ?

OS X 的使用者應該都知道在檔案上按 Command + i 或是點右鍵 ->「簡介」來取得該檔案的一些相關資訊,例如:檔案類型、檔案大小、位置、權限等等

但是我們卻無法 "拷貝"「簡介」視窗上的那些資訊內容來使用,要怎麼解開這個封印呢?

2013年9月9日 星期一

Mac OS X 的 Terminal.app 啟動後很久才能輸入、操作?

如果你的 OS X Terminal.app 啟動之後,經過很久視窗才 ready (大約 3 秒才出現 ~user$)
開新的 Terminal Tab(頁籤) 也是要很久才出現 ~user$

這時候你就必需清除 Apple System Logs 檔,也就是在 /private/var/log/asl/
路徑下副檔名為 .asl 的檔案

請在終端機下輸入:

sudo rm -rf /private/var/log/asl/*.asl

這樣你的終端機啟動視窗跟開啟新頁籤的速度就會跟飛的一樣

2013年6月6日 星期四

如何整理並清除 Mac OS X「打開檔案的應用程式」清單裡,已經失效的應用程式連結

Mac OS X 用久了,難免會安裝許多應用程式,也會移除掉一些不好用的 App
有時候為了測試,也會常常安裝、移除應用程式

但是如果應用程式反安裝沒寫好,或是OS沒處理好,在「打開檔案的應用程式」清單常常會有沒移除乾淨的連結,看了非常礙眼

以下的指令就是清除「打開檔案的應用程式」清單的方法(指令是完整一行):
/System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -kill -r -domain local -domain system -domain user

在 Terminal 裡輸入上述指令,按 return 之後,應該就可還你一個乾淨的清單了

2013年5月20日 星期一

如何讓隱藏視窗的應用程式 Dock Icon 變成半透明

請開啟 終端機(Terminal) 程式,輸入以下指令:
defaults write com.apple.Dock showhidden -bool YES;killall Dock
按 return 鍵

如此,當應用程式視窗用 CMD(⌘) + H 隱藏視窗時,它的 Dock Icon 就會變成半透明

若要取消以上設定,回復預設值,請改輸入:
defaults write com.apple.Dock showhidden -bool NO;killall Dock
按 return 鍵

2013年2月22日 星期五

Linux 無法 umount 某個目錄,出現 "Device is busy" 的訊息,要如何解決?

在 Linux 系統下,當任何目錄是用 mount 來掛載,後續要解除掛載(umount)的時候,若是有程式 使用,或是有 user cd 在那個目錄上的話,此時就沒有辦法 umount 掉,在 umount 時會出現 "Device is busy" 的訊息。

要怎麼找出是哪個程式掛在那個目錄上? 然後去把那個程式砍掉呢?

這時候可以使用 fuser 指令來處理

2013年1月16日 星期三

讓 Mac OS X 的 Dock 本身變成半透明

開啟 Finder  ->  應用程式  ->  工具程式  ->  終端機

在終端機裡,輸入以下指令,按「return」執行:
defaults write com.apple.dock hide-mirror -bool true;killall Dock

若要取消半透明 Dock,則輸入以下指令來還原:
defaults write com.apple.dock hide-mirror -bool false;killall Dock

2012年8月15日 星期三

如何在終端機(Terminal) 底下查詢自己目前的對外真實 IP

一般我們在電腦前要知道自己當下對外的真實 IP,通常都是開啟瀏覽器
然後搜尋 what is my ip address 或是 what is my ip,藉由第三方網站來得知

但是因為平時大多都是在 Terminal 下作業,有時後在機房也不一定有圖形界面可用
這時候若需要知道對外 IP,以便進行一些網路除錯的工作時,就只能依賴指令的方式了

以下介紹一個在 Terminal 下查詢自己目前的對外真實 IP 的方法
這是 Mac、Linux 都通用的指令

2012年4月27日 星期五

在 Linux Terminal 底下,使用 mail 或 mailx 指令夾帶檔案寄出的方法

Linux Terminal 底下,使用 mail 結合郵件內容與所要傳送的附件檔,最主要的是 mailx 的動作跟之前一樣,只是多了前置準備動作。

uuencode 在 Linux 的套件名稱通常為 sharutils,一般安裝不會包含進來,必須使用 dpkg 或 yum 來安裝


2011年6月9日 星期四

Linux Terminal 下使用 curl 模擬瀏覽器來瀏覽或檢測網頁的方法

一般測試網站大多是開啟瀏覽器來觀察,但如果只是要寫個 cron Job 來定時檢測網站是否還活著,這時候就可以使用 curl 在 Linux Terminal 輕易達到這個目的

使用 SmokePing 這個 perl 程式加上 curl 模組就可以監控任何網站或是特定網頁