linux php 扩展

第一步:安装php5

第二步:打开终端【为来方便,这里使用root用户】,使用CD命令进入到php5源码包的ext目录

第三步:在终端键入以下命令

./ext_skel --extname=extest

我们的扩展库名叫“extest”,此命令执行后会在ext目录新建一个extest目录。

第四步:回到终端,使用CD命令进入extest目录,键入以下命令/var/web/php/bin/phpize

这是站长的phpize的目录,你需要修改成你自己的。运行完之后会在extest目录生成config.m4以及config.w32(windows底下使用),以及configure程序。

双击打开extest目录,打开php_extest.h文件,找到PHP_FUNCTION(confirm_extest_compiled);

在这一行的上面添加PHP_FUNCTION(extest_add);保存后退出。

这里是我们要为extest库编写的add函数到声明。

第五步:打开extest.c文件,找到const zend_function_entry extest_functions[],往下看3行,在PHP_FE_END的上面一行添加PHP_FE(extest_add,   NULL),在文件的最后添加函数实现到代码:

点击(此处)折叠或打开

PHP_FUNCTION(extest_add){
long int a,b,c;
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"ll",&a,&b )==FAILURE){
return;
}
c=a+b;
RETURN_LONG(c);
}

保存后退出。

第六步:打开config.m4文件,找到
PHP_ARG_ENABLE(caleng_module, whether to enable caleng_module...和
[  --enable-caleng_module           Enable caleng_module support])两行,删除前面的dnl打开。

第七步:回到终端,使用CD命令进入extest目录,键入命令:

./configure --with-php-config=/var/web/php/bin/php-config

make

make install

/var/web/php/bin/php-config这是站长php-config文件的目录,你应该修改成自己的。

编译顺利的话,在extest/moduels目录和/var/web/php/lib/php/extensions/no-debug-non-zts-20090626目录会产生一个extest.so文件。

第八步:打开php.ini,添加extension=extest.so,保存退出。

第九步:如果你用的是apache,重启apache。如果你用的是nginx+php-fpm,需要重启php-fpm。

如何重启php-fpm?站长没有做重启设置,应此只好先杀死php-fpm的进程在重新启动了。

打开/var/web/php/var/log/php-fpm.log,定位到文档最后,查看php-fpm到进程号,我的是2156.

回到终端,使用命令kill 2156杀死php-fpm进程。

然后重启php-fpm,回到终端使用CD命令进入/var/web/php/sbin目录,使用./php-fpm重启php-fpm。

第十步:测试扩展库。新建一个index.php文件,代码如下:

<?php

echo extest_add(1,2);

phpinfo();

?>

时间: 2024-08-24 06:17:05

linux php 扩展的相关文章

Centos linux php扩展安装步骤

使用phpinfo()函数输出PHP信息,然后找到Configuration File (php.ini) apachectl 其设计意图是帮助管理员控制Apache httpd后台守护进程的功能. Centos linux php扩展安装步骤1 首先进入到php源码包中 cd /opt/php-5.1.2/ext/zlib 2 在zlib文件夹下产生configure文件 (php安装目录/opt/php/)/opt/php/bin/phpize 3 配置编译 ./configure --wi

7.Linux权限扩展

7.Linux权限扩展 ·默认权限,每个终端都用一个umask属性,来确定新建文件目录的默认权限, ·umask使用数字权限方式表示,目录的默认权限是,777-umask,文件的默认权限是,666-umask, ·一般,普通用户的默认umask是002,root用户的默认umsk是022, ·也就是说,对于普通用户,新建文件的权限是666-002=664,新建目录的权限是777-002=775, ·查看umask值,umask或umask -S, ·设置umask值,如:umask 002 ·特

linux文件扩展名和类型

windows是通过扩展名区分文件类型的 Linux中文件扩展名根文件类型没有关系 为了容易区分和兼容用户使用windows的习惯,我们也会用扩展名来表示Linux中的文件类型! linux中一切皆文件.文件类型包含:普通文件,目录,字符设备,块设备,符号链接等 [[email protected] ~]# ls -l 总用量 132 -rw-r--r--. 1 root root     2 11月  8 14:25 a.log -rw-------. 1 root root  1587 10

如何去掉[email&#160;protected]中的@符号Linux文件扩展信息

如何去掉[email protected]中的@符号Linux文件扩展信息ls -lart [email protected] 10 rlanffy staff 340B 3 6 2015 [email protected] 1 rlanffy staff 630B 6 10 17:22 [email protected] 1 rlanffy staff 4.8K 8 12 14:17 [email protected] 3 rlanffy staff 102B 8 14 12:10 [emai

Linux 安装扩展yum源

Linux 安装扩展yum源 下载rpm扩展:http://rpmfind.net/linux/epel/6/x86_64/epel-release-6-8.noarch.rpm CentOS/RHEL 5 : rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm CentOS/RHEL 6 : rpm -Uvh https://dl.fedoraproject.org/pub/epel/e

请使劲回答一个关于UNIX/Linux自动扩展stack的问题

有本事就出来,没本事就当鳖! 如果让我回答关于进程栈,线程栈的问题,只要问题不笼统,只要问题明确,我会一 五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是那么明确,因此,游戏到此结束!!艹.但是如果给我一个反问的机会,我会问提问者反问 下面一个问题,记住,使出你拉屎的劲来回答: UNIX/Linux 的stack在大多数平台是向下扩展的(注意,我已经告诉他事实了,我并没有问...是如何扩展的,这是可以背诵下来并朗读出来的),在一个执行流调用了 一个函数A,而该函数A在stack上

linux 创建扩展分区以及逻辑分区

[[email protected] ~]# fdisk /dev/sdb    //进入要分配的磁盘 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u'). Command (m for help): n 

Linux 格式化扩展分区(Extended)

如果你在Linux系统中格式化磁盘时遇到如下错误,那么表示你正在格式化一个扩展分区. [[email protected] ~]# mkfs.ext4 /dev/sdb1   mke2fs 1.41.12 (17-May-2010)   mkfs.ext4: inode_size (128) * inodes_count (0) too big for a   filesystem with 0 blocks, specify higher inode_ratio (-i)   or lower

VirtualBox下Linux(centos)扩展磁盘空间

最近在Linux里做文件合并,做分词,磁盘空间不够,把扩展磁盘空间方法记录一下. 1.在VirtualBox安装路径下(例如C:\Program Files\Oracle\VirtualBox>)打开windows小黑窗 执行: VBoxManage modifyhd e:\vbox\Ubuntu12.04\Ubuntu1204-201310-disk1.vdi --resize 30000(30000是想要增加的容量, 以M为单位,可根据自己实际情况决定) 如果虚拟机用的是vmdk格式,可以执

linux下扩展root分区

1 查看当前磁盘情况 fdisk -l /dev/sda1 2048 6143 2048 83 Linux /dev/sda2 * 6144 1054719 524288 83 Linux /dev/sda3 1054720 10508287 4726784 8e Linux LVM 我这里只有/dev/sda一块磁盘,系统默认已经使用了sda1 sda2 sda3,其中sda1忘了干嘛的了,sda2用作了boot,sda3用作逻辑卷,是其他逻辑盘的基础盘.由于最多支持4块主分区,所以现在需要将