ubuntu12.04使用c编写php扩展模块教程分享

系统是ubuntu 12.04,已经安装好了apache和php,php的版本是5.3.10。

以下操作如果碰到权限方面的问题,建议切换成root操作。

1、下载源码

签出php 5.3.10的源代码


代码如下:

$ svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_3_10/

Tips:如果没有这个命令,需要先安装svn,在ubuntu下直接使用apt-get安装就OK了:

代码如下:

$ sudo apt-get install subversion

关于php源码,如需要了解更多信息,可以查看php维基中关于svn的说明:https://wiki.php.net/vcs/svnfaq

2、创建模块

a、源码签出完毕后,进入源码ext目录,先用ext_skel创建一个模块, 模块名为my:

代码如下:

$ ./ext_skel --extname=my

b、进入my模块:

代码如下:

$ cd my

c、修改config.m4文件,找到如下内容:

代码如下:

dnl PHP_ARG_WITH(my, for my support,
dnl Make sure that the comment is aligned:
dnl [  --with-my             Include my support])

将前面的dnl去除,最后如下:

代码如下:

PHP_ARG_WITH(my, for my support,
Make sure that the comment is aligned:
[  --with-my             Include my support])

然后保存文件。

Tips:如果需要测试下修改是否正确,可以使用php my.php来测试下:

代码如下:

$ php my.php
confirm_my_compiled

Congratulations! You have successfully modified ext/my/config.m4. Module my is now compiled into PHP.

上面confirm_my_compiled就是模块默认的函数,后面将该模块加载后,就可以调用这个函数了。

3、编译模块

还是在my模块的目录下执行下面命令:

代码如下:

$ phpize
$ ./configure
$ make
$ make install

编译成功后,会提示这样的信息:


代码如下:

Installing shared extensions: /usr/lib/php5/20090626+lfs/

表示模块已经编译完成,并且复制到php模块目录了。

Tips:如果phpize命令没有找到,需要安装下php5-dev,在ubuntu下直接使用apt-get安装就OK了。

代码如下:

$ apt-get install php5-dev

4、加载模块

编辑文件:


代码如下:

$ vim /etc/php5/conf.d/my.ini

增加如下内容,表示加载my.so模块,然后保存。

代码如下:

extension=my.so

重新启动apache

代码如下:

$ /etc/init.d/apache2 restart

在web环境下,可以用phpinfo看看是否加载my模块了。终端可以使用php -i | less查看。

5、编写测试程序

如果上面都执行顺利,那么my模块就加载进来了,my模块的默认的一个方法confirm_my_compiled也就可以调用了。编写php测试文件:


代码如下:

echo confirm_my_compiled("Hello");

执行测试文件,如果看到下面的输出,那么就成功了。


代码如下:

Congratulations! You have successfully modified ext/my/config.m4. Module Hello is now compiled into PHP.

(0)

