2009年3月22日 星期日

如何以原始碼建置Apache+PHP的環境

Apache, 當今市佔率最高的網頁伺服器軟體,
他支援的平台廣泛的從各種的Unix和Linux作業系統到M$ Windows, Mac, 廣泛的開發者和使用者, 豐富的模組支援和server side scripts, 與Java的整合, 讓不管是要自己架設網站或是從事商業活動的需求, Apache web server都是上上之選.

小弟我從學生時代到工作, 就一直是Apache的愛用者, Apache能做的事很多,
如果家裡剛好有一台舊電腦不用, 就可以把它拿來好好的做應用

接下來我分別就底下幾個topic來介紹Apache的應用
1. 從原始碼建置Apache+PHP環境
2. WebDAV架設自己的網路硬碟
3. 用Ampache架設管理MP3伺服器
4. ICECAST擁有自己的音樂電台

從原始碼建置Apache+PHP的環境開始, 首先是下載原始檔案
本介紹的範例是用最新版本的Apache和PHP
httpd-2.2.11.tar.gz
PHP 5.2.9 (tar.gz)

Apache的原始檔案到底下的Link下載
http://httpd.apache.org/download.cgi

PHP的原始檔案到底下Link下載
http://www.php.net/downloads.php

Apache:
1. 原始碼解壓縮
# tar zxvf httpd-2.2.11.tar.gz

2. Configure Apache
Default的Apache底下的模組是被enable的, 也就是說底下的模組都會被build到apache裡, 如果需要disable其中的選項, 只要在configure的options裡加入例如 --disable-status 便可.
mod_actions.
mod_alias.
mod_asis.
mod_auth.
mod_autoindex.
mod_access.
mod_cgi
mod_cgid
mod_charset_lite
mod_dir.
mod_env.
mod_imagemap.
mod_include.
mod_log_config
mod_mime
mod_negotiation.
mod_setenvif.
mod_status.
mod_userdir
採外Apache支援動態模組載入機制, 有這個機制每次想家新的模組支援, 才不用都要重建整個原始碼
-- enable-so 就是enable apache的動態模組機制, 只要enable了動態模組機制, 如果想將以上的內建模組build成動態模組, 譬如要把mod_userdir build成動態模組, 只要在configure的項目加入 --enable-userdir=shared便可.

我們在configure apache先只加入-- enable-so
# cd httpd-2.2.11/
# ./configure --prefix=/usr/local/apache -- enable-so

3. Build Binary
# make
# make install

Apache大功告成

接下來是PHP模組
1. 原始碼解壓縮
# tar zxvf php-5.2.9.tar.gz

2. Configure PHP
在編輯PHP時候需要apache的apxs來編譯, 所以必須在configure裡加入 --with-apxs2=/usr/local/apache/bin/apxs
# cd php-5.2.9/
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs

3. Build binary
# make
# make install

PHP建置好了,接下來是設定檔
1. PHP設定檔, copy source code裡的php.ini-dist到 /usr/local/php/lib/php.ini

2. 編輯/usr/local/apache/conf/httpd.conf
把底下這行加入httpd.conf的任何一個地方
LoadModule php5_module modules/libphp5.so

3. 然後是這幾行加到httpd.conf的任何一個地方

SetHandler application/x-httpd-php


完成了, 接下來可以run底下的command來啟動apache
# /usr/local/apache2/bin/apachectl start

可以開始把網頁或是php程式放到/usr/local/apache/htdocs裡測試了.

下次介紹
"WebDAV架設自己的網路硬碟"
WebDAV是HTTP 1.1標準中的一項功能,使用者端可以透過HTTP協定來新增、刪除、修改網頁上的資料, 透過WebDAV來存取網站, 網站上的資料就如在本機中一樣,
有了WebDAV, 你可以把通訊錄或是行事曆檔案放在WebDAV上, 所以的奘置包含notebook, 手機就可以裡用這個方法同步, 也可以和朋友分享.

好想喝coffee...順便貼一張照片分享
Sharing!!

Gmail Labs!! 方便的Gmail新功能.

當看到Gmail主視窗畫面裡右上角"New Stuff In Labs"的字閃呀閃的時候, 表示Google的開發團隊又做了有趣的東西了,最近呢看到幾個Gmail新功能,分享一下吧..

首先是
Youtube, Picasa, Flickr, and Yelp previews
指的是在Gmail裡, 一旦你收到的email裡有Youtube, Picasa, FLickr或是Yelp的Link,
你將不需要點擊link才能看到內容就可以預先看到Link裡的內容, 相當方便的功能..

Undo send
超愛這個新功能, 你知道的, 有時候精神不好的時候, 手指頭總是不聽話,
有些email就是在這個時候不小心寄出去的, 或是有收件者不小心加錯了, 在按下"Send"的時候才發現,
有了這個功能, 在你按下"Send"的瞬間如果後悔了, 趕快按下Cancel就可以取消寄件,萬一不幸已經寄出, 在收件人還沒打開郵件以前, 你也可以按下Undo, 就可以改變信件內容或是收回..

Tasks mobile
只要access http://gmail.com/tasks
在你的iPhone上將可以存取Gmail的Task和Todo list

