动态二维码生成器PHP Dynamic QRcode

这篇具有很好参考价值的文章主要介绍了动态二维码生成器PHP Dynamic QRcode。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

动态二维码生成器PHP Dynamic QRcode

什么是 PHP Dynamic QRcode ?

PHP Dynamic QRcode 是一个允许生成和保存动态和静态二维码(QR码)的应用。它具有简洁、响应灵敏且用户友好的设计。其中包含您网站中可能需要的一般功能,如:记录管理(CRUD)、安全身份验证、分页、过滤器。

什么是 Dynamic Qr codes ?

Dynamic Qr codes 具有可修改的目的地 URL。动态二维码的目的地是可以随时更改——即使您的营销材料已经打印出来。这将节省重印成本和精力,并使您能够尽快对活动中的任何更改做出响应。

什么是 Static Qr codes ?

Static Qr codes 有一个固定的目标 URL。静态二维码中编码的信息是固定的。目的地/数据直接存储在二维码图形中(因此,如果要存储更多数据,二维码也会越来越大,并形成更复杂的模式)。因此,无法更改存储的目的地/数据。与任何其他打印材料一样,已经打印的二维码中的任何拼写错误都无法更改。通过本应用,您可以创建 13种不同类型的静态二维码。

这个项目老苏很早就关注了,刚开始没有 Docker 版本,老苏尝试过自己构建镜像,但是在数据库设置完成后有报错。最近看了一下,官方已经提供了 Dockerfile ,但是必须本地编译,而不能从 docker hub 下载。这对大部分人来说,不是一件容易的事情

动态二维码生成器PHP Dynamic QRcode

虽然官方有计划,但是都快过去半年了,还是没有可供下载的镜像,所以只能自己动手,来丰衣足食了。不过老苏水平有限,毕竟不是程序员,一些异常没有代码的配合也不知道如何处理,只能严格按顺序操作了,如果出错了就删了重来吧

结果并不重要,重要的是我们动手折腾了 😂

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

Dockerfile

官方提供了 Dockerfile ,但需要我们自己编。

1、为了加快构建速度,在 RUN apt-get update 之前,插入了下面👇这段,将默认源改为了阿里源

