全面解读Linux环境中PHP7识别二维码(zbarcode)

2024-08-29 00:58

本文主要是介绍全面解读Linux环境中PHP7识别二维码(zbarcode),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP识别二维码或条形码需要 3 个工具。

  1. ImageMagick
    ImageMagick 是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过 100 种图象格式。ImageMagick 以 ImageMagick 许可证(一个类似 BSD 的许可证)发布。
  2. zbar
    zbar 是一个开源软件套件,用于读取各种来源的条形码,如视频流,图像文件和原始强度传感器。它支持 包括 EAN-13 / UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5 和 QR Code 等多种流行的条码。
  3. php-zbarcode
    php-zbarcode 是 PHP 读取条形码的扩展模块,目前仅支持 php5.x。使用这个模块之前还需要安装 ImageMagick 和 zbar 这两个命令行套件。
    phpzbarcode 依赖于 ImageMagick 和 zbar,zbar 依赖于 ImageMagick,ImageMagick 依赖 jpeg 库来提供 jpeg 图片支持,所以先安装 jpeg 支持。

安装 jpeg 库

//yum安装
#yum install libjpeg
#yum install libjpeg-devel
#yum install libpng
#yum install libpng-devel
#yum install libtiff
#yum install libtiff-devel
#yum install libungif
#yum install libungif-devel
#yum install freetype
#yum install zlib
#pm -qa |grep libjpeg
//二进制安装
#wget http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz
#tar xf jpegsrc.v9b.tar.gz
#cd jpeg-9b/
#./configure 
#make libdir=/usr/lib64   
#make libdir=/usr/lib64 install  
#rpm -qa |grep libjpeg

安装 ImageMagick

#wget https://www.imagemagick.org/download/ImageMagick.tar.gz
#tar xf ImageMagick.tar.gz
#cd ImageMagick-7.0.7-13
#./configure
#make
#sudo make install
#sudo ldconfig /usr/local/lib
#magick --version

********************************************* 常见错误 *******************************************
出错1:安装好以后使用 magick 、 convert 等相关命令时,加载动态链接库出错
解决方法:设置动态加载动态链接库
sudo ldconfig /usr/local/lib

安装 zbar
下载地址:https://sourceforge.net/projects/zbar/files/zbar/。我下载的最新版 0.10,包名为 zbar-0.10.tar.gz 。

#tar xf zbar-0.10.tar.gz
#cd zbar-0.10/
#sudo ln -s /usr/local/include/ImageMagick-7 /usr/local/include/ImageMagick
#sudo ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand
#./configure --disable-video --without-gtk --without-qt --without-python
#make
#make
#sudo make install
#zbarimg --version

********************************************* 常见错误 ********************************************
出错1:找不到 MagickWand.h 头文件

ImageMagick package found but wand/MagickWand.h not installed?!
-this is a problem with your ImageMagick install,
-please resolve the inconsistency and try again...

解决方法:zbar 的配置文件 ./configure 在运行时会找不到 MagickWand.h,它在 /usr/local/include/ImageMagick-7/MagickWand 目录下,但是 ./configure 执行时会去 wand/ 目录找(找不到),所以需要做两个软连接让 ./configure 能找到 MagickWand.h 文件

#sudo ln -s /usr/local/include/ImageMagick-7 /usr/local/include/ImageMagick
#sudo ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand

出错2:configure: error: Unable to find ImageMagick >= 6.2.6:No package ‘MagickWand’ found
这个错误的原因是cmake找不到imagemagick库,因为你通过apt-get或者yum安装的仅仅是imagemagick,而不包括magickwand的开发包。
解决方案有两个,第一种很简单:
找到libmagickwand-dev这个包进行安装,比如在ubuntu中可以使用以下命令

#sudo apt-get install libmagickwand-dev

如果是centOS的话可能需要自己查找一下类似的包,或者使用方案二。

#sudo yum install ImageMagick-devel

安装对应版本的php-zbarcode扩展,主要看你安装php的版本哟

#wget https://github.com/mkoppanen/php-zbarcode/archive/master.zip
#unzip master.zip
#cd php-zbarcode-master/
#phpize
#./configure --with-php-config=/usr/bin/php-config
#make
#sudo make install

成功后会提示安装到的模块目录

Installing shared extensions:     /usr/lib/php/20131226/

编辑 /etc/php/5.6/apache2/php.ini 文件

sudo vim /etc/php/5.6/apache2/php.ini

最后添加一行

extension=zbarcode.so

重启 apache

sudo /etc/init.d/apache2 restart

这就好了,可以使用条形码扩展了。
注意 php -m 命令显示的是 php-cli 模式启用的扩展,要让 php-cli 模式也启用扩展的话,需要再编辑 cli 模式的配置文件。然后就能使用 php -m 命令看到 zbarcode 模块了。


参考一下他人的劳动成果
WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers
Linux安装ImageMagick与JMagick完成过程及配置
Cmake时报错:Could NOT find ImageMagick
Centos 6.x 上安装php 的 zbarcode 扩展
ImageMagick简明安装部署手册

这篇关于全面解读Linux环境中PHP7识别二维码(zbarcode)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116392

相关文章

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f