2010-07-30

Ubuntu 編譯和安裝 Xdebug

阿舍這陣子有裝 Eclipse 的 PDT ( PHP Development Tool ) 來寫 一些 PHP 的東西,然後,寫一寫就想到要用 PDT 來 Debug,所以,就想直接在 PDT 裡設定 Xdebug 來做為 PHP 的 Debug 工具,可是,結果咧 ? 阿舍怎麼試都怪怪的,就這樣一直試了好一陣子之後,阿舍才突然的想到說,該不會是這個 Xdebug 要自己先安裝嗎 ? 啊 ! ...就是的...

安裝 Xdebug 的方式有二種,第一種是下載 Xdebug 的原始碼來編譯和安裝,而第二種就是用 PECL 直接安裝的,今天,阿舍要說的是第一種,要自己動手編譯的那一種,以下就是操作的步驟。

1.安裝 PHP 開發用的套件

sudo apt-get install php5-dev

2.下載 Xdebug 的原始程式碼

Xdebug 的原始程式碼要到這裡下載。

3.解壓下載的原始程式碼檔。

以阿舍下載的 Xdebug 2.1.0 版為例,解壓縮指令如下

tar -xvzf xdebug-2.1.0.tgz

4.開始編譯

開始編譯之前,請先切換到 Xdebug 解開的資料夾裡,然後,執行下面三行指令。

phpize
./configure
sudo make

5.安裝 Xdebug

將上一個步驟產生出來的 xdebug.so 檔放到 PHP 的擴充套件資料夾。

cp modules/xdebug.so /usr/lib/php5/20090626+lfs

6.調整 PHP.ini

把下面這幾行加到 /etc/php5/apache2/php.ini 裡存檔

zend_extension = /usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

7.重新啟用 Apache2

sudo /ect/init.d/apache2 restart

完成之後,用 phpinfo() 來看時,如果有成功,就會出現 Xdebug 的安裝資訊了....

2010-07-29

StreetSide 微軟的街景服務

除了 Google 有提供地圖的服務之外,微軟的 Bing.com 也有提供一個叫做 Bing Map 的地圖服務,不過,目前還沒有提供給台灣使用,所以,只有用英文版的人才會看的到,不過,阿舍好奇的輸入中文地址來找地圖,結果,好像只有縣市可以用中文找的到,路名就不行了,大概就是因為這樣,才還沒在台灣推這個 Bing Map 吧 !

最近微軟將會在 Bing Map 上提供一個叫做 Street Side 的服務,其實,就是和 Google Map 街景一樣的功能,不過,在操作上有一點不太一樣,有興趣的話可以看一下這裡和這的影片,看起來還滿有趣的,只是,不知什麼時候台灣才會有 Bing Map 和 StreetSide 可以玩玩哩 !!

2010-07-24

Ubuntu 如何手動安裝( 從原始檔編譯 ) PHP 的 Suhosin 擴充 ?

本來,阿舍只有編譯 PHP 的程式碼,後來才想到還要加入 Suhosin 的擴充才應該會比較安全,於是,就直接去下載了 Suhosin 的 Patch 來,因為阿舍那個時候以為是要去 Patch PHP 的原始碼之後,再重新編譯一次 PHP 的哩 ! 還好,後來有再瞄一下 Suhosin 網站上的 FAQ,才發現,原來可以不用這麻煩來的,可以直接只編譯 Suhosin 就可以了,不需要再連 PHP 一起重新編譯起的...

首先,要從這裡來下載 Suhosin 的原始程式碼 ( 要注意一下,要是下載的是 Suhosin Extension 的版本,而不是 Suhosin Patch 的版本 ) ,然後,用下面的指令把它解壓縮 ( 阿舍下載時的版本是 0.9.32.1 版 ) 。

tar -xzvf suhosin-0.9.32.1.tar.gz

接著,依照下列的順序依次執行指令,來完成 Suhosin 的編譯和安裝。

cd suhosin-0.9.32.1.tar.gz

phpize

./configure

sudo make

