第一種方法:使用PHP源碼包自帶的ext_skel工具。 ~/public_html/php-5.3.13/ext> ./ext_skel --extname=sample11 Creating directory sample11 Creating basic files: config.m4 config.w32 .svnignore sample11.c php_sample11.h CREDITS EXPERIMENTAL tests/001.phpt sample11.php [done]. To use your new extension, you will have to execute the following steps: 1. $ cd .. 2. $ vi ext/sample11/config.m4 3. $ ./buildconf 4. $ ./configure --[with|enable]-sample11 5. $ make 6. $ ./php -f ext/sample11/sample11.php 7. $ vi ext/sample11/sample11.c 8. $ make Repeat steps 3-6 until you are satisfied with ext/sample11/config.m4 and step 6 confirms that your module is compiled into PHP. Then, start writing code and repeat the last two steps as often as necessary. 第二種方法:使用CodeGen_PECL。 /usr/local/services/php/bin> sudo ./pear install CodeGen_PECL downloading CodeGen_PECL-1.1.3.tgz ... Starting to download CodeGen_PECL-1.1.3.tgz (102,640 bytes) ........................done: 102,640 bytes install ok: channel://pear.php.net/CodeGen_PECL-1.1.3 /usr/local/services/php/bin> sudo ln -s /usr/local/services/php/bin/pecl-gen /usr/local/bin/ ~/public_html/php-5.3.13/ext> pecl-gen --extname=sample12 Strict Standards: Declaration of CodeGen_PECL_Element_Constant::docFooter() should be compatible with that of CodeGen_Element::docFooter() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Constant.php on line 341 Strict Standards: Declaration of CodeGen_PECL_Element_Resource::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Resource.php on line 354 Strict Standards: Declaration of CodeGen_PECL_Element_Ini::docFooter() should be compatible with that of CodeGen_Element::docFooter() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Ini.php on line 443 Strict Standards: Declaration of CodeGen_PECL_Element_Logo::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Logo.php on line 259 Strict Standards: Declaration of CodeGen_PECL_Element_Method::setCode() should be compatible with that of CodeGen_PECL_Element_Function::setCode() in www.2cto.com/usr/local/services/php/lib/php/CodeGen/PECL/Element/Method.php on line 471 Strict Standards: Declaration of CodeGen_PECL_Element_Stream::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Stream.php on line 239 Your extension has been created in directory ./sample12. See ./sample12/README and/or ./sample12/INSTALL for further instructions. 注:報錯“Strict Standards: Declaration of […] should be compatible with that of […] in […]”是因為PHP5.3.0+要求子類聲明必須在父類聲明,請直接修改php.ini。 error_reporting = E_ALL & ~E_STRICT 以上只是給出了生成PHP擴展的最簡單的命令,ext_skel和pecl-gen還支持多種參數生成更加豐富的擴展,請自行參考相關幫助文檔。 ~/public_html/php-5.3.13/ext> ./ext_skel --help ~/public_html/php-5.3.13/ext> pecl-gen --help