如果我們要在 PHP Extension 中使用 dynamic library (.so 檔案) 或 static library (.a 檔案), 我們需要修改 config.m4 使 automake 和 autoconfig 會將我們的設定加到 makefile 內:
1. 打開 config.m4, 我們可以看到一行類似以下的文字
PHP_SUBST(XXXX_SHARED_LIBADD), 其中 XXXX 為 PHP Extension 的名稱 (全大寫)
2. 我們在這行之前加入:
PHP_ADD_LIBRARY_WITH_PATH([library name], [library path], XXXX_SHARED_LIBADD)
例如我們想加入 libabc.so, 而該檔案在 /usr/lib, 則我們會加入:
PHP_ADD_LIBRARY_WITH_PATH(abc, /usr/lib, XXXX_SHARED_LIBADD)
2008年5月1日星期四
2008年4月27日星期日
當 PHP Module 是由多個 C 檔案來組成的時候
如果 PHP Module 是由多個 C 檔案來組成, 我們便需要修改 config.m4 內的 PHP_NEW_EXTENSION 的內容. 例如 hello_world 是由 1.c 和 2.c 組成, 則:
PHP_NEW_EXTENSION (hello_world, 1.c 2.c, $ext_shared)
或
my_source="1.c 2.c"
PHP_NEW_EXTENSION (hello_world, $my_source, $ext_shared)
注意的是在等號兩邊是沒有空格的.
PHP_NEW_EXTENSION (hello_world, 1.c 2.c, $ext_shared)
或
my_source="1.c 2.c"
PHP_NEW_EXTENSION (hello_world, $my_source, $ext_shared)
注意的是在等號兩邊是沒有空格的.
Ububtu 開放 root 帳號
2008年4月24日星期四
在 Ubuntu 7.10 開發 PHP5 Module (模組)
由於工作關係, 我需要開發一個 PHP5 Module. 我看過網上的文章和 PHP 手冊, 發覺大部份例子都是使用 ext_skel 來建立PHP Module project. 但是 ext_skel 只在 PHP5 源碼找到. 如果沒有下載和由 PHP5 源碼來建立 PHP5 系統的話, 在 Ubuntu 是找不到 ext_skel 的. 原來之前 Ubuntu 已經將 ext_skel 移除了, 現在它改為建議用 pecl-gen 來代替 ext_skel.
要使用 pecl-gen, 首先我們需要安裝 pear 和有關的 package:
php5-cli
php5-dev
php-pear
如果電腦可以上網, 我們可以使用 pear 來安裝 pecl-gen:
sudo pear install CodeGen_PECL
如果電腦不可以上網, 我們可以先找一台能夠上網的電腦到 pear 的網站下載以下檔案:
CodeGen package
CodeGen_PECL package
然後將檔案複製到不能上網的電腦上.
假設 CodeGen 和 CodeGen_PECL 的檔案為
CodeGen-1.0.5.tgz
CodeGen_PECL-1.1.2.tgz
我們可以用以下方法安裝:
sudo pear install CodeGen-1.0.5.tgz
sudo pear install CodeGen_PECL-1.1.2.tgz
安裝完成後, 我們可以輸入 pecl-gen 來檢正是否安裝成功.
要建立 PHP Module project, 我們可以跟 ext_skel 一樣:
pecl-gen --extname=[your module name]
例如 module name 是 hello_world, 則輸入:
pecl-gen --extname=hello_world
而該 module 的檔案會在 [your module name] 目錄內.
要 make PHP module, 我們可以輸入:
phpize
./configure
make
make test
安裝 module 則可以輸入:
sudo make install
然後建立一個 ini 檔案:
touch [your module name].ini
在 ini 檔案內加入:
extension=[your module name].so
之後複製 ini 檔案到 /etc/php5/cli/conf.d 目錄內:
sudo cp [your module name].ini /etc/php5/cli/conf.d
然後 restart WWW server 就可以開始使用 Module 了:
sudo /etc/init.d/apache2 restart
當然, 我們可以用 phpinfo() 來檢查 module 是否已經載入
要使用 pecl-gen, 首先我們需要安裝 pear 和有關的 package:
php5-cli
php5-dev
php-pear
如果電腦可以上網, 我們可以使用 pear 來安裝 pecl-gen:
sudo pear install CodeGen_PECL
如果電腦不可以上網, 我們可以先找一台能夠上網的電腦到 pear 的網站下載以下檔案:
CodeGen package
CodeGen_PECL package
然後將檔案複製到不能上網的電腦上.
假設 CodeGen 和 CodeGen_PECL 的檔案為
CodeGen-1.0.5.tgz
CodeGen_PECL-1.1.2.tgz
我們可以用以下方法安裝:
sudo pear install CodeGen-1.0.5.tgz
sudo pear install CodeGen_PECL-1.1.2.tgz
安裝完成後, 我們可以輸入 pecl-gen 來檢正是否安裝成功.
要建立 PHP Module project, 我們可以跟 ext_skel 一樣:
pecl-gen --extname=[your module name]
例如 module name 是 hello_world, 則輸入:
pecl-gen --extname=hello_world
而該 module 的檔案會在 [your module name] 目錄內.
要 make PHP module, 我們可以輸入:
phpize
./configure
make
make test
安裝 module 則可以輸入:
sudo make install
然後建立一個 ini 檔案:
touch [your module name].ini
在 ini 檔案內加入:
extension=[your module name].so
之後複製 ini 檔案到 /etc/php5/cli/conf.d 目錄內:
sudo cp [your module name].ini /etc/php5/cli/conf.d
然後 restart WWW server 就可以開始使用 Module 了:
sudo /etc/init.d/apache2 restart
當然, 我們可以用 phpinfo() 來檢查 module 是否已經載入
2008年3月16日星期日
2008年2月24日星期日
目前已經安裝過的 Linux 程式清單
這是我目前已經安裝過的 Linux 程式清單:
Programming
1. Anjuta IDE
2. Code::Blocks IDE
3. BlueFish Editor
4. KDevelop
5. Meld Diff Viewer
6. wxFormBuilder
7. Umbrello
8. NetBeans
XML Editor
1. XML Copy Editor
2. XPontus XML Editor
Video Editor
1. Cinelerra
2. LiVES
3. Open Movie Editor
Subtitle Editor
1. AegiSub
2. KSubtile
3. Subtitle Editor
CHM viewer
1. CHM Viewer
2. xCHM
3. ChmSee
SVN Client
1. KdeSVN
2. RapidSVN
3. SubdiverSVN
Desktop Capture software
1. gtk-recordMyDesktop
Media Player
1. Gnash SWF Viewer
2. MPlayer Movie Player
3. RealPlayer 10
Internet
1. FileZilla
2. gFTP
3. Mozilla Thunderbird
Drawing
1. GUN Paint
2. Dia Diagram Editor
3. KolourPaint
Misc.
1. Ark
2. StarDict
3. Partition Editor
Programming
1. Anjuta IDE
2. Code::Blocks IDE
3. BlueFish Editor
4. KDevelop
5. Meld Diff Viewer
6. wxFormBuilder
7. Umbrello
8. NetBeans
XML Editor
1. XML Copy Editor
2. XPontus XML Editor
Video Editor
1. Cinelerra
2. LiVES
3. Open Movie Editor
Subtitle Editor
1. AegiSub
2. KSubtile
3. Subtitle Editor
CHM viewer
1. CHM Viewer
2. xCHM
3. ChmSee
SVN Client
1. KdeSVN
2. RapidSVN
3. SubdiverSVN
Desktop Capture software
1. gtk-recordMyDesktop
Media Player
1. Gnash SWF Viewer
2. MPlayer Movie Player
3. RealPlayer 10
Internet
1. FileZilla
2. gFTP
3. Mozilla Thunderbird
Drawing
1. GUN Paint
2. Dia Diagram Editor
3. KolourPaint
Misc.
1. Ark
2. StarDict
3. Partition Editor
2007年8月19日星期日
離線下利用 APTonCD 來更新 Ubuntu Linux
由於改用 Ubuntu Linux, 所以又需要研究如何在離線下作出更新. 我花了不少時間後終於找到一個比較方便的方法:
1. 先在一台可以上網的 Ubuntu Linux 電腦上用 Synaptic Package Manager 來下載 deb 檔案, 注意在 Preferences 中選擇 "Only delete packages which are no longer available":

