搭建yourls短链接服务(网址缩短)

依然是太无聊了,搭个短链接玩,还特意淘了个短链接域名surl.pw

看了很多个短链接程序,pass掉了很多简单功能的 包括cf workers搭建的程序。最后在以下两个star数多的中做选择:

https://github.com/shlinkio/shlink

https://github.com/YOURLS/YOURLS

备注:yourls的插件https://github.com/YOURLS/awesome#plugins

最开始选择了shlink。因为介绍页清晰明白,功能看上去大致能覆盖我的需求。yourls star更多,支持插件扩展,更换主题等,但我觉得通过插件实现很多功能太麻烦,太臃肿,太不稳定,不想浪费太多精力在看插件上,只想即搭即用。但后来发现shlink最低只支持php8.1,不想装多php版本,所以最后还是选择了yourls。

1. 安装

下载最新版本文件到网站目录https://github.com/YOURLS/YOURLS/releases

解压,复制user/config-sample.phpuser/config.php

填写user/config.php所需的设置详细内容参考https://yourls.org/docs/guide/essentials/configuration

<?php

/**MySQL设置 */

/** 您的MySQL用户名 */
define( 'YOURLS_DB_USER', 'MySQL用户名' );

/** 您的MySQL密码*/
define( 'YOURLS_DB_PASS', 'MySQL密码' );

/** 您的数据库名称
 ** 仅使用小写字母[a-z]、数字[0-9]和下划线[_] */
define( 'YOURLS_DB_NAME', 'MySQL数据库名称' );

/** MySQL数据库主机
 ** 如果使用非标准端口,请将其指定为'主机名:端口'例如'localhost:9999'或'127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );

/** MySQL数据库表前缀
 ** YOURLS将使用此表前缀创建表(例如`yourls_url`,`yourls_options`等)
 ** 仅使用小写字母[a-z]、数字[0-9]和下划线[_] */
define( 'YOURLS_DB_PREFIX', 'yourls_' );

/**网站选项 */

/** YOURLS安装网站
 ** 全部小写,结尾没有斜杠。
 ** 如果要把它定义为"http://sho.rt",不使用 "http://www.sho.rt"请不要在浏览器中使用www的二级域名(反之亦然)
 ** 要使用多语种域名(如http://你好.世界),请在此处写入其ascii格式 (如http://xn--6qq79v.xn--rhqv96g/) */
define( 'YOURLS_SITE', '您的网站' );

/** YOURLS语言
 ** 更改此设置以使用语言的翻译文件,而不是使用默认的英语
 ** 翻译文件(.mo文件)必须导入在 user/language 目录中
 ** 可以查看 http://yourls.org/translations 了解更多信息 */
define( 'YOURLS_LANG', 'zh_CN' );

/** 允许同一个长URL包含多个短URL
 ** 如果设置为true,则同一长链接,不能有多个短链接
 ** 设置为false则允许多个短链接指向同一个长链接 */
define( 'YOURLS_UNIQUE_URLS', true );

/** 私有意味着访问短链接后台需要登录
 ** 设置为false则用于公共用途
 ** 如果您不确定,请阅读http://yourls.org/privatepublic 了解更多 */
define( 'YOURLS_PRIVATE', true );

/** 用于加密cookies的随机密码,您不需要记住它,所以可以使它更复杂
 ** 提示:在 http://yourls.org/cookie 生成随机的密码*/
define( 'YOURLS_COOKIEKEY', '修改为一些随机的字符' );

/** 允许访问后台的用户名和密码,密码可以是纯字符的,也可以是加密的散列
 ** YOURLS将自动加密此文件中的纯文本密码
 ** 阅读 http://yourls.org/userpassword 了解更多信息 */
$yourls_user_passwords = [
    '用户名' => '密码',
    // 'username2' => 'password2',
    // 您可以设置多个用户名和密码 'login'=>'password' lines
];

/** URL缩短方法: 36 或 62
 ** 36: 生成所有小写字母数字组合 (如:13jkm)
 ** 62: 生成大小写混合的字母数字组合 (如:13jKm或13JKm) */
define( 'YOURLS_URL_CONVERT', 36 );

/** 调试模式输出一些内部信息
 ** 默认值为false,编码时或提交新问题前启用 */
define( 'YOURLS_DEBUG', false );

/**
* 保留关键字(设置后生成的随机URL将避开保留的关键字)
* 在这里可以设置一些负面的、不需要的或潜在误导性的关键字
*/
$yourls_reserved_URL = [
    'porn', 'sex', 'fuck',
];

/*
 ** Personal settings would go after here.
 */

访问 域名/admin 开始安装

图片[1]-搭建yourls短链接服务(网址缩短)-THsInk

发现设置了中文,但还是英语。在这里找到翻译文件https://github.com/YOURLS/awesome#translations

将.po .mo文件上传到 ./user/languages 路径即可

图片[2]-搭建yourls短链接服务(网址缩短)-THsInk

2. 启用插件

点此启用插件

图片[3]-搭建yourls短链接服务(网址缩短)-THsInk

默认的几个插件中,我启用了以下两个:

图片[4]-搭建yourls短链接服务(网址缩短)-THsInk

3. 安装sleeky主题

默认主题实在太“经典”,其他可替换主题也只有三个主题,设计上相对比较现代的也已经是四年前的了。https://github.com/Flynntes/Sleeky

主题分为前端和后端两部分。下载解压 Sleeky 主题后可以看到两个文件夹 sleeky-frontend sleeky-backend ,前端只需要将 sleeky-frontend 中的文件复制到yourls网站根目录即可,后端则需要将 sleeky-backend 文件夹放到yourls目录下的 user/plugins 中,然后在后台管理(yourdomain.com/admin/plugins.php)中启动主题插件即可看到效果。

安装后发现前端显示异常。经搜索后找到解决方法:

sleeky-frontend/frontend/header.php 中第15行左右 < link rel =" stylesheet " href =" <?php echo $ YOURLS_SITE ?> /frontend/dist/styles.css " > 中的 <?php echo $ YOURLS_SITE ?> 删除即可。

略微编辑了下:

图片[5]-搭建yourls短链接服务(网址缩短)-THsInk

备注:

  • 主题配置改 /frontend/config.php ,其中注意启用reCAPTCHA
  • 文字汉化改 index.php

4. 发现打开短链接404

搜索得知,宝塔面板需要在网站-配置文件的最后一个 } 前添加以下内容

# URL重写
location / {try_files $uri $uri/ /yourls-loader.php$is_args$args;}

保存后测试正常。

6. 参考

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容