Offline
對我們這種出差族來說, 在沒有網路的地方, 可以offline存取Gmail真是夢裡才會發生的事,
他真的發生了


除了這幾個功能以外, 還有很多Gmail 的功能, default是disable的, Google也一直在開發新的功能,
現在就到你Gmail的Setting->Labs , 你會發現很多有趣的東西歐..




2009年3月20日 星期五

iPhone OS 3.0 software release

Apple 於3/17/2009
公佈了iPhone OS 3.0 software, 當然除了OS本身以外, 還包含了新的SDK,
現在還是beta版, 供開發者下載, 但是要coco...
兩種program,
Standard Program要 $99 USD
Enterprise Program要 $299 USD
http://developer.apple.com/iphone/program/sdk.html

這些更新很令人興奮, 之前在網路上流傳的10個不買iPhone的理由, 在新版的OS 3.0都改善了,

我大概以OS本身及SDK的更新做些介紹

從OS開始, 就一般使用者來說, 相較於2.0版, 新版的iPhone OS 3.0增加了100新的功能, 這裡就介紹幾個主要的功能

Copy, cut, paste
使用者可以在所有的應用程式之間copy, cut paste文字以及照片,
在Safari看到的一段文字, 可以copy paste到email裡, copy sms裡的一段文字到email裡, 也可以copy "Photo"裡的照片到email裡,
還有一個有趣的是,所有copy, cut, paste的動作, 都可以透過 shake來取消或回復

Landscape,
3.0版的OS, 所有內建的應用程式包含輸入法都可以以landscape mode的方式使用

SMS Forward/Delete
10大不買iPhone的理由之一, iPhone不能delete or forward SMS裡的message.
現在3.0版的OS, SMS裡的訊息終於可以刪除或轉寄

MMS
同樣也是10大不買iPhone的理由之一,
現在3.0版OS也support MMS了,使用者可以藉由MMS寄送
照片(Photo)/聯絡人(contacts)(vcard)/audio/位置(location)

Voice Memos
3.0版OS內建錄音程式,錄音程式並可以簡單的修改錄製好的Audio

Calendar
支援CalDAV標準
也可以訂閱Google或是yahoo上公開的Calendar

Search
可以在通訊錄裡搜尋聯絡人, 在email裡搜尋任何關鍵字, 搜尋行事曆, notes和搜尋ipod裡的音樂和影片
也可以透過Spotlight做搜尋


iPhone 3.0 OS SDK 增加了1000 new APIs, 我來介紹幾個主要的Key features

In App Purshase
Apple的企圖很明顯的在複製iPod iTune模式到iPhone,
從線上音樂商店到現在的App store, 使用者可以非常方便的直接透過iPhone或是iTune在App store上下載或是購買軟體或是電子書, 現在以 iPhone OS 3.0 SDK 開發出來的應用程式更可以讓使用者直接在"應用程式裡"購買content, 舉例,使用可以在以 iPhone OS 3.0 SDK 開發出來的遊戲裡直接購買更進階的關卡或是在iPhone OS 3.0 SDK 開發出來的電子書程式裡直接購買電子書

Peer to Peer connection
至從iPhone量產一直以來, 最被詬病的其中一件事就是
藍芽(Bluetooth)在iPhone上只能用來支援藍芽耳機, 相較於一般手機來說, 這就像是跛腳一樣,
在新版的 3.0 SDK, Apple某個程度上是開放了部分的藍芽功能, 他提供了APIs用來實做peer to peer connection, 透過這個APIs可以自動找到(Aotomatic Discovery)在附近的使用者然後詢問連線,
因此開發者可以簡單的開發出點對點(peer to peer)的遊戲或是應用程式, 這個點對點的connection是可以建立在WIFI, 或是Bluetooth上, 所以使用者將可以透過藍芽或是WIFI一起玩連線遊戲或是交換檔案.

Accessories
支援iPhone及iPod的配件非常多, 現在新版的OS 3.0 SDK提供了一組APIs, 讓製造配件的廠商或開發者可以使用這組APIs透過Dock connector或是Bluetooth與配件做更緊密的結合,例如, 開發者將可開發一個一個界面程式用來控制透過Dock與iPhone連接的Speaker的音量或是EQ, 再者透過這組APIs, iPhone可被用來當作Control和Display的裝置

Maps
開發者可以透過Maps APIs直接使用Google maps service, 或是得到當前的位置座標,
相信, GPS導航的軟體很快就會在iPhone或是iPod上出現

Push Notification
iPhone不支援blackground process(實上是有, 以O.S的角度來看的話), 應該是說, 為了省電在iPhone上,不允許應用程式在背景執行, 要執行另一個程式, 必須離開並停止當前執行的程式, 也因此, 在iPhone上的IM程式無法在背景執行,非常不方便, Apple提供了Push Notification Service, 讓所有IM這類程式, 即使程式離開了, 使用者也可以統一透過Push Notification Service接收到朋友傳來的message


就官方說法, 新版的OS 3.0將在2009 summer正式release, 到時候iPhone使用者將可以免費upgrade,
但是iPod touch要做upgrade就需要收費了..