如果 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)
注意的是在等號兩邊是沒有空格的.
2008年4月27日星期日
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 是否已經載入
訂閱:
文章 (Atom)