PHP curl error: SSL certificate problem, verify that the CA cert is OK
之前在 CodeIgniter 寫了 CodeIgniter-Google-URL-Shortener-API 縮短網址的 goo.gl API Library,也在國外 CodeIgniter 論壇發表了一篇,不過在論壇有人回覆安裝好之後不能使用,會直接噴出底下錯誤訊息:
Severity: Notice Message: Trying to get property of non-object Filename: controllers/google_url.php Line Number: 24 之後我在 Windows 利用 Appserv 架設好這環境,發現是同樣問題,但是在 FreeBSD 跟 Ubuntu 上面都不會出現這錯誤訊息,接著在程式馬上面看看 curl 吐出什麼資料:
Curl error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 把這錯誤訊息拿去 Google 發現到這篇解法 Curl: SSL certificate problem, verify that the CA cert is OK,只要跳過驗證憑證就可以了
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);可以參考
PHP 官方 curl_setopt 的設定說明。
在 Ubuntu 底下快速安裝 CakePHP Framework 環境
CodeIgniter 1.7.x vs 2.0.x 的改變及新增功能
CodeIgniter 2.0.x 已經 Release 一段時間了,去年的 2010 CodeIgniter Conference 會議上一些國外講者分享了 2.0 的改變及新功能,底下這投影片個人覺得還不錯,點出了升級步驟及 2.0 新功能介紹,大家可以參考看看
2011 CodeIgniter Conference 將會在紐約舉行,大家可以敬請期待。
svn 恢復略過衝突檔案 (conflict file)
當我們利用 svn up 更新程式碼,如果遇到修改相同檔案的相同地方,就會發生衝突 (conflict) 此時就必須修改或者是略過,當選擇略過此檔案就會出現底下訊息
Skipped ’lib/logs/logDB.txt’ Skipped ’lib/confs/Conf.php’ At revision 912. Summary of conflicts: Skipped paths: 2 之後怎麼用 svn up 更新檔案,都會因此被略過,那該怎麼恢復被略過檔案的狀態,讓它們可以繼續被更新呢?網路上找到一篇 svn local obstruction, incoming add upon merge 解法,用 svn resolve 來解決問題,只要針對該檔案打入底下指令即可
svn resolve --accept working lib/confs/Conf.php svn resolve --accept working lib/logs/logDB.txt
在 Ubuntu 安裝或升級 Git 版本控制的3種方法
解決在 Ubuntu Terminal 底下 git diff 沒有輸出結果 10.10
自從把筆電安裝成 Ubuntu 10.10 maverick 後,把所有 github 上面程式碼都用 git clone 下來,最近遇到一個非常奇怪的問題,那就是修改檔案之後,正常來講,可以用 git diff 來查看修改過的程式碼,但是非常奇怪的事情就發生了,『完全沒有輸出』,後來在網路上找到一篇解法 git diff shows no output,原來是 $LESS 這個環境變數搞的鬼,其實可以用 git diff | cat 方式看到 diff 結果。 我們打開 .bashrc 發現底下設定
export EDITOR="vim" export GIT_PAGER="less" export LESS="-XEfmrSw" export PAGER="most"重點就在於 $LESS 必須加上
-X,並且請裝上 most 這指令
apt-get install most
你不可不知的 JSON 基本介紹
還不知道 JSON 是什麼嘛?本篇教學會帶您瞭解 JSON 在網站上的應用,以及運作流程跟使用 PHP 和 JavaScript 來處理 JSON。假如您現在的工作就是網站設計師,相信一定聽過 JSON,但是什麼是 JSON,它能夠做什麼,及您能透過它在網站上做到哪些事情呢?
透過本篇介紹您可以瞭解基本的 JSON,底下會列出本篇會提到的重點:
- 什麼是 JSON
- JSON 應用在哪些地方
- 如何建立 JSON 字串
- 一個簡單的 JSON 範例
- JSON vs XML
- 如何透過 PHP 及 JavaScript 使用 JSON
什麼是 JSON
JSON 是個以純文字為基底去儲存和傳送簡單結構資料,你可以透過特定的格式去儲存任何資料(字串,數字,陣列,物件),也可以透過物件或陣列來傳送較複雜的資料。一旦建立了您的 JSON 資料,就可以非常簡單的跟其他程式溝通或交換資料,因為 JSON 就只是個純文字格式。
JSON 的優點如下:
- 相容性高
- 格式容易瞭解,閱讀及修改方便
- 支援許多資料格式 (number,string,booleans,nulls,array,associative array)
- 許多程式都支援函式庫讀取或修改 JSON 資料
CodeIgniter 2.0.X MVC 架構介紹
這次受到 OSSF::自由軟體鑄造場(Open Source Software Foundry) 邀請在高雄講 CodeIgniter 2.0.X 系列講座,一整天的課程,可以參考 KaLUG 社群技術分享工作坊 - 快速學習 PHP Framework - CodeIgniter 2.0,2009 年我也是講了一場介紹 CodeIgniter 1.7.X 講座,這次針對於 CodeIgniter 2.0.X 做了詳細介紹,及我們該如何轉換原本網站程式到 CI 上面,學員雖然來的不多,但是我相信大家都有學到這次講課的精華,就是 CodeIgniter MVC 架構,跟如何應用 Controller Model Views 基礎用法,看到大家都很認真學習,還有學員從雲科大到高雄,真的太令我感動了,希望這次議程沒有讓學員們失望,底下附上我的簡報:
簡報檔
如何建立 Ram Disk 在 Ubuntu 上面
Update: 此篇文章建立 RAM DISK 還是用原來 3G 記憶體,而不是用 4G 裡面的 1G,感謝威阿提醒修正 之前拜了一台筆電 Toshiba Portege R700,拿到電腦馬上二話不說,灌成 Ubuntu 10.10 32 位元,但是筆電有 4G 的記憶體,32位元只能支援到 3G,所以剩下 1G 就拿來當作是 Ram Disk,反正不用白不用,可以把臨時要用且關機不需要的檔案或程式丟到 RAM DISK,如果把 FireFox 的 cache 資料放在裡面應該會蠻快的,底下紀錄如何開機就直接掛上 1G 的 Ram Disk。 兩個步驟就可以了:
mkdir -p /media/ramdisk mount -t tmpfs -o size=1024M tmpfs /media/ramdisk把上面寫到
/etc/rc.local 檔案,這樣開機就會自動把 RAM Disk 掛上去。