相关推荐

  • Ubuntu中搭建Nginx、PHP环境最简单的方法

    前言:百度出来的结果好坑爹,而且某些文章说别人坑爹,可他自己也坑爹.求业界良心啊.还是谷歌靠谱. 系统环境:Ubuntu 13 和 Linux Mint 15都通过. 默认安装的是nginx 1.2.5,php5.4.9 先安装: 复制代码 代码如下: sudo apt-get install nginx php5-fpm 我是在新安装的Ubuntu13上测试通过的,真的只安装这两个东西就够了. 然后编辑配置文件. 复制代码 代码如下: sudo gedit /etc/nginx/site-av

  • ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)

    由于只是开发环境,所以都是选择比较简单的apt-get安装方式 ,但中间也遇到一点问题. 首先安装nginx nginx的安装和配置其实很简单,nginx本身非常轻量级, 直接 sudo apt-get install nginx 就可以了 他的配置文件是在/etc/nginx/里面,网站项目路径是在/var/www里面,安装之后一定要确保nginx的启动账户有对网站目录的访问权限,否则会报错. 第二步,安装cgi linux底下的cgi程序非常多,在这里我选择的是php5-fpm 方便  在这

  • 在Ubuntu 14.04上部署 PHP 环境及 WordPress

    软件及版本选择 Ubuntu 14.04 Ubuntu 是目前用户数量数一数二的发行版,背后有大土豪维护,可以说是轻量级用户的最佳选择.而 14.04 是目前最新的 LTS 版本,目前已经发布了半年了,基本是目前支持最好的版本. Nginx Nginx 是一个轻量级的,配置灵活,擅长并发的 Web 服务器. PHP-FPM PHP-FPM 是目前官方推荐的最佳的运行模式. MariaDB MySQL 的替代品,毕竟目前 MySQL 的创始人已经不建议我们使用 MySQL 了. 基本配置 通常当你

  • 解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql

    此教程中使用的相关IP等设置,在你的环境中要做相应修改.使用之前更新apt-get,因为服务器基本上是一个裸系统apt-get update;apt-get upgrade;1 我们使用root账户进行安装,首先切换到root账户,输入命令:sudo su 2 安装 MySQL 5输入命令:apt-get install mysql-server mysql-client安装过程中需要设置root账户密码,系统会作以下提示:New password for the MySQL "root&quo

  • Ubuntu 16.04源码编译安装PHP 5.6.29的教程

    1. 下载地址:http://www.php.net/downloads.php 2.解压 tar -zxvf PHP-5.6.29.tar.gz 3.配置 ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs 注意:这里的-with-apxs2=/usr/local/apache/bin/apxs选项,其中apxs是在安装Apache时产生的,路径根据实际情况设置.apxs是一个为Apache HTT

  • ubuntu12.04使用c编写php扩展模块教程分享

    系统是ubuntu 12.04,已经安装好了apache和php,php的版本是5.3.10. 以下操作如果碰到权限方面的问题,建议切换成root操作. 1.下载源码 签出php 5.3.10的源代码 复制代码 代码如下: $ svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_3_10/ Tips:如果没有这个命令,需要先安装svn,在ubuntu下直接使用apt-get安装就OK了: 复制代码 代码如下

  • ubuntu16.04设置宽带连接的图文教程

    第一步,安装pppoecof 打开终端,输入命令sudo apt-get install pppoeconf. 安装成功之后,开始手动配置. 第二步,配置连接 打开终端,输入命令pppoeconf. 接下来会看到一系列配置信息,包括用户名.密码(宽带连接的用户名密码),配置好之后会有一些提示信息,一路选择yes即可.到此,宽带连接已经成功连上,Plugin rp-pppoe.so loaded.此信息说明连接成功. 下次开机时手动连接 打开终端,输入命令pon dsl-provider即可连接,

  • Unbuntu16.04安装搜狗拼音输入法的图文教程

    为了让自己的电脑相对安全一些,我安装了ubuntu的物理机 因为要经常输入汉字,我就在unbuntu里面安装了搜狗输入法 1.在搜狗输入法官网下载Linux版本的安装包: http://pinyin.sogou.com/linux/ ,记住下载自己机子对应的版本(看清楚是32位还是64位) 2.找到文件,然后终端敲击命令:sudo dpkg -i sogoupinyin_2.1.0.0082_amd64.deb 发现并没有安装成功,看以下错误提示,发现关于fcitx的一些东西并没有安装,fcit

  • Ubuntu16.04/树莓派Python3+opencv配置教程(分享)

    无论是Windows.Linux.还是树莓派 .配置python3的opencv环境都是让人头大的一件事情,尤其是许多人用pip安装以后,发现opencv虽然装上了,但是却装在了系统原生的python2下. 笔者也是经历过很多次失败之后,才安装成功. 本文采用编译的方法配置opencv,每一步都有ubuntu和树莓派的分别配置,由于两个系统极其相似(可以说是基本一样),所以并在一文详解. 一般来说,只要按照步骤去安装配置,就不会出错.废话不多说,开始表演! step1:准备工作 1.ubuntu

  • Ubuntu 18.04安装MongoDB 4.0 的教程详解

    首先,导入包管理的公钥. Ubuntu包管理工具(即dpkg和apt)要求发行商使用GPG密钥签署包,从而确保包的一致性和真实性. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 然后,创建MongoDB的数据源文件 echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubun

  • 详解Ubuntu16.04安装Docker、nvidia-docker的教程

    Docker安装 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update 2.安装需要的包 sudo apt install apt-transport-https ca-certificat

  • Ubuntu 16.04/18.04 安装Pycharm及Ipython的教程

    Ubuntu 18.04下 1.安装python 2._版本,输入 sudo apt install python 命令行输入 python或python3会打开对应的版本. 输入 exit()或Ctrl + D可以退出python的shell. 2.ipython 2._ 版本安装,输入 sudo apt install ipython, ipython 3._ 版本安装,输入 sudo apt install ipython3 ipython的shell中,直接输入 exit 即可退出. 3

  • Ubuntu 18.04上安装 phpMyAdmin的详细教程

    我们将安装 phpMyAdmin 在 Ubuntu18.04 上配合 Apache 一起工作. 在安装 phpMyAdmin 之前需要已经安装了LAMP栈并提供了web页面. 如果没有安装可以参照 Ubuntu 18.04上安装Apache,MySQL,PHP 来先安装. 1. 安装 phpMyAdmin 让我们从更新包列表开始,并在Ubuntu 18.04上安装phpMyAdmin.下面我们有两个用&&分隔的命令.第一个命令将更新包列表,以确保您获得phpMyAdmin的最新版本和依赖项

  • 安装Ubuntu20.04与安装NVIDIA驱动的教程

    安装Ubuntu 20.04 安装NVIDIA 驱动 配置Pytouch 和tensorflow环境 本机环境:戴尔G3 3579 win10 ,系统在128固态硬盘 安装Ubuntu20.04 1开机按F2进入BIOS 2 security boot 设置disable 3 参考 https://www.jb51.net/article/173277.htm 安装NVIDIA驱动 最开始安装驱动,首先禁止nouveau 然后卸载原先的nvidia驱动(如果有) 参考: https://www.

  • Ubuntu 20.04 CUDA&cuDNN安装方法(图文教程)

    CUDA安装下载cuda 输入nvidia-smi命令查看支持的cuda版本 如果无法查看,则说明尚未安装nvidia驱动,点击附加驱动,选择对应版本的驱动即可自动下载. 从https://developer.nvidia.com/cuda-toolkit-archive下载对应版本的cuda,选择18.04的版本即可. gcc降级 Ubuntu20.04自带的gcc版本为9.7.0,需要添加gcc7才可安装cuda10.2,输入命令安装gcc7 apt-get install gcc-7 g+

随机推荐