sudo make install

上面的動作跑完之後,會把 suhosin.so 這個檔案產生在 PHP 的 extensions 資料夾裡,阿舍自己編好的 PHP 是安裝在 /usr/local/lib/php 裡,而 extensions 資料夾就是在 /usr/local/lib/php/extensions,不過,suhosin.so 會放在 /usr/local/lib/php/extensions/no-debug-non-zts-20060613 裡,就是 extensions 資料夾的下一層裡。

再來就是要改 PHP.ini 的設定了,請打開 PHP.ini 之後,先找到 extension_dir 這項設定,然後,把上面找到 suhosin.so 檔案的資料夾路徑指給 extension_dir 這項設定,以阿舍為例,要設定如下:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"

最後,在 PHP.ini 檔裡找到 extension 的區段,然後,加入下面這一行後存檔.這樣 PHP 的 Suhosin 擴充就算安裝完成了....

extension=suhosin.so

Ubuntu 編譯 PHP MySQL PDO

PHP 的 PDO 是 PHP 5 版的一個重要功能,所以, 阿舍怎麼可以不把它給啟用哩 ! 而且,再加上阿舍用的 Drupal 的下一個版本 Drupal 7 就有支援 PDO 了,所以,阿舍的 VPS 就非啟用這個 PDO 不行,啟用這個 MySQL PDO 的方法是要在設定 ./configure 的時候,加入 PDO 的 --enable-pdo 和 --with-pdo-mysql 參數。

和啟用 mysqli 一樣的,這兩個參數都需要指定 MySQL 的安裝資料夾,第一個 --enable-pdo 在後面要加入 mysql 所在的地方,以 Ubuntu 來說,會是在 /usr/bin 裡面,而第二個 --with-pdo-mysql 則是要指出 mysql_config 的位置, Ubuntu 在安裝 MySQL 之後,會把這個檔案放到 /usr/bin 裡,不過這個第二個 --with-pdo-mysql 參數是要指出完整路徑和檔案的,所以,就會是 /usr/bin/mysql_config,以下就是阿舍完整的指令:

./configure --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --with-openssl --with-gd --with-mysql=/usr/bin --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysqli=/usr/bin/mysql_config --with-pdo-mysql=mysqlnd --with-mcrypt --with-zlib --enable-pdo=/usr/bin --with-pdo-mysql=/usr/bin/mysql_config

Ubuntu 如何編譯 ( Compile ) 支援 MySQLi 的 PHP ?

阿舍因為要使用 PHP-FPM ( PHP FastCGI Process Manager ),所以,就需要自己重頭來編譯 PHP 的原始程式,一開始阿舍只有在 ./configure 裡加了 --with-mysql -with--mysqli 而已, 結果,就都編不出程式來了,阿舍就一直試了好久,中間還遇到過說什麼找不到 ltdl 檔的,後來才知道,原來是阿舍少裝了一個 libltdl-dev 的套件,所以要用下面的指令來安裝。

sudoapt-get install libltdl-dev

但是,阿舍後來才發現真的原因,是因為 --with-mysql 和 -with--mysqli 少給了參數,這二個都分別要指向不同的資料夾. --with-mysql 需要知道 mysql 的程式路徑,而 --with-mysqli 則是需要知道 mysql_config 的所在位置,另外,還有一個 --with-mysql-sock 也是指定,所以,阿舍後來有試成功的指令如下 :

./configure --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --with-openssl --with-gd --with-mysql=/usr/bin --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysqli=/usr/bin/mysql_config --with-xml --with-mcrypt --with-zlib

這樣執行之後,再執行 sudo make all install 就可以把有支援 MySQLi 的 PHP 給裝起來了哩 !!

Ubuntu 如何用指令匯出 MySQL 的資料庫 ?


其實,用 PHPMyAdmin 就可以把 MySQL 資料庫的資料給匯出來了,不過,如果在沒有安裝 PHPMyAdmin 和沒有X Windows 的地方, 那就只能用指令來操作了,阿舍查了一下,發現並不難,只要用下面的指令就可以把資料庫的資料轉成 SQL 了。

