2012年3月17日星期六

[教學] Mac 安裝 pecl ,安裝 php extension.

0 意見
要開始使用mongoDB ,搭配php 當然一開始就需要將mongoDB 在php 驅動起來,目前找到最好的方式就是透過 pear 來安裝 php extension,底下將介紹 pear 在Mac 的安裝方式,以及 php extension 的安裝說明。

Mac 安裝 Pear 方式

下載 Pear 安裝 script
http://pear.php.net/go-pear.phar
下載指令如下,(當然要先安裝 php, wget 等)
wget http://pear.php.net/go-pear.phar
php -d detect_unicode=0 go-pear.phar
接著會顯示一些選項,如果都不需要可以直接輸入enter跳過, 最後會顯示資訊如下,
Would you like to alter php.ini </private/etc/php.ini>?
當然輸入Y,自動設定php.ini 之後結束安裝。
之後設定自己的PATH 環境變數,加入底下的路徑
export PATH=$PATH:/Users/$USER/pear/bin
之後就可以開始使用 pecl 指令。

使用 pecl 安裝Mongo extension

現在可以開始使用pecl 指令,試試看如下指令運作是否正常,
pecl search mongo
接著再安裝PHP mongo extension
pecl install mongo
再進去php.ini 修改設定,增加剛才新增的extension,
extension=mongo.so
重新啟動 Apache 之後就完成php mongo extension 安裝。

2012年3月13日星期二

[分享] Mac 整合Apache, php, MySQL

0 意見

Mac 整合Apache, php, MySQL

雖然說市面上已經有類似 Appserv的套件 MAMPP,可是在Lion Mac 裡面其實已經內建了Apache, PHP ,如果為了安裝 MAMP (Mac, Apache, MySQL, PHP)而安裝 MAMPP 其實真的蠻奇怪的,底下會講解如何分別安裝。

安裝 MySQL

安裝MySQL 這邊藉由 Homebrew 套件庫來安裝(安裝 homebrew 的步驟這邊就省略了),
brew install mysql
一行指令簡單完成 mysql 的安裝,接著啟動mysql 服務
mysql.server start
看到如下訊息表示啟動成功。
Starting MySQL
.. SUCCESS!
測試自己的 mysql root 帳號
mysql -u root
以上步驟就可以開始使用MySQL 服務。

設定 Apache & PHP

前面有提過 Mac 裡面已經內建 Apache,接著需要修改設定,路徑如下
/etc/apache2/httpd.conf
因為此檔案預設是唯讀,如果要修改設定需要開啟權限
sudo chmod u+w /etc/apache2/httpd.conf
vim /etc/apache2/httpd.conf
apache 需要啟動 PHP 模組,修改如下
LoadModule php5_module libexec/apache2/libphp5.so
另外其他修改的內容依照自己需求調整。

啟動 Apache

啟動Apache 服務,
sudo /usr/sbin/apachectl start
啟動成功之後,開啟瀏覽器,網址輸入 localhost 或者輸入自己本機 ip 就可以連線看到網頁了。

修改 PHP.ini 設定

Mac 內建的 PHP 預設檔藏在一個隱密的地方,路徑如下,
/etc/php.ini.default
如果需要修改 php.ini 設定就必須要自己新增一個,
cp /etc/php.ini.default /etc/php.ini
接著修改內容,啟動 MySQL 模組,
extension=php_mysql.dll
最後再重新啟動 apache 服務,
sudo /usr/sbin/apachectl restart

結語

雖然說 Mac 有開發者為了Aapche, php, mysql 整合出 MAMPP套件,但是基於 apache, php 這些都已經預設安裝在 Mac 當中,身為一個開發者應該是想辦法整合目前的環境,而不是去重新打造一個,讓自己成為環境的控制者。

參考資料

2012年3月6日星期二

[教學] mongoDB phpMoAdmin GUI 管理介面安裝

0 意見

MongoDB GUI 管理

