首页 » Web前端 » yourlsphp技巧_简单支配开源短链对象YOURLS

yourlsphp技巧_简单支配开源短链对象YOURLS

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

linux系统:LNMP(Linux+Nginx+Mysql+PHP)环境

域名,如果做事器在海内,则须要备案,笔者利用二级域名,http://y.xgss.net

yourlsphp技巧_简单支配开源短链对象YOURLS

示例

yourlsphp技巧_简单支配开源短链对象YOURLS
(图片来自网络侵删)

http://y.xgss.net/aliyun | http://y.xgss.net/tx

支配

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

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

添加短链接

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主题插件,如下图。

旧的后台地址:

新的后台界面:

标签:

相关文章