mysqldump -u 使用者名稱 -p 資料庫名稱 > 匯出的檔案名稱

以阿舍用 root 來匯出 arthurtoday 這個資料庫到 ayutoday.sql 這個檔案為例,完整的指今就是下面這樣囉 !!

mysqldump -u root -p arthurtoday > ayutoday.sql

2010-07-21

Ubuntu 如何安裝 C 的編譯器 ( Compiler ) ?

Ubuntu 的 Server 版本並沒有預載任何的 C Compiler ( 編譯器 ) 的,所以,如果像阿舍一樣有需要在 Server 編譯和安裝軟體時,那就需要來安裝一下相關的編譯程式,不過,安裝的套件名稱並不是「GCC」,而是要安裝 build-essential 這個套件才是,安裝的指令如下。

sudo apt-get install build-essential

2010-07-17

Femtocell 是什麼 ?


這個 Femtocell 是 Femto 和 Cell 這二個字的組合,Femto 是微毫的意思, Cell 就是指手機的基地台囉 ! 所以,這就很明顯哩 ! Femtocell 是一種很小的基地台 ? 喔 ! 不是啦 ! Femtocell 是一種小功率 ( 有效範圍大是 50 公尺, 一般的基地台大則大都在 500 公尺以上 ) ,適合放在家裡用的 3G 基地台,不過,雖然 Femtocell 是個基地台,但是它和一般 3G 的手機基地台不太一樣,一般來說, 基地台都是直接連回電信公司的,而這個 Femtocell 則是透過你家的 ADSL 連回電信公司的,但是...這個有什麼用呢 ?

圖片引用自 femtoforum.com

2010-07-15

雲端運算一櫃一櫃買 ?

微軟在去年展示出他們裝在多個貨櫃的雲端運算資料中心,在這個貨櫃式雲端運算中心,微軟把所有的伺服器全部都放到貨櫃裡,平均一個貨櫃可以裝進大約 2,000 台的伺服器,而且,號稱透過先進的導氣技術,可以讓貨櫃運算中心在聶氏 38 ~ 40 度的溫度下運作,十分的節能。

圖片引用自 technet.com
今年,也就是這個月 ( 2010/07 ),微軟說要開始販賣這種貨櫃式資料中心了,也就是說,如果公司想要建立私有的雲端運算中心,就不用辛苦的自己買機器來架設了,之前私有雲端的安全問題,在微軟的這種貨櫃式資料中心下,似乎有了新的解法哩 !

如果這個模式有成功,那以後企業要架設私有雲端時,就只要找微軟貨櫃式資料中心的代理商說 : "給我載二櫃過來,要多少錢 ?",如果真的是這樣,那就太方便了,只是,不知道這一櫃一櫃的伺服器是不是都是綁好微軟的私有雲解決方案哩 ! 如果是,那就要先評估公司的 IT 政策是否相符哩!

2010-07-14

Worldwide Telescope 微軟的太空望遠鏡

除了可以用 Google Earth 來看地球、看宇宙之外,現在,又多了一個選擇,那就是微軟的 WorldWide Telescope 計劃,微軟的這個 WorldWide Telescope 計劃提供透過太空望遠鏡來觀看宇宙各種東西的功能,要使用 WorldWide Telescope 計劃的話,可直接到 WorldWideTelescope.org 來使用 Web Client 的版本,在十安裝完微軟的 Silverlight 之後就可以開始遨遊宇宙了哩 ! 如果不想安裝 Silverlight 的話,這個 World Wide TeleScope 也有提供可下載安裝的版本,就像 Google Earch 一樣,可以不用透過網頁來瀏覽....


上面這張是阿舍在 WorldWide Telescope 用 IE 看到的火星,中間那個大圓圈是不是就是人家說是人造的東西...阿舍忘了...呵呵 !!

Ubuntu 如何將 PDF 檔轉換成 HTML 檔 ?

在 Ubuntu 要把 PDF 轉換成 HTML 的話,並不難, 因為 Ubuntu 已經預載了這個工具,它的名字就叫做 pdf2html,有夠直覺的吧 ! 不過,如果,你的 Ubuntu 沒預載這個 pdf2html 而要自己安裝的話,那就一點就都不直覺了,因為要安裝的套件名稱並不是叫做 pdf2html ,而是叫做 poppler-utils,所以,在 Ubuntu 上安裝就要用下面這一行指令哩 !

sudo apt-get install poppler-utils

or

sudo aptitude install poppler-utils

再來就是要用這個 pdf2html 來轉換 pdf 檔了, 執行的方式並不難,只要在 pdf2html 加入參數和來源與目的檔的名稱後,執行,那就會產出一堆的 html 和 PDF 裡的圖檔,以下是阿舍要將 xyz.pdf 轉成 html 並放到 abc 資料夾的指令,其中的 -c 是跟 pdf2html 說用複雜模式來產出 HTML,而 -p 是要把 PDF 檔的書籤轉換成超連結的意思哩 !!

pdf2html -c -p xyz.pdf /abc/xyz.html

2010-07-13

Ubuntu 上好用的 PDF Reader - Foxit

阿舍一向都不愛用 Adobe 的 Acrobat Reader 來看 PDF 檔,因為 Adobe 的 Acrobat Reader 實在是有點胖,跑起來就有點給它慢,所以,阿舍在 Windows 上都是改用 PDF-XChange Viewer 的,不過,PDF-XChange Viewer 並沒有支援 Ubuntu / Linux 的版本,而且, 阿舍也不想用 Wine 來跑 PDF-XChange Viewer, 所以,阿舍就去找到了這個有支援 Ubuntu 的 Foxit Reader。( 順便說一下,Foxit 也有 Windows 的版本, 不過, 阿舍還沒試過哩 ! )

Ubuntu 不是有內建的 PDF Reader 嗎 ? 為什麼還要另外安裝呢 ? 啊 ! 就阿舍運氣很好, 有遇到那個 PDF 檔一打開就看不到任何的東西的情形, 所以, 才會想要去找別的 PDF 來試試...阿舍有試了幾個, 就這個 Foxit Reader 比較好用,開啟速度粉快, 而且, 還可以讀出阿舍那個之前用內建 PDF Reader 看不到東西的 PDF 檔哩 !

Forit Reader 是不用安裝,只要到這裡下載來,然後解壓縮, 點那個 FoxitReader 就可以用了, 如果, 要把 Foxit Reader 設定 PDF 的預設 Reader,請參考這裡 ...。

Ubuntu 如何變更檔案關聯的開啟程式 ?

在 Windows 可以透過檔案總管來做這件事,而 Ubuntu 則是透過檔案來做這件事,在 Ubuntu 上,先找到要變更關聯的檔案,然後按滑鼠的左鍵來開啟「屬性」, 接著點開「以此開啟」的 Tab, 在這裡就以選擇要使用的程式了...

2010-07-06

精實創業模式 (Lean Startup Model) 是什麼 ?

精實創業模式 ( Lean Startup Model ) 早期指的是軟體類產品或服務的創業模式,是經由敏捷式軟體開發 ( Agile Software Development ) 與循序漸進的客製開發 ( Custom Development ) 方式來發展新創公司,在這個過程中,透過利用開放原始碼軟體或是免費的資源,在儘量減少浪費與最低創業成本的情況下,完成新的產品及開發出新產品到市場,這是目前美國矽谷最新興的創業模式之一,和早期那種拿著營運計劃書去向創投公司要大錢來燒 ( Burn Money ) 的創業模式是截然不同的。

經過這幾年的發展,精實創業模式 ( Lean Startup Model ) 已經不僅適用於軟體產品與服務的創業了,由於免費雲端服務的興起,網路上有許許多的資源可供使用,只要好好利用,就只需要少少的成本就能創業成功,所以,最近提到的精實創業模式 ( Lean Startup Model ) 指的就是這種善用各種免費資源,儘量減少不必要的支出,然後,利用少少的創業成本,加上自已的專長或新興起的產品和服務來進行創業的一種模式哩 !

