文档章节

linuxdeepin(ubuntu)下php扩展开发

wankaiming
 wankaiming
发布于 2012/12/28 16:17
字数 402
阅读 631
收藏 4
点赞 2
评论 1

1.首先安装好php运行环境
安装apache
apt-get install apache2
安装php
apt-get install libapache2-mod-php5 php5
安装php扩展
apt-get install php5-gd php5-mysql
安装mysql
apt-get install mysql-server mysql-client
安装phpmyadmin
apt-get install phpmyadmin
建立软链接
ln -s /usr/share/phpmyadmin /var/www
重启apache服务
service apache2 restart
网站跟目录设置为权限可写
sudo chmod 777 /var/www    


2.下载php源代码 
1)先使用phpinfo查看php版本
2)根据版本号,在配 http://php.net/releases/ 上面下载对应版本的源代码(我的版本是php5.3.10)
3)解压源代码 tar jxvf FileName.tar.bz2 (FileName是你下载的文件名称)


3.生产扩展框架
1) cd php-5.3.10/ext/
2) ./ext_skel --extname=test (test是你扩展的名字)
3)cd test/ (进入生成的文件夹)
4) vim config.m4
把这些文字的dnl删除
PHP_ARG_ENABLE(test, whether to enable test support,
Make sure that the comment is aligned:
[  --enable-test           Enable test support])


4.编译安装
1) /usr/bin/phpize
2) ./configure
3) make
4) sudo make install
5) 在/etc/php5/cli/php.ini(命令行php的配置,可以使用 php -m|less 里找到) 和 /etc/php5/apache2/php.ini(web的配置,可以在 phpinfo 里找到) 里面加入 extension = test.so
6) service apache2 restart


5.在web目录下面建立test.php,加入以下代码
<?php
echo confirm_test_compiled("Hello");
?>


如果出现Congratulations! You have successfully modified ext/test/config.m4. Module Hello is now compiled into PHP.
说明扩展已经制作成功了。


6.如果需要进一步来加强自己扩展的功能,主要是编辑 php_test.h 和 test.c,最主要实现功能的PHP_FUNCTION函数的具体编写
可以参考的资料:
http://php.net/manual/en/internals2.ze1.zendapi.php
http://blog.csdn.net/21aspnet/article/details/7382199

© 著作权归作者所有

共有 人打赏支持
wankaiming

wankaiming

粉丝 71
博文 226
码字总数 64083
作品 0
广州
高级程序员
加载中

评论(1)

jooker
jooker
出错安装不上,后为更新了一下 apt-get update 才可以
Linux Deepin 11.12 发行注记

Linux Deepin 11.12 最终版,正式发布了! 至诚感谢社区的爱好者和支持者们、武汉的设计团队、开发团队,每一位成员都为此付出了巨大努力。 与 Linux Deepin 11.06 版本相比,Linux Deepin ...

红薯 ⋅ 2011/12/31 ⋅ 12

年底盘点:LinuxDeepin 的 2012!

在末日今天,盘点下Linux Deepin的2012年。Linux Deepin是目前国内开源社区和国际社区异军突起的一个Linux版本。总的来说,好坏皆有,但不可否认:Linux Deepin在做着正确的事情。在本文中,...

火耳 ⋅ 2012/12/21 ⋅ 31

基于Qt库的下载工具--PointDownload

PointDownload 点载,是一个能帮助你方便地从网络上下载各种文件的软件。现在已经支持主流的各种下载协议,包括迅雷的thunder://和QQ旋风的下载协议。当前提供的软件安装包支持的操作系统有:...

choldrim ⋅ 2016/04/18 ⋅ 0

LinuxDeepin 10.06 正式发布

LinuxDeepin 开发团队已于昨日发布了 LinuxDeepin 10.06 的正式版本。该版本包含如下特性: 基于 Ubuntu 10.04 LTS 启动速度大幅提高 采用 ibus-sunpinyin(目前 Linux 下最好的整句输入法)...

红薯 ⋅ 2010/07/24 ⋅ 3

