
PHP 8.5 这波发布真的把 “卡点” 玩明白了 ——11 月 20 号踩着当天的尾巴上线
踩着 deadline 才亮相,那股 “赶作业” 的既视感,简直和咱们交项目前的样子一模一样啊!
可刚兴奋没两分钟就凉了半截 —— 配套的 php_redis 和 php_igbinary,
官方最高居然只支持到 8.4 版本!这总不能因为扩展用不了就放弃 8.5 吧?
没办法,只能硬着头皮手动编译一波,特意把过程记下来,
省得下次再踩坑(以下都以 Redis 为例,igbinary 流程差不多,照着来就行):
先把要用的文件备齐
下载 PHP 开发包
直接点击下载下载,下完不用瞎建文件夹,直接解压到 PHP 根目录里,让文件自己融入根目录结构就行。
下载对应版本的 PHP 源码包
点这里直接下载
解压的时候注意,要放到 PHP 根目录下的 src 文件夹里,要是没有 src 文件夹,自己手动建一个就行。
下载扩展的源码包
把扩展源码解压好
先在 PHP 根目录里建个叫 ext-src 的文件夹,然后把刚下的两个扩展包都解压到这里面。
弄完之后,你就能在 ext-src 里看到两个文件夹:
一个是 “php 安装目录 \ext-src\phpredis”(这是 redis 的源码),
另一个是 “php 安装目录 \ext-src\igbinary”(这是 igbinary 的源码)。
. 没有 VS2022?那就用工具替代
要是你电脑上没装 Visual Studio 2022(这玩意1G多),就得下php-sdk-binary-tools。
下完解压到 PHP 根目录的 sdk 文件夹里,没有 sdk 文件夹就自己建一个。
解压好之后,在 “php 安装目录 \sdk\” 下面能找到 [phpsdk-vs17-x64.bat 这个文件,后面要用。
开始编译!(以 php_redis 为例)
先打开编译用的终端
找到刚才提到的 phpsdk-vs17-x64.bat 文件,双击运行,它会自动弹出来一个命令行终端,
而且已经帮你把编译环境配置好了,不用自己瞎折腾。
进入扩展源码的目录
在弹出来的终端里,输入命令切换到 redis 的源码目录。
命令就是 cd php安装目录\ext-src\phpredis,
记得把 “php 安装目录” 换成你自己的实际路径,比如 “D:\php-8.5.0-nts-x64”
这种,别直接抄!
一步步执行编译命令
按顺序来,一步完成再走下一步,别着急,然后执行下面的命令:
phpsdk_deps install
phpize
configure --enable-redis --with-php-config=php安装目录\php-config.bat
nmake -j4
nmake install编译的时候可能会弹出一堆错误提示,别慌!
只要不是能让编译直接停下的致命错误,忽略就行;
还有 phpsdk_deps 那步,国内网络有时候确实慢,开加速能省不少事;
要是想编译 igbinary,就把步骤里的 “ext-src\phpredis” 换成 “ext-src\igbinary”,
命令里的 “--enable-redis” 换成 “--enable-igbinary”,其他都一样。
最后配置扩展
编译成功之后,终端会告诉你 redis.dll 生成在哪儿了,
一般是在 phpredis\x64\Release_TS 或者 Release_NTS 目录里,
具体看你 PHP 是线程安全(TS)还是非线程安全(NTS)版本;
找到生成的 redis.dll 文件,把它复制到 PHP 根目录的 ext 文件夹里;
打开 PHP 的配置文件 php.ini,在文件最后加一行 “extension=redis.dll”;
要是你也编译了 igbinary,就把 igbinary.dll 也复制到 ext 文件夹,
再在 php.ini 里加一行 “extension=igbinary.dll”;
最后重启一下 PHP 服务,比如 Apache、Nginx 或者 PHP-FPM,然后用 phpinfo () 看看扩展是不是加载成功了,
成功了就搞定啦!
Hello php8.5

暂无评论