拜網際網路和雲端運算的興起之賜,只要認真的找,大都可以找到一些公司營運所需的免費服務和軟體,所以,現在要透過精實創業模式來創業的可行性比起以前來的容易多了哩 !

2010-07-03

Ubuntu 如何用指令停止 Apache 的開機啟動 ?

阿舍最近想用 Nginx 取代 Apache 來跑 Drupal,但是,還不想要把 Apache 移除,怕以後還會用到,不想再重裝,所以,就想到先把它從 Ubuntu 的啟動程式名單中移除,讓 Apache 不會在開機後自己啟動起來,阿舍去找了一下,操作指令不難,用 update-rc.d 的指令就行了,指令如下:

sudo update-rc.d -f apache2 remove

如果要把 Apache 再放回啟動程式,用下面的指令就可以了... ( 請注意一下,最後的那個 defaults 是有加 s 的,阿舍一開始還打錯的哩 !!....=___=!! )...

sudo update-rc.d apache2 defaults

2010-07-02

Prezi.com 好玩、好看、好簡單的線上簡報系統

Prezi.com 是阿舍在逛網路時遇到的一個線上簡報製作與展示服務,Prezi.com 提供一個拖拉的操作界面,讓想作簡報的人可以很快的輸入自己的想法,然後,做出動態的簡報出來,不過,這個動態的簡報是固定格式的 (不過,有不同的效果可以選擇 ) ,Prezi.com 會把簡報的內容放到一個大圓圈裡,整個簡報看起就會像是一張 CD,開始播放時,這個像 CD 的東西就會開始旋轉並播放,在播放過程中,讀者還是可以放大、縮小或向前、向後移的,阿舍用起來,感覺還滿有趣的。

這個 Prezi.com 是有收費的,使用免費帳號和付費帳號的差別是於費帳號可以有不公開的私人簡報和儲存簡報的空間以及可使用離線版本價格,以年計費來算,一年大概在 50 ~ 140 美元之間,算是不會太貴的哩 !! 如果想要看看別人做的簡報,可以用 Prezi.com 網站右上的搜尋來找哩 !!

Ubuntu 設定 Nginx 作為 Apache 的 Reverse Proxy Server

阿舍試了一下,其實不難,尤其是 Ubuntu 已經把 Nginx 放到 PPA 後,就變的更容易了,按照下面的步驟就可以把 Apache 推到幕後去了哩 !! ( 不知道什麼是 Reverse Proxy Server  ? 請看這裡 )

1.更改 Apache 的 Port 號
因為 Nginx 會在前端,所以 Nginx 會佔用 Port 80 來接收所有的請求 ( Request ),所以,就要把Apache 的 Port Number 給改掉,更改方式請參考這裡

2.安裝 Nginx
請參考這裡

3.設定 Nginx
再來就是要去改 Nginx 的設定檔,用下面的指令來開啟和編輯 Nginx 設定檔。

sudo vi /etc/nginx/sites-available/default

在開啟 Nginx 的設定檔之後,往下找到下面的這一段程式碼 :

location / {
root   /var/www/nginx-default;
index  index.html index.htm;
}

把大括弧內的那二行刪除,改成下面的樣子,其中,proxy_pass 之後的網址,就是要 Nginx 代轉的目的了,阿舍把 Apache 的 Port 改到 8888,所以要設成轉到 http://127.0.0.1:8888/。

location / {
proxy_pass http://127.0.0.1:8888/;
}

改好並存檔後,請用下面的指令重新啟動 Nginx,這樣 Nginx 的 Reverse Proxy Server 應該就會生效了...

sudo service nginx  restart



sudo /etc/init.d/nginx restart

查詢 Apache MPM 用那一個模組 -

基本上,Apache MPM 的 worker 和 prefork 模組只需要擇一來使用即可,用下面的指令就可以查出來了...

sudo apache2 -l