不修改php.ini 如何扩展,BAE基础版、专业版、BCH安装php扩展(无需修改php.ini)
发布日期:2021-06-24 13:08:23 浏览次数:2 分类:技术文章

本文共 1673 字,大约阅读时间需要 5 分钟。

BCH是基于BAE,BAE基础版、专业版虽然架构不同,但使用方法类似,所以下面的方法适合于这三个产品,下面统一说BAE。

先上参考文章:

http://godbae.duapp.com/?p=302(【BAE3.0使用系列】php runtime使用自定义添加的so扩展)

http://www.jb51.net/article/1628.htm(编写自己的php扩展函数)

http://blog.csdn.net/default7/article/details/32142381(Linux下已编译PHP增加扩展so的方法,关键phpize 和config.m4)

然后你要有BAE本地开发环境:https://bce.baidu.com/doc/BAE/GUIGettingStarted.html#.3F.4E.54.34.A7.1A.2E.89.9B.81.5B.50.25.48.B9.9D

其实我之前试了好多次,在BCC下自己编译安装的php 5.4.20环境,也按照上面第一篇文章里说的将phpize、php-config软连接到/usr/bin/下,可编译出来的.so文件放到BAE上总是不行。

BAE本地开发环境下编译的就可以,最后也没找到原因。。。

BAE下php的扩展很丰富,基本能满足大部分应用的需求,不过如果想用的php扩展没有安装或者需要安装自定义php扩展,也是有办法的。

BCH基于BAE,所以相同的方法也能安装php扩展,这个貌似是其他虚拟主机提供商没有的一个功能,大赞。。。

1、在BAE本地开发环境中编译好.so文件。

2、在BAE根目录(BCH下是webroot)创建文件夹“user_extention”,将.so文件和对应的.ini文件(内容写extension = xxx.so)放入。

3、重新发布(BCH下需要在站点启停里重载或重启站点)。

标题中说无需修改php.ini,其实也可以将extension = xxx.so写入php.ini上传到根目录(BCH是webroot)。

BAE是支持编辑php.ini的,在根目录下创建即可。BCH也支持,这貌似也是其他家不提供的功能。

下面实际演示,创建一个自定义的php扩展,例如hello.so,可以输出hello world。

下载php源码包,最好是5.4.xx的,BAE本地开放环境php版本是5.4.23。线上貌似是5.4.20。

解压进入ext目录,执行

#./ext_skel --extname=hello

然后ext目录下会多一个hello的文件夹

#vim hello/config.m4

10、11、12行前面的dnl去掉,或者去掉16、17、18行前的dnl。

#vim hello/hello.c

41行(const zend_function_entry hello_functions[] = {)下面加一行      PHP_FE(say_hello,NULL)

最后面添加如下代码

PHP_FUNCTION(say_hello){

zend_printf("hello world\n");

}

#vim hello/php_hello.h

45行(PHP_FUNCTION(confirm_hello_compiled);)上面加一行            PHP_FUNCTION(say_hello);

然后进入到hello目录

#phpize

#./configure

#make && sudo make install

然后就在/usr/lib/php5/20100525/下生成了hello.so

接下来按照上面方法把hello.so和hello.ini(内容是extension = hello.so)放到user_extention里就可以了。

然后两种办法测试:

一个是用phpinfo()函数,phpinfo页面查找hello。

一个是用我们刚刚自定义的函数say_hello(),输出hello world即表示成功。

转载地址:https://blog.csdn.net/weixin_32956805/article/details/116222291 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php architecture x86,PHP Architecture
下一篇:php.ini配置文件内容,php.ini配置文件信息分享

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月11日 09时36分51秒