突然对短网址转换程序感了兴趣,搜索了下找到一个开源的短网址程序 YOURLS ,于是利用宝塔面板搭建了一个,期间走了一些小弯路记录下搭建过程
程序说明
YOURLS stands for Your Own URL Shortener. It will allow you to run your own URL shortening service (a la TinyURL or Bitly).Running your own URL shortener is fun, geeky and useful: you own your data and don't depend on third-party services. It's also a great way to add branding to your short URLs, instead of using the same public URL shortener everyone uses.
大概意思就是说YOURLS,这个基于PHP开发的短链接服务,适用于私有,且不依赖第三方公共短链接生成。你只需要有一定的耐心和一个短域名,就可以感受到短链接生成的乐趣。
程序特点
- 免费和开源软件
- 私人(仅限您的链接)或公共(每个人都可以创建短链接,适用于内部网)
- 出色的插件架构和数十个插件,可轻松实现新功能
- 方便的书签可轻松缩短和共享链接
- 很棒的统计数据:历史点击报告、引荐来源跟踪、访问者地理位置
- 开发人员 API 将您的应用程序集成到其他应用程序中
准备工作
装好宝塔面板的 VPS 一台,域名一个(越短越好),首先把域名解析到 VPS 上面。
开始搭建
| 添加站点
进入宝塔面板后台点击添加站点

填写必要的信息,域名,数据库名称和密码

| 下载源码
然后去 YOURLS GETHUB 项目下载最新源码 下载 YOURLS
| 修改配置文件
下载到本地然后解压打开,找到 user
目录打开在 user 目录下有个 config-sample.php
文件,复制一份改名为 config.php

| 配置数据库
打开 config.php
修改里面的数据库参数 YOURLS_DB_USER
是代表数据库用户,YOURLS_DB_PASS
代表数据库密码,YOURLS_DB_NAME
代表数据库名称,就拿三个数据的值都是 yourl
演示如下:
define( 'YOURLS_DB_USER', '数据库用户名' );
define( 'YOURLS_DB_PASS', '数据库密码' );
define( 'YOURLS_DB_NAME', '数据库名字' );
define( 'YOURLS_DB_HOST', 'localhost' ); //不用改
define( 'YOURLS_DB_PREFIX', 'yourls_' ); //不用改
//上面前三行改成宝塔设置好的数据库信息
define( 'YOURLS_SITE', 'http://' ); //你自己服务器的域名 用最短的,短地址也是基于这个生成。
define( 'YOURLS_HOURS_OFFSET', '+8'); //时区偏移(不用改)
define( 'YOURLS_LANG', '' ); //这个语言默认是英文
define( 'YOURLS_UNIQUE_URLS', true ); //短地址是否唯一(不用改)
define( 'YOURLS_PRIVATE', true ); //是否私有,如果私有的,则进行api调用生成短地址时需要传递用户名和密码(不用改)
define( 'YOURLS_COOKIEKEY', 'A2C7&H~r80pTps{nIfI8VFpTxnfF3c)j@J#{nDUh' );//加密cookie 去 http://yourls.org/cookie 获取
$yourls_user_passwords = [
'admin' => '123456',
// 'username2' => 'password2',
];
//用户名=>密码 可填多个,如我这里是用户名是admin,密码是123456
define( 'YOURLS_DEBUG', false ); //是否开启调试(不用改)
define( 'YOURLS_URL_CONVERT', 62 ); //使用36进制 还是62进制 这个最好一开始设好不要修改,避免地址冲突,建议62进制(不用改)
$yourls_reserved_URL = array(
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', //排除一下短地址,这些地址是不会生成的(不用改)
);
| 配置语言文件
下载最新中文语言包1.9.2 1.7.3中文包,放到 /user/languages
下,在 config.php
里找到 define( 'YOURLS_LANG', '' );
更改为 define( 'YOURLS_LANG', 'zh-CN' );
| 上传源码
然后打开宝塔面板进入后台,点击 网站 找到要架设的网站 点击网站目录上的链接如图

把原始文件删掉,然后点击 上传。上传压缩包在里面解压更快。


| 配置伪静态
打开宝塔面板,点击网站 找到 设置 再找到里面的 伪静态 ,添入如下代码:location / {
try_files $uri $uri/ /yourls-loader.php$is_args$args;
}
点击 保存 。

| 安装 YOURLS
在浏览器里打开 http://你的域名/admin
会跳转到安装页面,点击 INSTALL YOURLS
按钮开始安装。接着打开 http://你的域名/admin
输入账号 admin
密码 123456
开始使用。

最后
你可能遇到一些问题:
* 如果安装报错,或者不跳转,那有可能是你的php 或者 mysql 版本过低
* 短链接后面从1开始,很不爽,可以推荐用时间戳来生成
只需要修改 includes/functions.php 272行左右
将 $id = yourls_get_next_decimal(); 改为 $id = time();
* 一些YOURLS的拓展
你可以使用官方自带的插件库:
YOURLS/awesome: 🎉 A curated list of awesome things related to YOURLS (github.com)
多的吓人!!!从0-9到A-Z排列.
* api接口生成
可以参考https://yourls.org/#API
请求地址:http://域名//yourls-api.php
参数:username(用户名)、password(密码)、format(格式 json)、url(长地址)、action(功能,shorturl)
返回(示例):
{
"url": {
"keyword": "ozh",
"url": "http:\/\/ozh.org",
"title": "Ozh RICHARD \u00ab ozh.org",
"date": "2014-10-24 16:01:39",
"ip": "127.0.0.1"
},
"status": "success",
"message": "http:\/\/ozh.org added to database",
"title": "Ozh RICHARD \u00ab ozh.org",
"shorturl": "http:\/\/sho.rt\/1f",
"statusCode": 200
}
上面的 shorturl 就是生成的短链接,也可以在后台直接生成指定的短链接。
* 查看统计某个链接的点击情况
可以在生成的每个短链接后面加上一个 +
如:http://你的域名/j7fk2+ 进行访问