2. 如果沒有安裝 AptonCD, 那就安裝它 (apt-get install aptoncd). 另外, 如果目標電腦沒有 APTonCD, 記得將 aptoncd_0.1ubuntu1_all.deb 放在 CD / DVD 上
3. 執行 APTonCD, 然後按 "Create APTonCD" 按鈕
4. 我覺得 APTonCD 比其他方法 (如: apt-zip) 好的地方就是你可以用比較方便的方法來增加自己下載的 deb 檔案在 CD / DVD 上: 在 APTonCD 畫面上按 "Add Package..." 按鈕就可以增加自己下載的 deb 檔案:

5. 在 Options 下我們可以選擇 Medium type, 選好後按 "OK" 按鈕, APTonCD 便會造一個 ISO 檔案出來.

6. 我們可以將 ISO 燒成 CD / DVD, 然後將 CD / DVD 拿到另一台 Ubuntu Linux 上.
7. 在 CD / DVD 上, 所有 deb 檔案都放在 packages 之下, 如果之前 APTonCD 將 APTonCD 的 deb 檔案放在 CD / DVD 內, 我們可以先安裝 APTonCD 在 Ubuntu Linux 電腦內:

8. 開啟 APTonCD, 然後選 "Restore" 頁, 再按 "Add CD/DVD" 按鈕. APTonCD 會將 CD / DVD 內的 deb 檔案資料載入電腦上. 完成後離開 APTonCD.
9. 當我們再開啟 Synaptic Package Manager, 就會看見 CD /DVD 內的 deb packages. 然後我們就可以更新系統.
1. 先在一台可以上網的 Ubuntu Linux 電腦上用 Synaptic Package Manager 來下載 deb 檔案, 注意在 Preferences 中選擇 "Only delete packages which are no longer available":

