分类 开发笔记 下的文章

修改 Nginx 配置时,报错:

$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。

我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。

所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。

如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。

grep -r "crowall.com" /etc/nginx/sites-enabled/

-r 表示如果下面有子目录也会扫描。

执行完就可以看到冲突的两个配置文件了,非常方便。

最近一个项目在用 tabler,tabler 是一款开源免费的并且看起来蛮正经的 UI 库,适用于以后端为主的 web 开发者。

最新版 tabler-v1.0.0-beta20 表单里的选择组件默认使用的是 tom-select,之前用的是 Selectize,但由于该项目停止开发,后来才换了 tom-select。

以上信息来源是官方的 issue

由于官方没有提供对 select2 的支持,所以 select2 的样式在 tabler 里用不了,并且即使是引入了 bootstrap5 的样式,仍然不 work。

于是我就写了一段 css,解决了 select2 在 tabler 下适配的问题。

创建 select2-tabler-theme.css 文件:

- 阅读剩余部分 -

server 内添加配置:

# 获取本地时间
if ( $time_local ~ "^(\d+)\/(\w+)\/(\d+):(\d+):(\d+):(\d+) \+(\d+)" ) {
  set $hour $4;
}

# 指定时间黑名单,如果为指定时间,返回500
if ( $hour ~ 22|23|00|01|02|03|04|05 ) {
  return 500;
}

这样就实现了晚上 10点~凌晨5点之间无法访问,6点以后才能正常访问。

- 阅读剩余部分 -

Navicat Premium Lite 是 Navicat 的精简版,拥有基本数据库操作所需的核心功能。它允许你从单个应用程序同时连接到各种数据库平台,包括 MySQL、Redis、PostgreSQL、SQL Server、Oracle、MariaDB、SQLite 和 MongoDB。Navicat Premium Lite 提供简化的数据库管理体验,使其成为用户的实用选择。

官方网址 https://www.navicat.com.cn/products/navicat-premium-lite

几个注意事项

  1. 虽然是 Lite 版,但 macOS 下的安装包也有 300多M,并且安装后会占用磁盘约 900M 的空间,磁盘小的用户需要考虑一下。

- 阅读剩余部分 -

Face Recognition 简介

Face Recognition 是一个基于 Dlib 的 Python 库,它简化了人脸识别的操作。它封装了人脸检测、编码和比较的功能,非常易于使用。GitHub 主页地址是 https://github.com/ageitgey/face_recognition

2024-05-21T08:45:15.png

使用最近很火的汪峰新女友森林北李巧的照片测试。

图片 L1 和 L2 对比,face distance 为 0.393,相似度为 60.69%。

- 阅读剩余部分 -

前两天初始化了一个新项目,使用的是全新的 symfony 6.4。由于使用了最小化的创建命令,导致很多非核心的组件没有安装,一个个安装完,修改好 .env 环境变量配置文件,在 dump 的时候报错:

$ APP_ENV=dev APP_DEBUG=1 php bin/console dotenv:dump
  There are no commands defined in the "dotenv" namespace.  

执行安装命令 composer require symfony/dotenv 的时候没有任何异常。于是一步步检查,最终发现了命令的注册有问题。

对照了一下老项目,发现问题就是没注册服务。

config/services.yaml 配置文件中,添加以下配置:

services:

    # 注册 dotenv:dump 命令
    Symfony\Component\Dotenv\Command\DotenvDumpCommand:
        - '%kernel.project_dir%/.env'
        - '%kernel.environment%'

再次执行,问题解决。

企业微信显示授权,可以手动选择是否授权以下三个信息:

  • 头像、昵称
  • 手机号
  • 邮箱

如果取消勾选,会导致应用拿不到手机号码,部分需要手机号码的应用会直接报错,并且授权弹窗一个月只出现一次。

这时,就会报错:

2024-07-26T08:47:14.png

如果希望第二次进入页面进行授权,能拿到没有勾选的信息的话,需要用户在企业微信里手动更改单个应用的授权信息

解决方法

- 阅读剩余部分 -

在做官网的时候,不想搞一张二维码图片放上去,想用点击链接的方式,直接打开企业微信名片。

找了半天发现这个功能有是有,就是藏的太深了。

在企业微信里,这个功能叫做“获客链接”。

获客链接生成方法

打开企业微信APP,点击底部菜单栏 “通讯录” -> “添加客户” -> “通过获客链接添加”,就可以根据需求来定制链接了。

PS: 可以通过 "工作台" -> “获客助手” 进入。

2024-04-22T07:31:52.png

这个功能的可以根据链接来区分客户的来源,同时,此功能也支持 API 调用生成。