1.文档阅读 TBD 2.整理输出 2.1 docker中安装PHP参见 PHP 8.0 - window 10下[含Docker方式]安装 - 学习/实践_穿素白衫的少年的博客-CSDN博客 Docker Hub // PHP 各版本镜像 2.2 执行命令查看开启的扩展 php -v php -m 可以看到一些信息, 安装之后,未做任何配置,默认开启的扩展都是PHP Modules的扩展,而Zend Modules没有扩展开启。 需求 现在做个abstract test 测试生成器的性能如何 代码参见TBD 其中有使用到bcsub函数, 也就是BC扩展PHP: BC Math - Manual 默认是没有开启的,这里以Docker中开启BC扩展为例 2.3 找到php.ini配置文件 whereis php 或者 php --ini 一般在/usr/local/etc/php目录下 进入该目录 2.4 拷贝并修改配置文件 cp php.ini-development php.ini 输入命令: vim php.ini 安装vim方法: 2021-04-30 - Docker - 编辑容器中的文件 - 学习/实践_穿素白衫的少年的博客-CSDN博客_docker 编辑容器 2.5 编辑开启扩展 但是发现, bcmath在docker中开启的方式不是这样的, docker做了另外的处理,网上其博客,如下执行步骤 于是, 进入到 /usr/local/bin目录下, 并且大致查看了目录下内容, 多数为shell脚本,[应是docker做了外层处理] docker-php-ext-install shell脚本中,进入到 cd /usr/src/php/ext PHP源代码扩展目录下, 大致意思应该就是查找要安装的扩展然后安装~ php/docker-php-ext-install at 1bc63c1ce4294a4ecb50c60dcf6a57d6749cba7d · docker-library/php · GitHub--- docker-library 直接查看相关文件内容 输入 docker-php-ext-install -h 再次查看该命令用法[下面输入中,第一个扩展就是bcmath, 因为顺序按照英文字母顺序输出],其实上面的shell脚本内容中已经有说明, 结合自身需求,输入命令如下: docker-php-ext-install bcmath 或者 如 docker-php-ext-install mysqli  上面有一些信息值得关注,接下来执行输出的提示 make test 同时可以看到新增的配置文件 /usr/local/etc/php/conf.d 目录下  补充: 安装mysqli之后  插入: 安装gd扩展, php - Installing GD in Docker - Stack Overflow php 7.4 没有安装扩展 这里在安装项目的依赖时:composer install 出现如下报错,  解决办法: apt-get update -y && apt-get install -y libpng-dev 然后执行 docker-php-ext-install gd   延伸: 解决zip扩展问题 docker-php-ext-install zip fails · Issue #61 · docker-library/php · GitHub 简单说,是相同的原因,也是系统中缺少必要的库,先安装依赖的库,然后再安装扩展即可 apt-get update && apt-get install -y \ zlib1g-dev \ libzip-dev  docker-php-ext-install zip  2.6 重启容器 docker restart 容器ID/容器名 或者直接通过desktop App点击重启按钮操作均可 2.7 进入容器, 并查看扩展是否开启 docker exec -it 容器ID bin/bash php -m 可以看到一切开启扩展~~ Over 2.8 然后继续任务测试~ 后连续执行单独运分别行三次 with-gen root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./with-gen.php time: 0.3218 memory (byte): 16781312 root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./with-gen.php time: 0.3188 memory (byte): 16781312 root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./with-gen.php time: 0.3157 memory (byte): 16781312 not-gen root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./not-gen.php time: 0.3298 memory (byte): 52436992 root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./not-gen.php time: 0.3236 memory (byte): 52436992 root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# php -f ./not-gen.php time: 0.3241 memory (byte): 52436992 root@512cde94c29c:/var/www/html/learning_of_php8.0/generator/abstract-test# 测试结果:【AVG】 -------------------------------------------- | time | memory, mb | -------------------------------------------- | not gen | 0.3258 | 50.01 | -------------------------------------------- | with gen | 0.3188 | 16.00 | -------------------------------------------- 顺便可以看到 PHP 8 下面将生成器的占用内存更加少,不过相比在 >=5.5, 7.x PHP 8 做了非生成器下优化,内存从146.75降到50.01 MB, 生成器下内存没有变化~ 测试正常运行~ 后续补充 ... |