php扩展,一个helloworld的实现_PHP教程
php扩展,一个helloworld的实现
php -v
PHP 5.5.9-1ubuntu4.7 (cli) (built: Mar 16 2015 20:47:39)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
配置参考文章:http://blog.csdn.net/niujiaming0819/article/details/8543028
本文也采用参考文章中的步骤过程为本机实现过程
step 1. 下载php源码包,php官网下载即可,本次使用的是php5.6.8版本
step 2. 解压压缩包,进入解压后的包(mysoft$ cd php-5.6.8/) ,同过 ls命令查看源码包中的文件目录,进入ext文件夹(cd ext)

step 3.建立扩展开发框架 ./ext_skel --extname=helloworld
执行上面的命令建立扩张开发的框架,这是你会发现ext文件夹下面多了一个叫helloworld的文件夹,同时命令行也输出了一些文本,
会提示你生成扩展的大致步骤。

step 4. 进入php源码的根目录, 编辑文件 vim ext/helloworld/config.m4
去掉这个文件中的几行注释大致会在第16-19行之间,具体版本也许不一样之后保存文件(:wq)
step 5. 在php源码根目录执行命令 ./buildconf --force
step 6. 在php源码的根目录编译php程序,注意命令为 ./configure --with-helloworld
最后出现的error,没有处理
step 7. 进入我们的扩展目录helloworld,执行命令 phpize(通过 sudo apt-get install php5-dev 安装 phpize),此时你的扩展目录会生成很多文件,可以用于后期编译。
step 8.在helloworld目录编译我们的扩展 ./configure --with-php-config=/usr/bin/php-config(使用你自己环境的php-config) --enable-helloworld
你可以通过一条命令查找你的php-config文件的位置(find / -name php-config)如图:我的地址为/usr/bin/php-config
step 9 .进入扩展helloworld目录,编辑文件php_helloworld.h,在最后一行添加函数 PHP_FUNCTION(helloworldTest);
helloworldTest 可以改成你喜欢的名字,之后保存退出
step 10. 用vim 打开helloword.c,在helloworld.c中实现我们的函数,之后 将helloworldTest函数加入到helloworld_functions[]中,保存退出
step 11.执行make命令 make 编译扩展,我在运行的过程中还是比较顺利的。如果出现错误,请认真看前面步骤是否有错,我在第一遍做的时候也有错一般都是前面步骤有问题。
step12.将编译生成的helloworld.so 文件复制到你本机的php扩展目录
扩展目录可以通过 php -r phpinfo(); | grep extension_dir 查看本机php的扩展路径
step 13.配置php.ini 开启 helloworld.so 扩展
查看php.ini 的位置(php -r phpinfo(); | grep php.ini )
vim 打开 php.ini 文件 sudo vim /etc/php5/cli/php.ini
在文件最后添加扩展 (extension=helloworld.so)
通过 php -r phpinfo(); | grep helloworld 测试
step 14 .测试扩展(php -r echo helloworldTest();)
在这个过程中我曾按照原作者的步骤去尝试,结果会出现一个错误
Segmentation fault” (core dumped)
经过调试,时原作者在helloworld.c 文件中添加到helloworld_functions[] 时将 PHP_FE_END 换成了 {null,null,null} 而自己再编译的时候并没有出错却也给PHP_FE_END注释 了,修改之后,重新编译,复制就可以了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

查看phpinfo()函數輸出、使用命令列工具和檢查PHP設定檔均可以查看php用了哪些擴充功能。 1.查看phpinfo()函數輸出,創建一個簡單的PHP腳本,將這個腳本保存為phpinfo.php,並將其上傳到您的網頁伺服器,在瀏覽器中存取此文件,使用瀏覽器的搜尋功能,在頁面中尋找關鍵字"extension"或"extension_loaded",以找到有關擴充功能的資訊即可。

如何使用PHP擴充PDO連接Oracle資料庫導語:PHP是一種非常流行的伺服器端程式語言,而Oracle是一款常用的關係型資料庫管理系統。本文將介紹如何使用PHP擴充PDO(PHPDataObjects)來連接Oracle資料庫。一、安裝PDO_OCI擴充要連接Oracle資料庫,首先需要安裝PDO_OCI擴充。以下是安裝PDO_OCI擴充的步驟:確保

如何使用PHP擴充SuiteCRM的報告產生功能SuiteCRM是一款功能強大的開源CRM系統,它提供了豐富的功能來幫助企業管理客戶關係。其中一個重要的功能是報告生成,使用報告可以幫助企業更了解業務狀況,並做出正確的決策。本文將介紹如何使用PHP擴充SuiteCRM的報告產生功能,並提供相關的程式碼範例。在開始之前,需要確保已經安裝好了SuiteCRM,

在使用PHP進行開發時,我們可能需要使用一些PHP擴充。這些擴充功能可以為我們提供更多的功能和工具,使我們的開發工作更有效率和便利。但在使用這些擴充功能之前,我們需要先進行安裝。本篇文章將為您介紹PHP擴充的安裝方法。一、什麼是PHP擴充? PHP擴充是指為PHP程式語言提供額外功能和服務的元件。這些組件可以透過PHP的擴充機制進行安裝和使用。 PHP擴充可以幫助我們處

PHP是一種流行的伺服器端腳本語言,它可以處理網頁上的動態內容。 PHP的geoip擴充功能可以讓你在PHP中取得有關使用者位置的資訊。在本文中,我們將介紹如何使用PHP的geoip擴充。什麼是PHP的GeoIP擴充? PHP的geoip擴展是一個免費的、開源的擴展,它允許你獲取有關IP位址和位置資訊的資料。此擴充功能可以與GeoIP資料庫一起使用,這是一個由MaxMin

宝塔面板是一款开源的服务器管理面板,在为网站运营者提供便捷的网站管理、数据库管理、SSL证书管理等服务的同时,还提供了强大的PHP扩展和PHP版本管理功能,让服务器管理变得更加简单和高效。一、PHP扩展PHP扩展是一种用来增强PHP功能的模块,通过安装PHP扩展可以实现更多的功能和服务,比如:加速器:加速器可以显著地提高PHP性能,通过缓存PHP脚本,减轻服

完整指南:如何使用PHP擴充SimpleXML讀取和處理XML資料簡介:在現代的Web開發中,處理和操作XML資料是一項非常常見的任務。 PHP作為一種強大的伺服器端腳本語言,提供了多種擴充功能和功能,用於處理和操作XML資料。其中,SimpleXML擴充是一種特別有用的工具,可以簡化XML資料的讀取和處理過程。本文將為您提供一個完整的指南,介紹如何使用PHP擴展

PHP擴充開發是創建自訂功能、擴展php核心功能並建立更強大的應用程式的藝術。它為PHP世界開闢了新的可能性,允許開發人員超越語言的基本限制。本文將帶您踏上PHP擴展開發的旅程,從基礎概念到進階技巧,為您提供全面的知識和實踐指南。 PHP擴充開發基礎在開始PHP擴充開發之前,您需要了解一些基礎概念。什麼是PHP擴充? PHP擴充是一種動態連結函式庫(DLL),它可以擴充PHP核心功能,提供新的資料型別、函式和類別。 PHP擴充的優點PHP擴充具有許多優點,包括:可擴充性、靈活性、效能最佳化和程式碼重複使用。 PHP
