php 8.2 配置安装php-zbarcode扩展

前言

https://www.cnblogs.com/niuben/p/19274540

由于这篇帖子的 php-zbarcode 扩展,不支持 php8

所以使用 https://github.com/micbox/php-zbarcode 来进行安装

下载代码

复制代码
git clone https://github.com/micbox/php-zbarcode
cd php-zbarcode

兼容修复

复制代码
sudo sed -i '92,100s/unsigned int major = 0, minor = 0;/unsigned int major = 0, minor = 0, patch = 0;/' zbarcode.c
sudo sed -i '99s/zbar_version(&major, &minor);/zbar_version(&major, &minor, &patch);/' zbarcode.c
sudo sed -i '100s/"%d.%d"/"%d.%d.%d"/' zbarcode.c

sudo sed -i '354s/instanceof_function_ex(Z_OBJCE_P(image), php_zbarcode_image_sc_entry, 0)/instanceof_function(Z_OBJCE_P(image), php_zbarcode_image_sc_entry)/' zbarcode.c
sudo sed -i '364s/instanceof_function_ex(Z_OBJCE_P(image), php_imagick_get_class_entry(), 0)/instanceof_function(Z_OBJCE_P(image), php_imagick_get_class_entry())/' zbarcode.c

sudo sed -i '/#ifdef HAVE_ZBARCODE_GD/,/#endif/d' zbarcode.c

编译代码

我这里用了宝塔

复制代码
sudo /www/server/php/82/bin/phpize

export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11/bin-q16hdri/pkgconfig:$PKG_CONFIG_PATH"

./configure --with-php-config=/www/server/php/82/bin/php-config --enable-zbarcode-imagick --enable-zbarcode-gd

make clean && make -j$(nproc) && sudo make install

安装成功输出:

复制代码
/bin/sh /usr/local/src/php-zbarcode/libtool --tag=CC --mode=link cc -shared -I/usr/local/src/php-zbarcode/include -I/usr/local/src/php-zbarcode/main -I/usr/local/src/php-zbarcode -I/www/server/php/82/include/php -I/www/server/php/82/include/php/main -I/www/server/php/82/include/php/TSRM -I/www/server/php/82/include/php/Zend -I/www/server/php/82/include/php/ext -I/www/server/php/82/include/php/ext/date/lib -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/include/ImageMagick-6  -DHAVE_CONFIG_H  -g -O2 -D_GNU_SOURCE    -o zbarcode.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr/local/src/php-zbarcode/modules  zbarcode.lo -lzbar -lMagickWand-6.Q16HDRI -lMagickCore-6.Q16HDRI
cc -shared  .libs/zbarcode.o  -lzbar /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16HDRI.so /usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16HDRI.so  -Wl,-soname -Wl,zbarcode.so -o .libs/zbarcode.so
creating zbarcode.la
(cd .libs && rm -f zbarcode.la && ln -s ../zbarcode.la zbarcode.la)
/bin/sh /usr/local/src/php-zbarcode/libtool --tag=CC --mode=install cp ./zbarcode.la /usr/local/src/php-zbarcode/modules
cp ./.libs/zbarcode.so /usr/local/src/php-zbarcode/modules/zbarcode.so
cp ./.libs/zbarcode.lai /usr/local/src/php-zbarcode/modules/zbarcode.la
PATH="$PATH:/sbin" ldconfig -n /usr/local/src/php-zbarcode/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/src/php-zbarcode/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

root@VM-16-4-debian:/usr/local/src/php-zbarcode# sudo make install
Installing shared extensions:     /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/

配置启用扩展

复制代码
# vim 手动添加 
vim /www/server/php/82/etc/php.ini 
vim /www/server/php/82/etc/php-cli.ini

extension=/www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/zbarcode.so

立刻验证

bash 复制代码
/www/server/php/74/bin/php -m | grep zbarcode

输出 zbarcode 为成功

创建一个页面,搜索zbarcode 是否存在

php 复制代码
<?php phpinfo(); ?>
相关推荐
leisoo809711 分钟前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴1 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝2 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
我就是妖怪3 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
coder!mq4 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding4 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ4 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大4 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS4 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
quantdash_cc5 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash