2010年7月3日星期六
Netbeans 有關 PHP Debug 設定
如果不想在 Debug PHP 的過程中每次進入新的 PHP 頁時停下來,我們可以在 Options-->PHP-->General 中不選擇 Stop at First Line 就可以了.
2009年9月13日星期日
How to setup Netbeans 6.7 PHP debug environment in Ubuntu 8.04
1. Enable personal HTTP directory
1.1 use sudo command to create two symbolic links in /etc/apache2/mod-enabled directory:
sudo ln -s ../mods-available/userdir.conf userdir.conf
sudo ln -s ../mods-available/userdir.load userdir.load
1.2 create HTTP directory in the user's home directory:
makedir public_html
1.3 restart apache web server
sudo /etc/init.d/apache2 restart
1.4 test personal HTTP directory
use web browser to browse http://localhost/~[username]/
2. Enable xdebug
2.1 install xdebug DEB package
2.2 add the following lines in /etc/php5/apache2/php.ini:
zend_extension=xdebug.so
xdebug.remote_enable=on
3. Setup Netbeans PHP project
3.1 enable "copy files from sources folder to another location" and set the folder to user HTTP directory
3.2 in "run Configuration" page, set "Project URL" to user HTTP directory
1.1 use sudo command to create two symbolic links in /etc/apache2/mod-enabled directory:
sudo ln -s ../mods-available/userdir.conf userdir.conf
sudo ln -s ../mods-available/userdir.load userdir.load
1.2 create HTTP directory in the user's home directory:
makedir public_html
1.3 restart apache web server
sudo /etc/init.d/apache2 restart
1.4 test personal HTTP directory
use web browser to browse http://localhost/~[username]/
2. Enable xdebug
2.1 install xdebug DEB package
2.2 add the following lines in /etc/php5/apache2/php.ini:
zend_extension=xdebug.so
xdebug.remote_enable=on
3. Setup Netbeans PHP project
3.1 enable "copy files from sources folder to another location" and set the folder to user HTTP directory
3.2 in "run Configuration" page, set "Project URL" to user HTTP directory
2008年5月1日星期四
在 PHP Extension 中加入 static 和 dynamic library
如果我們要在 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)
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年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)
注意的是在等號兩邊是沒有空格的.
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)