因為對岸有釋出 cnodeclub 專案,社群內也有熱心朋友協助轉翻譯為繁體中文,因此就開始著手架設Nodejs Taiwan 社群的討論區,在因緣際會下也開始使用到mongoDB。
MySQL有phpMyAdmin,MongoDB理所當然應該也要有一套GUI管理介面,稍微搜尋一下,發現了一套 phpMoAdmin,介面上雖然陽春,但是對於MongoDB初學的我已經很夠使用。

MongoDB 與 PHP 環境設定

phpMoAdmin,顧名思義是透過php來管理mongodb,因此我們需要做以下設定(環境為ubuntu)
apt-get install php-pear
pecl install mongo
安裝完mongo套件之後,接著修改 php.ini設定,增加一行
extension = php_mongo.so;
接著重新啟動 http service。

phpMoAdmin 安裝與設定

環境設定好之後,phpMoAdmin 下載回來,phpMoAadmin 下載點 解開Zip 檔案,裡面只有單一個檔案,放置在website預設目錄下,就可以透過頁面管理mongoDB。

相關連結

[教學]使用 ssh-agent

0 意見

[教學]使用 ssh-agent

Git remote 操作都需要輸入私鑰密碼,讓自己覺得有點麻煩,在網路上找了些解決方法,最後發現了一個好方式 – 使用ssh-agent,以下介紹兩個步驟完成ssh-agent 操作。

啟動 & 設定 ssh-agent

啟動ssh-agent
eval `ssh-agent -s`
會顯示類似以下資訊
SSH_AUTH_SOCK=/tmp/ssh-dFIwMX9398/agent.9398; export SSH_AUTH_SOCK;
SSH_AGENT_PID=9399; export SSH_AGENT_PID;
echo Agent pid 9399;
增加私有金鑰管理設定(可以依照自己需求增加)
ssh-add
顯示如下資訊,再輸入私鑰密碼
Enter passphrase for /home/$USER/.ssh/id_rsa:
程序完成,接著登入主機或者是git remote 操作都不會再詢問任何密碼了。

結語

雖然說使用ssh-agent 似乎有點讓人擔心安全性問題,不過我自己還是希望能省下輸入密碼的時間,因此就先將安全性問題拋到腦後,使用 ssh-agent 管理我的私鑰密碼。

相關資料

2012年2月27日星期一

[教學] express middleware 介紹與範例,express middleware explain in node.js

0 意見

之前提到如何在Node.JS 使用Express, Express 路由(route)設定方法

Express middleware 介紹

Express 裡面有一個十分好用的應用概念稱為middleware,可以透過 middleware 做出複雜的效果,同時上面也有介紹 next 方法參數傳遞,就是靠 middleware 的概念來傳遞參數,讓開發者可以明確的控制程式邏輯。

// .. create http server

app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session());

上面都是一種 middleware 的使用方式,透過 app.use 方式裡面載入函式執行方法,回應函式會包含三個基本參數,responserequestnext,其中next 表示下一個 middleware 執行函式,同時會自動將預設三個參數繼續帶往下個函式執行。

Express middleware 範例

底下有個實驗,

上面的片段程式執行後,開啟瀏覽器,連結上 localhost:1337/,會發現伺服器回應結果順序如下,

first middle ware
second middle ware
execute middle ware
end middleware function

Express middleware 結論

從上面的結果可以得知,剛才設定的 middleware 都有執行。

在 app.use 設定的 middleware 是所有url 皆會執行方法,如果有指定特定方法,就可以使用 app.get 的 middleware 設定。在 app.get 函式的第二個參數,就可以帶入函式,或者是匿名函式,只要函式裡面最後會接受 request, response, next 這三個參數,同時也有正確指定 next 函式的執行時機,最後都會執行到最後一個方法,當然開發者也可以評估程式邏輯要執行到哪一個階段,讓邏輯可以更為分明。

工商服務

Node.JS Taiwan 社群目前著手共筆的中文教學資料,歡迎有興趣者共同關注,相關網址資訊,

Facebook