2. 如果沒有安裝 AptonCD, 那就安裝它 (apt-get install aptoncd). 另外, 如果目標電腦沒有 APTonCD, 記得將 aptoncd_0.1ubuntu1_all.deb 放在 CD / DVD 上
3. 執行 APTonCD, 然後按 "Create APTonCD" 按鈕
4. 我覺得 APTonCD 比其他方法 (如: apt-zip) 好的地方就是你可以用比較方便的方法來增加自己下載的 deb 檔案在 CD / DVD 上: 在 APTonCD 畫面上按 "Add Package..." 按鈕就可以增加自己下載的 deb 檔案:

5. 在 Options 下我們可以選擇 Medium type, 選好後按 "OK" 按鈕, APTonCD 便會造一個 ISO 檔案出來.

6. 我們可以將 ISO 燒成 CD / DVD, 然後將 CD / DVD 拿到另一台 Ubuntu Linux 上.
7. 在 CD / DVD 上, 所有 deb 檔案都放在 packages 之下, 如果之前 APTonCD 將 APTonCD 的 deb 檔案放在 CD / DVD 內, 我們可以先安裝 APTonCD 在 Ubuntu Linux 電腦內:

8. 開啟 APTonCD, 然後選 "Restore" 頁, 再按 "Add CD/DVD" 按鈕. APTonCD 會將 CD / DVD 內的 deb 檔案資料載入電腦上. 完成後離開 APTonCD.
9. 當我們再開啟 Synaptic Package Manager, 就會看見 CD /DVD 內的 deb packages. 然後我們就可以更新系統.
訂閱:
文章 (Atom)


