docker-php扩展

这篇具有很好参考价值的文章主要介绍了docker-php扩展。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

生成扩展骨架

环境:docker-compose、php74

1.本地要有一份 php-src

git clone https://github.com/php/php-src.git 
cd php-src
git checkout PHP-7.4.5

2.\www\php-src\ext可以看到有一个 ext_skel.php 文件

docker-php扩展,docker,php,容器

3.通过ext_skel.php脚本创建了一个hello扩展,脚本目录在\www\php-src\ext目录下

php ext_skel.php --ext hello 

docker-php扩展,docker,php,容器

4.\www\php-src\ext\hello文件下的架构

-rw-r--r--   1 longshilin  staff   405 Feb 27 16:07 .gitignore
-rw-r--r--   1 longshilin  staff    11 Feb 27 16:07 CREDITS
-rw-r--r--   1 longshilin  staff  3231 Feb 27 16:07 config.m4
-rw-r--r--   1 longshilin  staff   204 Feb 27 16:07 config.w32
-rw-r--r--   1 longshilin  staff  3355 Feb 27 16:07 hello.c
-rw-r--r--   1 longshilin  staff  1425 Feb 27 16:07 php_hello.h
drwxr-xr-x   5 longshilin  staff   160 Feb 27 16:07 tests

5.编写代码扩展

编写helloword.c,可以通过PHP_FUNCTION定义函数

写一个测试方法,放到函数 PHP_FUNCTION(hello_test2) 后面:

/*新增函数*/
PHP_FUNCTION(hello)
{
     zend_string *strg;
     strg = strpprintf(0, "hello word");
     RETURN_STR(strg);
}

然后在 hello_functions[] 数组中增加我们新写的函数

PHP_FE(hetlo,NULL)

docker-php扩展,docker,php,容器文章来源地址https://www.toymoban.com/news/detail-655906.html

6.开始编译

/usr/local/bin/phpize
	//报错Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
	//解决方式 apk add autoconf
./configure  --with-php-config=/usr/local/bin/php-config
	//报错 no acceptable C compiler found in $PATH
    //解决方式 apk add gcc
    //报错 C compiler cannot create executables
    //解决方式 apk add gcc g++
make && make install
    //报错 /bin/sh: make: not found
    //解决方式 apk add make
    

7.添加扩展目录

docker-php-ext-enable hello 
//启动扩展

8.测试

//新建文件a.php
<?php
echo hello();
?>

php a.php
#得到 hello word

到了这里,关于docker-php扩展的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php接入es扩展

    es官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic es官方php客户端文档:概述 | Elasticsearch-PHP | Elastic

    2024年02月07日
    浏览(36)
  • php.2安装Imagick扩展

    安装imagemagick 安装imagemagick扩展 打开php.ini的imagick扩展 验证是否安装成功

    2024年01月22日
    浏览(82)
  • PHP安装sqlsrv扩展指引

    使用宝塔安装sqlsrv扩展,安装后死活连接不上,后面看到官方文档发现没有按照ODBC驱动,简单整理了一下,具体步骤如下: 1、安装ODBC程序,使用ODBC Driver 18连接可能会出现证书异常( [Microsoft][ODBC Driver 18 for SQL Server]SSL 提供程序: 证书链是由不受信任的 ),直接改成ODBC Dr

    2024年02月05日
    浏览(59)
  • mac安装php的redis扩展

    1,下载php-redis 2,安装并编译 3,修改php.ini 4,验证是否安装成功 打开phpinfo页面,查找Redis选项,如下图代表安装成功。  

    2024年02月13日
    浏览(54)
  • PHP sm2 国密扩展

    介绍 基于openssl密码库编写的SM2椭圆曲线公钥密码算法PHP扩展 特性:非对称加密 git地址:https://gitee.com/state-secret-series/openssl-ext-sm2.git 软件架构 zend 常规PHP扩展结构 依赖要求 1,liunx :openssl/lib必须包含 libcrypto.so和libssl.so 动态库 2,mac :openssl/lib必须包含 libcrypto.dylib和libssl.dyl

    2023年04月08日
    浏览(39)
  • php_mb_strlen指定扩展

     1 中文在utf-字符集下占3个字节,所以计算出来长度为9。    2 可以引入php多字节字符的扩展,默认是没有的,需要自己配置这个函数    3 找到php.ini文件,去掉;extension = mbstring的注释,接着重启apache服务  可以看到准确输出的中文的长度          

    2024年02月12日
    浏览(73)
  • Debian纯净系统安装php常用扩展和程序

    适用于 php-fpm debian容器 mysql扩展 redis扩展 gd扩展 zip扩展 bcmath扩展 opcache扩展 pcntl扩展 mongodb扩展 swoole扩展 sodium扩展 sqlsrv和pdo_sqlsrv扩展 composer工具 git工具 zip工具 vim工具 crontab工具 sudo工具 supervisor工具 查看进程文件的启动位置 配置php 配置php-fpm 重启php-fpm 别名持久化

    2024年02月13日
    浏览(89)
  • php7.3安装curl、openssl扩展

    cd /root wget https://www.openssl.org/source/openssl-3.0.8.tar.gz tar xvzf openssl-3.0.8.tar.gz cd openssl-3.0.8 ./config  make make install 解决 OpenSSL 1.1.i and \\\"Can\\\'t locate FindBin.pm in @INC\\\"  dnf install perl openssl version -a   查看openssl版本 cd /root wget https://curl.se/download/curl-8.0.1.tar.gz tar -xvf curl-8.0.1.tar.gz cd curl-8.0.1

    2024年02月03日
    浏览(61)
  • php 扩展pdo查询SqlServer中文乱码问题

    默认是utf-8 或者可以强制utf-8 PDO::SQLSRV_ATTR_ENCODING=PDO::SQLSRV_ENCODING_UTF8 microsoft文档内容:( 常量 (Microsoft Drivers for PHP for SQL Server) - PHP drivers for SQL Server | Microsoft Learn ) 编码常量 PDO::SQLSRV_ATTR_ENCODING 属性可传递给 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bind

    2024年02月10日
    浏览(40)
  • Windows 右键菜单扩展容器 [开源]

    今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下: 如上图,右键菜单多了几个我自定义的菜单: 复制文件路径 复制文件夹路径 我的工具箱 走配置文件动态创建子菜单,下面会讲 我上图是在 win10 操作系统下演示的,在 win1

    2024年02月02日
    浏览(97)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包