阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简单云服务器部署开源短链工具-YOURLS

329次阅读
没有评论

共计 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

登录:http://y.xgss.net/admin/

简单云服务器部署开源短链工具 -YOURLS

添加短链接

简单云服务器部署开源短链工具 -YOURLS

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]# ll
total 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
简单云服务器部署开源短链工具 -YOURLS

python 构建 get 请求

import requests, json

url = "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 格式 简单云服务器部署开源短链工具 -YOURLS

2、POST 请求 用 python 来发送 POST 请求测试 这里以 form 表单形式提交数据,所以不需要将 POST 的 data 转为 json 格式 POST 请求的几种编码方式可以参考:https://www.cnblogs.com/android-it/p/9558751.html

import requests, json

url = "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, json

url = "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 主界面即可看到效果。

简单云服务器部署开源短链工具 -YOURLS

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

简单云服务器部署开源短链工具 -YOURLS

旧的后台地址:

简单云服务器部署开源短链工具 -YOURLS

新的后台界面:

简单云服务器部署开源短链工具 -YOURLS

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-04-28发表,共计4616字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中