前言

市面上短链接服务有很多,但大多都寿命很短,一些小厂商跑路的概率比较大,但大公司呢又容易被删。

如果实在要用第三方的短链服务,推荐用国外大公司的服务,相对来说比国内公司靠谱一些,比如 Bitly。

简介

YOURLS 是一款使用PHP+Mysql开发的短链接程序,相比公共短网址好处是数据掌握在自己手中,可控性更高。

功能如下:

  • 免费和开源软件

  • 私有(仅您的链接)或公共(每个人都可以创建短链接,适用于Intranet)

  • 顺序或自定义URL关键字

  • 方便的书签,可轻松缩短和共享链接

  • 出色的统计信息:历史点击报告,引荐来源跟踪,访问者地理位置

  • 整洁的Ajaxed界面

  • 出色的插件架构,可轻松实现新功能

  • 开发人员API

  • 全面的jsonp支持

  • 友好的安装程序

  • 示例文件可创建您自己的公共界面等

下载

可以在Github下载最新版本,解压后放到站点根目录,并将 user 目录下的 config-sample.php更名为config.php

安装部署

1. 创建数据库

使用MySQL,数据库名称为 yourls

1
create database yourls;

2. 编辑config.php内容

需要更新的内容为:

2.1 数据库信息

1
2
3
4
define( 'YOURLS_DB_USER', '你的数据库账户' );
define( 'YOURLS_DB_PASS', '你的数据库密码' );
define( 'YOURLS_DB_NAME', '数据库名称' );
define( 'YOURLS_DB_HOST', '数据库地址' );

2.2 网站设置

1. 域名

1
define( 'YOURLS_SITE', '你的yourls域名' );

2. COOKIEKEY

1
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );

这个可以简单的通过 https://yourls.org/cookie 来创建

3. 密码

1
2
3
$yourls_user_passwords = [
'username' => 'password',
];

这个密码支持md5加密,可以通过 https://yourls.org/md5 来进行创建。

比如:

1
2
3
4
<?php
$yourls_user_passwords = array(
'yydnas.cn' => 'md5:48335:2b72e01d89391160642c6a8d4e6b869d',
);

4. 其他设置

定义YOURLS的网站属性为公开还是私人,具体查看官方介绍: private-or-public

1
define( 'YOURLS_PRIVATE', true );

另外,如果需要中文的话,需要安装YOURLS 中文翻译,下载 zh_CN.mozh_CN.po ,放到 YOURLS/user/languages/目录。

然后修改:

1
define( 'YOURLS_LANG', 'zh_CN' );

更多的详细设置以及插件等功能的使用可以参考官方文档

3. 服务器配置

3.1 Apache2配置

在YOURLS的根目录创建 .htaccess 的文件。

1
2
3
4
5
6
7
8
9
# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / #子目录需要更改
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L] #子目录需要更改
</IfModule>
# END YOURLS

强制https的话在 RewriteBase 下面增加一行: RewriteCond %{HTTPS} !=on

然后创建YOURLS的网站配置文件,内容最简单的即可:(我只是简单测试一下,未配置https,根据需求自行配置)

1
2
3
4
5
6
7
8
9
<VirtualHost *:80>

ServerName yourls.yydnas.cn
DocumentRoot /var/www/YOURLS

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

3.2 Nginx配置

Nginx的网站配置示例:(这个相信也不用过多介绍,根据上面的注释进行修改即可)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
server {

# HTTP over IPv4 & IPv6
listen 80;
listen [::]:80;

# HTTPS over IPv4 & IPv6
# MUST BE EDITED TO REFLECT YOUR CONFIGURATION
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate yourls.yydnas.cn.crt;
ssl_certificate_key yourls.yydnas.cn.key;

# Server names
# MUST BE EDITED TO REFLECT YOUR CONFIGURATION
server_name yourls.yydnas.cn;

# Root directory
# MUST BE EDITED TO REFLECT YOUR CONFIGURATION
root /path/to/yourls/files;

# Rewrites
location / {
try_files $uri $uri/ /yourls-loader.php$is_args$args;
# if YOURLS is installed in a subdirectory, change the path
# to yourls-loader.php accordingly, eg
# try_files $uri $uri/ /subdir/yourls-loader.php$is_args$args;
}

# PHP engine
location ~ \.php$ {
include fastcgi.conf;
# OR
# include fastcgi_params;

fastcgi_index index.php;

# MUST BE EDITED TO REFLECT YOUR CONFIGURATION
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

4. 安装

配置好后重启Apache2或者Nginx,访问地址为:http(s)://域名/admin/index.php

点击 Install YOURLS 自动安装进入后台了。

使用

简单使用一下,以我的一篇文章为例:全面总结nginx服务器详细配置,地址很长,如下:

1
https://www.yydnas.cn/2023/03/2023.03.07-%E5%85%A8%E9%9D%A2%E6%80%BB%E7%BB%93nginx%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AF%A6%E7%BB%86%E9%85%8D%E7%BD%AE/

Enter the URL: 中粘贴该地址,点击 Shorten The URL ,短链接显示如下:

该链接即为你的短链接。

最后

尝试了几个,以我这篇文章的设置方法,得到的短链接地址都为: YOURLS服务器域名/1 YOURLS服务器域名/2 等等。

它还自带点击数统计以及位置跟踪的功能。

不得不说,YOURLS配置简单,功能丰富,实用性也不错。