# 改阿里源    
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list    
RUN cat /etc/apt/sources.list    
RUN rm -Rf /var/lib/apt/lists/*

2、另外给 github 的源码地址前挂了 ghproxy,目的都是为了加快构建的速度,对本身功能没有任何影响

动态二维码生成器PHP Dynamic QRcode

3、修改了对外暴露的端口,从 80 改为了 3080,不改的话会遇到 (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80 错误

4、因为新增了 ports.confservername 文件,所以要新增两行

COPY ./config/ports.conf /etc/apache2/ports.conf  
COPY ./config/servername.conf /etc/apache2/conf-available/servername.conf

5、 启用了 docker-entrypoint.sh 文件

6、源码中 read.php 在根目录,原 Dockerfile 处理漏了,会出现错误

动态二维码生成器PHP Dynamic QRcode

因此需要单独处理

    && cp -r /app/read.php /var/www/html \

7、 config/environment.php.example 需命名为 config/environment.php

修改后的 Dockerfile 及相关文件,都放在了 https://github.com/wbsu2003/Dockerfile/blob/main/PHP-Dynamic-Qr-code

vhost.conf

监听的端口要做相应的调整

config/vhost.conf 中,将 <VirtualHost *:80> 端口改为 <VirtualHost *:3080>

ports.conf

这个文件只要一行就可以

Listen 3080

servername.conf

这个文件也只要一行就可以

ServerName localhost

但是实际上可能并未生效,因为镜像中还是有警告,但不影响使用

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.4. Set the 'ServerName' directive globally to suppress this message

docker-entrypoint.sh

修改成下面这样,目的是:

  1. 替换 servername.conf 中的 localhost 为环境变量 WEB_URL 传入的值,就像我前面说的,可能未生效,主要还是不了解 apache
  2. 替换 read.php 中的 include 路径,从 qrcode/config/config.php 改为 config/config.php
#!/bin/bash  
  
find '/etc/apache2' -name '*.conf' -exec sed -i -e 's,localhost,'"$WEB_URL"',g' {} \;  

find '/var/www/html' -name 'read.php' -exec sed -i -e 's,qrcode/config,config,g' {} \;  

exec apache2-foreground

构建流程

构建服务端镜像的基本命令如下👇

# 直接下载代码
git clone https://github.com/giandonatoinverso/PHP-Dynamic-Qr-code.git

# 通过代理下载原代码
git clone https://ghproxy.com/github.com/giandonatoinverso/PHP-Dynamic-Qr-code.git

# 进入目录
cd PHP-Dynamic-Qr-code/docker

# 构建镜像
docker build -t wbsu2003/qrcode:v1 .

# 生成容器
docker run -d \
   --name=qrcode \
   -p 3470:3080 \
   -v $(pwd)/saved_qrcode:/var/www/html/saved_qrcode \
   -e DOCKER_CID=docker \
   -e WEB_URL=192.168.0.197 \
   -e DATABASE_HOST=192.168.0.197 \
   -e DATABASE_PORT=3307 \
   -e DATABASE_NAME=qrcode \
   -e DATABASE_USER=qrcode \
   -e DATABASE_PASSWORD=123456 \
   -e DATABASE_PREFIX=qr_ \
   wbsu2003/qrcode:v1

安装

在群晖上以 Docker 方式安装。

建数据库

直接使用群晖自带的 Mariadb 10

动态二维码生成器PHP Dynamic QRcode

phpMyAdmin 中创建了名为 qrcode 的空数据库。

为便于说明,假设数据库密码为 123456

动态二维码生成器PHP Dynamic QRcode

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:qrcode
  • 数据库密码:123456
  • 数据库库名:qrcode,因为勾选了与用户同名;

镜像下载

  1. 如果注册表能用,在注册表中搜索 wbsu2003/qrcode ,版本选择 latest

动态二维码生成器PHP Dynamic QRcode

  1. 如果注册表用不了,但是可以下载,用 SSH 客户端登录到群晖,在命令行中直接输入
docker pull wbsu2003/qrcode:latest
  1. 如果既不能搜索,也不能下载,就去 https://dockerproxy.com 试试吧

动态二维码生成器PHP Dynamic QRcode

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 qrcode 和 子目录
mkdir -p /volume1/docker/qrcode/saved_qrcode

# 进入 qrcode 目录
cd /volume1/docker/qrcode

# 修改目录权限 
chmod 777 saved_qrcode

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name qrcode \
   -p 3470:3080 \
   -v $(pwd)/saved_qrcode:/var/www/html/saved_qrcode \
   -e DOCKER_CID=docker \
   -e WEB_URL=192.168.0.197 \
   -e DATABASE_HOST=192.168.0.197 \
   -e DATABASE_PORT=3307 \
   -e DATABASE_NAME=qrcode \
   -e DATABASE_USER=qrcode \
   -e DATABASE_PASSWORD=123456 \
   -e DATABASE_PREFIX=qr_ \
   wbsu2003/qrcode
可变
DOCKER_CID 设为 docker
WEB_URL 服务地址,应该没起作用
DATABASE_HOST 数据库主机
DATABASE_PORT 数据库端口
DATABASE_NAME 数据库库名
DATABASE_USER 数据库用户
DATABASE_PASSWORD 数据库密码
DATABASE_PREFIX 设为 qr_

config/environment.php 中看,只要 DOCKER_CID 是字符串就会读取环境变量中的数据库设置

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  qrcode:
    image: wbsu2003/qrcode
    container_name: qrcode
    restart: unless-stopped
    ports:
      - 3470:3080
    volumes:
      - ./saved_qrcode:/var/www/html/saved_qrcode
    environment:
      DOCKER_CID: "docker"
      WEB_URL: "192.168.0.197"
      DATABASE_HOST: "192.168.0.197"
      DATABASE_PORT: "3307"
      DATABASE_NAME: "qrcode"
      DATABASE_USER: "qrcode"
      DATABASE_PASSWORD: "123456"
      DATABASE_PREFIX: "qr_"

然后执行下面的命令

# 新建文件夹 qrcode 和 子目录
mkdir -p /volume1/docker/qrcode/saved_qrcode

# 进入 qrcode 目录
cd /volume1/docker/qrcode

# 修改目录权限 
chmod 777 saved_qrcode

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

第一次运行,需要先进行设置

在浏览器中输入 http://群晖IP:3470/install/setup.php 就能看到设置界面

注意:这里提示了后台账号和密码,均为 superadmin

动态二维码生成器PHP Dynamic QRcode

如果直接看到上面的界面,说明数据库设置正确,在 phpMyAdmin 中你会看到已经有了 3 张表

动态二维码生成器PHP Dynamic QRcode

如果数据库设置不正确,会显示 The database could not be created, please check your database credentials!

Log in 按钮,跳转到登录界面

账号: superadmin,密码:superadmin

动态二维码生成器PHP Dynamic QRcode

登录成功后的主界面

动态二维码生成器PHP Dynamic QRcode

新建动态二维码

动态二维码生成器PHP Dynamic QRcode

https://laosu.ml 为例

动态二维码生成器PHP Dynamic QRcode

用微信扫出来是这样的

如果要印在名片或者彩页上,需用域名或者公网 IP

动态二维码生成器PHP Dynamic QRcode

下载的二维码保存在 saved_qrcode 目录中

动态二维码生成器PHP Dynamic QRcode

静态二维码的种类比较多

动态二维码生成器PHP Dynamic QRcode

存在的问题

1、默认内置的 demo 数据的二维码,不管是动态还是静态,都不显示

动态二维码生成器PHP Dynamic QRcode

2、除了 logout 外,ProfileSettings 都没链接,不知道是代码问题,还是 Docker 构建的问题

动态二维码生成器PHP Dynamic QRcode

等官方放出正式的 docker 版本吧

参考文档

giandonatoinverso/PHP-Dynamic-Qr-code: PHP Dynamic Qr code is a script that allows the generation and saving of dynamic and static QR codes
地址:https://github.com/giandonatoinverso/PHP-Dynamic-Qr-code

PHP-Dynamic-Qr-code/docker at master · giandonatoinverso/PHP-Dynamic-Qr-code · GitHub
地址:https://github.com/giandonatoinverso/PHP-Dynamic-Qr-code/tree/master/docker

PHP Qr Code Generator- Documentation
地址:https://giandonatoinverso.it/documentation/文章来源地址https://www.toymoban.com/news/detail-510397.html

到了这里,关于动态二维码生成器PHP Dynamic QRcode的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [UE4][C++]使用qrencode动态生成二维码

         下载地址  GitHub - fukuchi/libqrencode: A fast and compact QR Code encoding library A fast and compact QR Code encoding library. Contribute to fukuchi/libqrencode development by creating an account on GitHub. https://github.com/fukuchi/libqrencode  Configure之后会报错,不勾选WITH_TOOLS就行了。         还是采用第三方库的形

    2024年02月12日
    浏览(40)
  • 微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现记录

    参考文章原文链接:微信小程序使用weapp-qrcode.js完成二维码的生成_fairy_404的博客-CSDN博客 首先给需要生成二维码的页面创建一个canvas 因为我这里实现的是弹窗展示二维码,所有就把 canvas移出页面,小伙伴们根据自己需求进行调整,weapp-qrcode.js内容参考链接中就有,我这里就

    2024年02月15日
    浏览(53)
  • 微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现以及遇到问题记录

    参考文章原文链接:微信小程序使用weapp-qrcode.js完成二维码的生成_fairy_404的博客-CSDN博客 首先给需要生成二维码的页面创建一个canvas 因为我这里实现的是弹窗展示二维码,所有就把 canvas移出页面,小伙伴们根据自己需求进行调整,weapp-qrcode.js内容参考链接中就有,我这里就

    2024年02月01日
    浏览(57)
  • vue批量生成二维码,打印生成的二维码,并批量下载生成的二维码,qrcode

    通过使用 qrcode 生成二维码, 使用 jszip 打包批量二维码文件, 使用 file-saver 下载打包好的zip文件, 使用 vue-print-nb 打印生成的二维码 配置项: width 二维码宽度 height 二维码高度 errorCorrectionLevel 二维码纠错级别,指二维码被遮挡可以扫出结果的区域比例 color: 7. 打印生成的二

    2024年02月01日
    浏览(70)
  • 二维码生成&点击按钮展示二维码

    使用HBuider 1.先安装插件 (地址 :  https://ext.dcloud.net.cn/plugin?id=1287) 这里直接就安装到了uni-modules里面了 import uQRCode from ‘@/uni_modules/Sansnn-uQRCode/components/u-qrcode/u-qrcode.vue’ 弹框用到了uni-app提供的uni-popup弹框,把二维码放到内容那块,替换即可

    2024年02月10日
    浏览(53)
  • js生成二维码和解析二维码

    这个整了好久,用的包换了好几次,所以记录一下 生成二维码 解析二维码 然后是两个引入的js reqrcode和qrcode

    2023年04月09日
    浏览(51)
  • Android studio 实现生成二维码和扫描二维码

    效果图 build.gradle(:app)添加依赖 Manifests.xml activity_main.xml MainActivity ScanActivity

    2024年02月10日
    浏览(47)
  • 生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    情景: 1、在微信小程序审核完成,发布到线上后,想通过扫描小程序二维码进入小程序 2、可分享二维码出去,通过二维码扫码进入小程序 方法: 1、进入微信小程序的后台配置。链接:微信公众平台。(如图一) 2、进入 “设置” -- “ 基本设置” -- “小程序码及线下物

    2024年02月12日
    浏览(57)
  • 【支付系统】java springboot 生成二维码,二维码中文乱码

            支付系统必不可少的就是生成二维码,有时我们会需要将支付链接转换为二维码.用户通过移动设备扫描二维码调起支付. 该篇文章主要使用的是hutool自带的二维码生成功能.  1. 引入依赖(hutool 可以按需引入这里就直接使用all了) 2. hutool的官方已经有很详细的生成方式

    2024年02月11日
    浏览(43)
  • Android实现生成二维码以及扫描二维码的功能(超级简单!)

    文章目录 ​​​​​​ 前言 二、实现生成二维码的功能 三、实现扫面二维码的功能 总结 提示:这里可以添加本文要记录的大概内容: 我是通过一个第三方库来实现二维码的生成,以及扫描二维码的功能,开源库如下: 一、布局文件如下 布局比较简单,就只有简单的一些

    2024年02月12日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包