Y

YOURLS

12.0k stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

自托管短链接服务,完全控制数据、详细统计,支持插件扩展。

智能下载

前往项目主页

该项目暂未提供安装包,请直接访问源代码仓库

自己搭建短链接服务,完全掌控数据和统计。

核心功能

  • 完全自托管:安装在自己的服务器上,数据隐私无忧
  • 详细点击统计:查看点击次数、来源、地理位置等
  • 自定义关键词:创建个性化短链接(如 yourls.com/offer)
  • 强大插件系统:社区提供众多插件,扩展功能丰富
  • 开放API:支持程序化创建和管理短链接

避坑指南

  • •需要 PHP 7.4 及以上版本,并开启 PDO_MYSQL 扩展;2. 推荐使用 HTTPS 以保证数据传输安全;3. 默认安装后建议修改后台路径(如 /admin)并设置强密码;4. 如果计划公开使用,需注意反垃圾机制;5. 生产环境推荐使用 Nginx/Apache 并启用 URL 重写。

适用场景

  • 品牌营销:使用自己的域名生成短链接,提升品牌形象
  • 社交媒体推广:缩短长链接,便于分享和追踪效果
  • 链接管理:统一管理所有短链接,查看点击数据
  • 学术引用:为论文或资料创建持久稳定的短链接

详细介绍

YOURLS 是一款开源免费的 PHP 应用,让你在自己的服务器上搭建专属的短链接服务。它完全掌控你的数据,提供详细的点击统计、自定义关键词、API 接口和强大的插件扩展系统。与商业短链接服务不同,你拥有全部数据,可自由定制。非常适合品牌营销、链接管理和需要隐私保护的场景。

常见问题与排障 (2)

故障排除
为什么 YOURLS 管理后台列表在使用德语 (de_DE) 或其他以点号作为千位分隔符的区域设置时,点击次数排序会出错?

在 YOURLS 1.10.6 中,点击量列显示按本地化格式化的数字(例如在 de_DE 中显示为 1.258),但 jQuery tablesorter 使用 usNumberFormat: true 解析这些数字,将 1.258 读取为 1.258 而不是 1258。这会破坏任何使用 . 作为千位分隔符的语言环境(de_DE、nl_NL、it_IT、pt_BR)中的排序功能。此问题已在上游 PR #4197 中修复(请更新 YOURLS)。针对 1.10.6 的变通方法:(1) 添加一个小型插件,在 html_head 钩子上输出 jQuery.tablesorter.defaults.usNumberFormat = false;。(2) 或者修改 js/tablesorte.js,使其只从点击量列中提取数字:textExtraction: { 4: function(node){ return $(node).text().replace(/\D/g, ''); } }。(3) 或者,将原始数字作为 data-text 属性添加到点击量单元格上,tablesorter 默认会读取该属性。

来源 Issue #4171
故障排除
如何修复 YOURLS 管理后台搜索在 MariaDB/PDO 环境下出现的致命错误 "COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'binary'"?

此问题发生在 YOURLS 1.10.4 中:当搜索 all 或 title 时,MariaDB 会话会将绑定的 :search 参数视为 binary,这通常是由于 init_connect=SET NAMES binary 覆盖了 DSN 字符集所导致的。

1. 验证连接设置:

SHOW VARIABLES LIKE 'init_connect';
SHOW VARIABLES LIKE 'character_set%';

2. 强制 PDO 连接使用 utf8mb4:

$pdo = new PDO(
    'mysql:host=localhost;dbname=YOUR_DB;charset=utf8mb4',
    'YOUR_USER',
    'YOUR_PASS',
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4",
    ]
);

或者,在建立连接之后运行:
$pdo->query('SET NAMES utf8mb4');

如果你可以控制服务器,请移除或更改 init_connect=SET NAMES binary。

3. 作为代码层面的变通方法,可以在标题搜索 SQL 中移除绑定占位符上的排序规则:

`title` COLLATE utf8mb4_unicode_ci LIKE (:search)

或者,显式转换该参数:
`title` COLLATE utf8mb4_unicode_ci
LIKE CONVERT(:search USING utf8mb4) COLLATE utf8mb4_unicode_ci

当连接字符集为 binary 时,不要使用 (:search) COLLATE utf8mb4_unicode_ci。对核心文件的补丁可能会在升级时被覆盖,因此更改连接字符集是首选的变通方法。

来源 Issue #4110

标签

url-shortenerself-hostedphpopen-sourceanalytics

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤1:下载 YOURLS 源码并上传到 Web 服务器(需 PHP 7.4+ 和 MySQL/MariaDB)

4

步骤2:在服务器上创建数据库和用户,并配置 user/config-docker.php 或 user/config.php 中的数据库连接信息

5

步骤3:在浏览器中访问你的域名,运行安装向导,设置管理员账号密码

安装指引
  1. 步骤1:下载 YOURLS 源码并上传到 Web 服务器(需 PHP 7.4+ 和 MySQL/MariaDB)
  2. 步骤2:在服务器上创建数据库和用户,并配置 user/config-docker.php 或 user/config.php 中的数据库连接信息
  3. 步骤3:在浏览器中访问你的域名,运行安装向导,设置管理员账号密码
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

删除 YOURLS 安装目录下的所有文件,同时删除对应的 MySQL 数据库和数据表。注意备份任何自定义配置和插件。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议MIT
最后更新2026-10-26 17:06:56
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