跳到主要內容

發表文章

目前顯示的是 2014的文章

[野人獻曝] 使用 GitLab 來寫個簡單的 git log 介面

因為公司的版本管理用 Git ,所以裝個 GitLab 也是很正常的事! 說是這麼說啦,不過我也不算啥 Git 達人,所以研究這個東西只是基於我工作上需求而做的。 使用這隻API的方式很簡單,只要: 先到個人的帳號頁面拿到專屬的 private_token 然後看 GitLab 提供的 API 有什麼可用的,然後自己實作功能就好了 以下是實作列出專案的大略程式碼:

[野人獻曝] 讓 solr 將查出的資料作亂數排序

第一步:打開你的索引核心目錄中的 schema.xml 分別找到 fields 和 types 兩個區塊,並在區塊內加上以下內容: <fields> ...... <dynamicField name=" random* " stored="false" indexed="true" type=" rand " /> </fields> <types> ...... <fieldType name=" rand " class="solr.RandomSortField"  indexed="true" /> </types> 注意:紅字的地方名稱務必要一樣,不然索引應該會失敗。 第二步:重新啟動 solr ,完工! 如果你有設定 Replication 的話, 理論上應該會將這份 schema.xml 同步到 slave 機上。 接著你可以在 solr 的查詢介面中試著用 sort = random* [desc | asc] 試試看, 應該會看到不同查詢排序結果。 (注:*可以是任何字元,但是儘量不要用同一組字元,因為會得到同樣的結果,就沒有 random 的意義了) 以上,打完收工!

[野人獻曝] 在Server上安裝linux儀表板

有些時候想看系統上的一些資訊要自己下一票指令, 如果熟悉這些指令的話倒也就罷了, 但很多時候其實並不這麼熟悉, 所以就有人做了 一個儀表板 , 可以用網頁的形式顯示系統資訊, 一眼就可以看出來系統狀況。 他的安裝基本上很簡單: 確定系統上安裝了php5和php5-json(我想一般機器都會有 沒裝的話自行敲個 yum install / apt-get install 吧 下載檔案並解壓縮到網站目錄中 檔案網址: https://github.com/afaqurk/linux-dash/archive/master.zip 解壓縮這個檔案放到網站目錄 為了保險起見將這個目錄加上簡單的密碼保護 如果是用 nginx 的話,可以在 /etc/nginx/sites-enabled/default 下加上以下內容 location 目錄路徑 { auth_basic    "提示要求輸入密碼的內容"  auth_basic_user_file  "密碼檔路徑" }  然後利用 這個工具 產生密碼檔的內容,並且貼到密碼檔中,接著重新啟動 nginx 即可。 以上動作完成,輸入網址並且打上帳號密碼應該就可以看到你現在的系統狀態了。 以下是實際執行的畫面:  

[野人獻曝] 將Cloudfront的資源加上防外連機制

最近因為 Cloudfront 的流量費用越來越可怕了, 所以牙一咬就決定擋掉圖片的所有外連圖個減少開銷。 而 Cloudfront 正好有提供 Signed URL 這個玩意可以達成我的要求。 這玩意簡單來說就是在所要求的資源(如:圖片、檔案等)的網址後面多加一串 Query String。 例如: http://www.example.com/a.txt 經過改造後會變成 http://www.example.com/a.txt?blahblah , 而Server只要認那串 Query String 就可以決定是否要出所要求的內容, 就可以控制不必要的外連。 那接著就不提廢話,直接實作吧! 第一步要先到 AWS 的 Security Credentials , 然後頁面往下拉找到一個 Key Pairs 的 tab, 接著點擊 Create a new key pair , 他會產生一組pem檔並且要求下載, 請把這個檔案下載儲存。 同時頁面上也會顯示一組 Axxxxxxxxxx 的 key , 請務必把這組字串複製下來。 第二步要寫出一個產生 Signed URL 的 function, 內容大概如下 <? php /** * $resource:要處理的檔案網址 例如http://www.example.com/a.txt * $expire:過期的時間,單位是秒,這裡我預設有效時間為一個小時 */ function create_signed_url ( $resource , $expire = 3600 ) { $aws_key = 'Axxxxxxxx' ; // 就是上述所提到的key $pem_file = '' ; // 剛才下載的pem檔案放置路徑 $expire_time = time () + $expire ; // 這裡的值是個 Unix timestamp // 以下是 Cloudfront 的存取策略,內容基本上是個json string // 但是千萬不要用json_encode這個函式去編出內容,因為格式會不一樣 // 詳細...