UbuntuKylin 对国内 Linux 桌面厂商的影响

本文为原创,首发在开源中国站点,如果转载,请注明开源中国哟。本文针对近期的 Ubuntukylin 项目写了一点自己的观点。 为什么选择UbuntuKylin? 很明显,Ubuntu在Canonical公司的运营下,成...

wangzhehome ⋅ 2013/03/26 ⋅ 15

LinuxDeepin 11.06 beta2 发布

Beta2 比较大的 2 项改进是: 1. 从该版本开始,Linux Deepin 的 ISO 镜像启用 Hybrid 模式。该模式的好处是,可以方便 U 盘/移动硬盘引导,不需要专门工具来来让 U 盘、移动硬盘能引导了。要...

红薯 ⋅ 2011/06/20 ⋅ 2

IRC,在UBUNTU中使用XCHAT

写代码写累了,想找人聊天,可是所有的聊天工具都让我觉着不是很好玩(所以自己想做个),想去IRC,一直没好好用过,就刚开始接触UBUNTU的时候,因为解决不了的问题使用过网页版的,这里记录...

lyle_5 ⋅ 2012/10/24 ⋅ 0

Ubuntu 上体验 Linux Deepin 的软件中心

LinuxDeepin 11.06 beta2 已于前两日正式发布,详情见官方通告。Linux Deepin 中最大的特色之一是,用自已开发的更适合中文用户使用的软件中心取代了 Ubuntu 自带的 Software Center,截图如...

鉴客 ⋅ 2011/06/21 ⋅ 4

Linux Deepin 11.12 Beta 版本发布

Linux Deepin 项目团队自豪地宣布:Linux Deepin 11.12 Beta 版本发布 下面是对Linux Deepin 11.12 Beta 版本的介绍: 一、Deepin GNOME Shell 1-顶部面板 上图是定制后的顶部“面板”。可以...

红薯 ⋅ 2011/12/06 ⋅ 10

Linux Deepin 11.12 RC 版本发布

Linux Deepin 项目开发团队今天自豪地向大家宣布:Linux Deepin 11.12 RC版本发布。Linux Deepin 11.12 RC 版本在 Linux Deepin 11.12 Beta2 基础上继续进行精心制作。Linux Deepin 11.12 RC...

红薯 ⋅ 2011/12/26 ⋅ 13

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 22分钟前 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 27分钟前 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 36分钟前 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 36分钟前 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 37分钟前 ⋅ 0

React Native & Weex 区别

JS引擎 Weex使用V8, React native使用JSCore JS开发框架 ( Js Framework ) Weex基于vue.js(2W+ star)。小巧轻量的前端开发框架,组件化,数据绑定,2.0引入virtual dom。 ReactNative使用...

东东笔记 ⋅ 45分钟前 ⋅ 1

UIkit 分页组件动态加载简单实现

1. 问题描述 使用过UIkit分页组件的都清楚,UIkit的分页不能动态刷新数据,也就是不能在点击下一页的时候,动态从后台加载数据,并且刷新页数以及该页数上的数据,下面是一个简单实现,没有做...

影狼 ⋅ 46分钟前 ⋅ 0

Mobx入门之三:Provider && inject

上一节中<App/>组件传递状态temperatures给children -- <TemperatureInput />,如果组建是一个tree, 那么属性的传递则会非常繁琐。redux使用Provider给子组件提供store, connect将子组件和s...

pengqinmm ⋅ 48分钟前 ⋅ 0

魔兽世界 7.0版本 S23/S24/S25全职业普通+精锐套

  死亡骑士   (联盟)   (部落)   (精锐)   恶魔猎手   (联盟)   (部落)   (精锐)   德鲁伊   (联盟)   (部落)   (精锐)   猎人   (联盟) ...

wangchen1999 ⋅ 55分钟前 ⋅ 0

maven顶级pom和子pom的版本号批量修改

当一个版本发布,新起一个版本时,我们只需要手动修改一下项目中pom.xml的版本号就可以了。但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐了。还好,m...

ArlenXu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部