共计 4616 个字符,预计需要花费 12 分钟才能阅读完成。
简单云服务器部署开源短链工具 -YOURLS
YOURLS 是一款使用 PHP+Mysql 开发的短链接程序,相比公共短网址好处是数据掌握在自己手中,可控性更高。开源地址:https://github.com/YOURLS/YOURLS
前期准备
window 系统推荐 phpStudy 等集成 PHP 环境
linux 系统:LNMP(Linux+Nginx+Mysql+PHP)环境
域名,如果服务器在国内,则需要备案,笔者使用二级域名,http://y.xgss.net
部署
YOURLS 的安装流程类似于 PHP 站点。
将安装包解压并上传至服务器;将 user/config-sample.php 重命名为 user/config.php;编辑 user/config.php 文件,填入数据库信息和配置站点选项;访问 http://yoursite.com/admin/ 开始使用吧!
下载 YOURLS
YOURLS 免费开源,可以在 Github 下载最新版本(https://github.com/YOURLS/YOURLS/releases),解压后放到站点根目录,并将 config-sample.php 更名为 config.php。
wget https://github.com/YOURLS/YOURLS/archive/refs/tags/1.8.2.tar.gz
配置 MySQL 数据库
需要先新建一个 MySQL 数据库,并设置好账号、密码,然后修改 user/config.php 配置文件,填写正确的 MySQL 信息,配置信息如下。
修改数据库配置
修改 user/config.php// 配置数据库define('YOURLS_DB_USER', 'your db user name');define('YOURLS_DB_PASS', 'your db password');define('YOURLS_DB_NAME', 'yourls');define('YOURLS_DB_HOST', 'localhost');define('YOURLS_DB_PREFIX', 'yourls_');// 设置你的域名define('YOURLS_SITE', 'http://y.xgss.net');// 设置用户名和密码$yourls_user_passwords = [ 'admin' => '123456', // 设置好密码];
输入管理员账号密码登录后如果出现“Could not auto-encrypt passwords. Error was:“cannot write file”.”报错,请将 user/config.php 文件的权限改为 666,然后刷新网页,再把权限改回 644,因为你刚才填写密码时用的是明文,这样很危险,所以程序需要对其加密。
配置 nginx 反向代理
server { listen 80; server_name y.xgss.net; root /data/wwwroot/web/y.xgss.net/; access_log /data/wwwroot/log/y.xgss.net-access.log main_aliyun; error_log /dev/null; location / { index index.php try_files $uri $uri/ /yourls-loader.php } location ~ ^/.+\.php { fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; }}
重启 nginx
安装:http://y.xgss.net/admin/install.php


添加短链接

yourls 汉化
汉化包的 git 地址为https://github.com/guox/yourls-zh_CN,下载中文包然后解压后放在放在 user/languages/ 目录下
YOURLS 默认是中文界面,不方便操作,看到有网友提供了汉化,访问 yourls-zh_CN 下载汉化包,并解压至 user/languages
目录,然后修改user/config.php
# 语言包放到 languages[root@aliyun-hz languages]# lltotal 68-rw-r--r-- 1 www www 210 Apr 23 2017 index.html-rw-r--r-- 1 www www 51 Mar 24 2013 README.md-rw-r--r-- 1 www www 22123 Mar 24 2013 zh_CN.mo-rw-r--r-- 1 www www 32783 Mar 24 2013 zh_CN.po# 修改配置文件启用中文vi user/config.php# 启用中文define('YOURLS_LANG', 'zh_CN');
YOURLS- API
请求地址:http:// 域名 //yourls-api.php 参数:username(用户名)、password(密码)、format(格式 json)、url(长地址)、action(功能,shorturl)
1、GET 请求,构建下 get 请求,可以直接访问也可以用 python 构建请求
http://y.xgss.net/yourls-api.php?username=user&password=password&url=http://www.baidu.com&format=json&action=shorturl

python 构建 get 请求
import requests, jsonurl = "http://10.0.0.101/yourls-api.php?"data = {"username":"wangxiaoyu","password":"123456","url":"http://www.baidu.com","format":"json","action":"shorturl"}response = requests.get(url, data)print(json.loads(response.text))
访问返回的 http://10.0.0.101/q94n1k 这个短链接可以跳转到百度 返回信息为
{ 'url': { 'keyword': 'q94o0a', 'url': 'http://www.baidu.com', 'title': '百度一下,你就知道', 'date': '2020-04-21 07:40:58', 'ip': '10.0.0.1' }, 'status': 'success', 'message': 'http://www.baidu.com 已保存为', 'title': '百度一下,你就知道', 'shorturl': 'http://10.0.0.101/q94o0a', 'statusCode': 200}
如果不指定 format 为 json 的话,默认是 XML 格式
2、POST 请求 用 python 来发送 POST 请求测试 这里以 form 表单形式提交数据,所以不需要将 POST 的 data 转为 json 格式 POST 请求的几种编码方式可以参考:https://www.cnblogs.com/android-it/p/9558751.html
import requests, jsonurl = "http://10.0.0.101/yourls-api.php?"data = {"username":"wangxiaoyu","password":"123456","url":"http://www.baidu.com","format":"json","action":"shorturl"}response = requests.post(url, data)print(json.loads(response.text))
返回的信息为
{ 'url': { 'keyword': 'q94nkx', 'url': 'http://www.baidu.com', 'title': '百度一下,你就知道', 'date': '2020-04-21 07:31:45', 'ip': '10.0.0.1' }, 'status': 'success', 'message': 'http://www.baidu.com 已保存为', 'title': '百度一下,你就知道', 'shorturl': 'http://10.0.0.101/q94nkx', 'statusCode': 200}
3、使用 token 而不使用账号密码
YOURLS 允许使用 username 和 password 参数(如果您的设置是私有的话)以老式的方式调用 API。如果您担心将自己的凭证发送出去,还可以使用秘密签名令牌进行 API 调用。signature 在 API 请求中使用参数。例:
http://yoursite/yourls-api.php?signature=1002a612b4&action=...
python 示例
import requests, jsonurl = "http://10.0.0.101/yourls-api.php?"data = {"signature":"6962355501","url":"http://www.baidu.com","format":"json","action":"shorturl"}response = requests.post(url, data)print(json.loads(response.text))
安装 Sleeky 主题,美化 YOURLS
YOURLS 界面显得非常古老,风格挺老的,前几天在 Github 上看到一款 YOURLS 主题 Sleeky,这篇文章分享下 Sleeky 主题的安装,希望对你有所帮助。
安装 Sleeky 主题
最新版 Sleeky 主题可前往 Github 下载:https://github.com/Flynntes/Sleeky/releases
Sleeky 主题主题包括两部分,一部分是 YOURLS 前端,另一部分是 YOURLS 后台管理。下载 Sleeky 主题主题后可看到有 2 个文件夹:
sleeky-frontend: 前端主题sleeky-backend:后端主题
将 sleeky-frontend 文件夹下的内容放到 YOURLS 站点根目录下即可,不需要额外的设置,直接访问 YOURLS 主界面即可看到效果。

将后端文件夹 sleeky-backend 放到 YOURLS 下的 /user/plugins 目录,并在 YOURLS 后台启用 Sleeky 主题插件,如下图。

旧的后台地址:

新的后台界面:

