1.先down乙個php下來,編譯安裝:(編譯環境只做測試擴充套件用)
wget
tar zxvf php-5.2.13.tar.gz
cd php-5.2.13
./configure --prefix=/csdn_verify_auth/php --with-config-file-path=/csdn_verify_auth/php/etc
make zend_extra_libs='-liconv'
make install
cp php.ini-dist /csdn_verify_auth/php/etc/php.ini
2.修改一下vi /csdn_verify_auth/php/etc/php.ini中的extension_dir = 「./」
修改為extension_dir = "/csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613"
並在此行後增加以下,然後儲存:
extension = "csdn_verify_auth.so"
csdn_verify_auth改為你開發的擴充套件的名字
3.開始建立擴充套件專案
進入原始碼目錄
cd /csdn_verify_auth/php-5.2.13/ext/
./ext_skel --extname=csdn_verify_auth
建立名字為csdn_verify_auth的專案,最終會生成csdn_verify_auth.so
4.更改配置和擴充套件程式開發
vi ext/csdn_verify_auth/config.m4
根據你自己的選擇將
dnl php_arg_with(csdn_verify_auth, for csdn_verify_auth support,去掉dnldnl make sure that the comment is aligned:
dnl [ --with-csdn_verify_auth include csdn_verify_auth support])
或者將
dnl php_arg_enable(csdn_verify_auth, whether to enable csdn_verify_auth support,去掉dnldnl make sure that the comment is aligned:
dnl [ --enable-csdn_verify_auth enable csdn_verify_auth support])
vi ext/csdn_verify_auth/php_csdn_verify_auth.h
將php_function(confirm_csdn_verify_auth_compiled); /* for testing, remove later. */
更改為php_function(csdn_verify_auth);
vi ext/csdn_verify_auth/csdn_verify_auth.c
將zend_function_entry php5cpp_functions = /* must be the last line in php5cpp_functions */
};
更改為zend_function_entry php5cpp_functions = /* must be the last line in php5cpp_functions */
};
在最後新增:
php_function(csdn_verify_auth)
5.編譯生成so檔案
cd /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/
/csdn_verify_auth/php/bin/phpize
./configure --with-php-config=/csdn_verify_auth/php/bin/php-config
make
mv /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/modules/csdn_verify_auth.so /csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613
cd ../../../
6.測試擴充套件
vi /csdn_verify_auth/hello.php
csdn_verify_auth();
?>
/csdn_verify_auth/php/bin/php hello.php
hello world.
ok
主要用到的api就那麼幾個:————————-end——————————zend_num_args()、zend_parse_parameters(args tsrmls_cc, 「ss」, &username, &username_length, &hash, &hash_length) 引數接收系列
return_false。。return_stringl(s, l, dup)等返回系列函式
…………………
其他的基本就是c了,再次感嘆下,學好c語言,走到哪都不怕。
linux下安裝php擴充套件
記錄一下在lnmp環境中安裝php的pdo和pdo mysql 擴充套件我的用lnmp一鍵安裝包安裝了php5.6版本,現在需要安裝pdo擴充套件。在網上看了按照乙個部落格的說明安裝成功了,所以記錄一下。擴充套件檔案 在lnmp壓縮檔案 src php5.6.22 ext資料夾中有各種常用的擴充套件...
Linux下編寫php擴充套件
linux下編寫php擴充套件 1 所需 phpize 如果一開始是使用原始碼編譯裡面就有 php原始碼 2 到原始碼目錄下ext目錄裡面,執行.ext skel extname myext 3 生成擴充套件框架後,需要進入裡面修改m4檔案,php arg enable myext,whether ...
Linux下php新增新擴充套件
今天幹了一件很嚴重的錯事,用tp開發完新專案後,傳到伺服器上報錯,網上查了一下,說未載入pdo,就載入吧。找到配置檔案php.ini,搜到 extension php pdo mysql.dll,去掉前面的注釋,重啟伺服器,看似一切正常,卻大錯特錯。linux下應該是.so,而不是.dll,php原...