首页
关于
Search
1
AdGuardHome 安装及部署教程
43,057 阅读
2
关于微软Azure学生白嫖指南
10,626 阅读
3
搭建基于telegram的无限网盘
10,497 阅读
4
Oracle开放全部端口并关闭防火墙
10,418 阅读
5
最新Cloudflare免费自选IP教程(非Partner)
9,710 阅读
默认分类
技术搬砖
教学设计
故事奇谈
生活琐事
错题分析
精品软件
登录
找到
1
篇与
短链
相关的结果
2024-09-25
在PrivateBin中使用YOURLS短链接服务
简介 搭建了一个PrivateBin这个加密剪贴板服务,但保存后生成的链接往往太长了,看起来太复杂,就像是这样: 图片 暂时我们还是没有上面的那个缩短链接按钮,接下来我们就来配置,使之出现这个按钮来缩短链接。 部署YOURLS YOURLS是一款使用 PHP+MySQL 开发的开源短链接管理系统,可以创建公开或私有的短链接,允许随机或自定义关键字,拥有强大的数据统计分析功能,文档齐全,插件丰富,支持开放 API 扩展。项目:https://github.com/YOURLS/YOURLS 官网:http://yourls.org/ 下载:https://github.com/YOURLS/YOURLS/archive/master.zip 准备 VPS 主机 短域名 宝塔面板 环境 YOURLS的安装环境要求如下: Nginx 1.20 PHP 7.2.0+ (PHP8.1 会出现排版问题,需要修改主题文件) MySQL 5+ 开始搭建 首先用宝塔新建站点,选择好 php 和 mysql 然后进入该站点目录点击宝塔的远程下载输入 Yourls 的下载地址 目前嗯最新版本是 1.92 https://github.com/YOURLS/YOURLS/archive/refs/tags/1.9.2.zip下载好后解压,并把文件夹内的所有文件剪切到网站根目录 将程序自带的一些默认文件改名,可以使用宝塔直接修改,具体修改如下: cp user/config-sample.php user/config.php # 配置文件 cp sample-public-front-page.txt index.php # 网站首页,如果不对外提供短链服务,可以不改 cp sample-robots.txt robots.txt编辑/www/wwwroot/你的域名/user/config.php文件,按照自己的情况配置。 /** MySQL 数据库用户名 */ define( 'YOURLS_DB_USER', 'your db user name' ); /** MySQL 数据库密码 */ define( 'YOURLS_DB_PASS', 'your db password' ); /** 用来存储 YOURLS 数据的数据库名 */ define( 'YOURLS_DB_NAME', 'yourls' ); /** 数据库主机ip '127.0.0.1:666' ** 如果你正在使用一个非标准断口,指定为'主机名:端口',例如'本地主机:9999'或'127.0.0.1:666' */ define( 'YOURLS_DB_HOST', 'localhost' ); /** MySQL 表前缀字符 */ define( 'YOURLS_DB_PREFIX', 'yourls_' ); /** YOURLS 安装 URL -- 字母小写,并且结尾不带斜线 ** 如果你把它定义为“http://iyideng.vip“,不要使用”http://www.iyideng.vip“在浏览器中(反之亦然) */ define( 'YOURLS_SITE', 'http://your-own-domain-here.com' ); /** 服务器时区 GMT 值,北京时间 +8 */ define( 'YOURLS_HOURS_OFFSET', 0 ); /** YOURLS 语言 **更改此设置以使用您的语言的翻译文件,而不是默认的英语。 **翻译文件 (a .mo file) 必须被安装在 user/language 目录中。 **更多信息,请访问 http://yourls.org/translations **请访问 https://github.com/ZvonimirSun/YOURLS-zh_CN/archive/master.zip 下载YOURLS汉化包,然后将包中的zh_CN.mo和zh_CN.po文件放到 /user/languages 目录下,然后在下面填入zh_CN */ define( 'YOURLS_LANG', '' ); /** 允许多个短链接对应同一原链接 ** 设置为 true 则表示短链接和原链接一一对应(默认 Yourls 设置) ** 设置为 false 则允许多个短链接对应同一原链接(类似 bit.ly 表现) */ define( 'YOURLS_UNIQUE_URLS', true ); /** Private 表示后台管理需要密码登陆作为默认手段来实现管理 ** 设置为 false 意味着对公众开放模式(例如在内网配置或者测试安装) ** 查看 http://yourls.org/privatepublic 获取更多细节 */ define( 'YOURLS_PRIVATE', true ); /** 用来加密 cookies 的一串随机哈希值,并不需要记住这个,要让它尽量长而复杂,可以从 http://yourls.org/cookie 来获取随机哈希值 **/ define( 'YOURLS_COOKIEKEY', 'modify this text with something random' ); /** 允许访问网站的用户名和密码。密码为纯文本或加密哈希 ** YOURLS将自动加密此文件中的纯文本密码 ** 阅读 http://yourls.org/userpassword 了解更多信息 */ $yourls_user_passwords = array( 'username' => 'password', // 'username2' => 'password2', // 你可以使用 'login'=>'password' 这种格式来添加更多行 ); /** 调试模式,用来输出一些内部信息 ** 对于运行中的站点默认是 false,在编码或者获取提交信息时才会启用 */ define( 'YOURLS_DEBUG', false ); /** 链接缩短方式:36 或者 62 **/ define( 'YOURLS_URL_CONVERT', 36 ); /* * 36: 生成数字和小写字母组成的短链接关键字(例如:13jkm) * 62: 生成数字大小写混合的短链接关键字(例如:13jKm 或者 13JKm) * 选择一个来设置,你开始创建连接之后最好别再更改 */ /** * 保留关键字(这样子在创建链接时就会屏蔽这些关键字) * 这里会填上负面、潜在误导性的词语 */ $yourls_reserved_URL = array( 'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', ); /* ** 自定义的个人设置项可以写在下面 */编辑index.php文件,将$page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ;,如果不需要访问网站首页,可以不修改。 设置伪静态,网站 -> 设置 -> 伪静态,输入以下代码并保存: location / { try_files $uri $uri/ /yourls-loader.php?$args; }访问你的域名开始安装,安装界面如下: image.png图片 点击install yourls开始安装,完成后如图所示: image.png图片 打开你的域名就可以看到首页了,输入一个网址,如果能正确生成短网址,就没问题了。 image.png图片 设置中文 前面我们修改user/config.php时设置了中文,不过安装后并不是中文,所以我们还需要安装汉化包。 访问 [yourls-zh_CN]() 下载汉化包,并解压到user/languages目录。 image.png图片 image.png图片 安装好之后,刷新一下就发现已经是中文了。 使用插件 在页面上点击” 管理界面”,使用配置文件填写的用户名和密码登录。 输入管理员账号密码登录后如果出现“Could not auto-encrypt passwords. Error was: “cannot write file”.”报错,请将user/config.php文件的权限改为666,然后刷新网页,再把权限改回644,因为你刚才填写密码时用的是明文,这样很危险,所以程序需要对其加密。 点击左上角的 “管理插件”,这里便能管理和激活插件,将鼠标移到插件右侧的“动作” 那一栏,会出现激活 / 取消激活菜单,点击便可开启 / 关闭插件。 先激活自带的Random SHortURLs插件,它可以让短链末尾生成随机的字符串。 图片 另外,推荐安装 reCaptcha,可以在登录页面增加谷歌验证码,安装和使用方法见下方【启用谷歌 recaptcha】。 申请谷歌 recaptcha 到 https://www.google.com/recaptcha/admin/create 申请 recaptcha 标签随便填,类型选择 V3 并将你的 yourls 域名添加上去 image.png图片 打开网站根目录下 / frontend 里的 config.php 将 define("enableRecaptcha", false);里的 false 修改成 true,然后填入你申请到的密匙 define("recaptchaV3SiteKey", '填入sitekey'); // reCAPTCHA V3 Secret Key define("recaptchaV3SecretKey", '填入密匙');如果是国内主机安装,或是需要国内用户正常使用 reCaptcha 服务。 只要把插件源码中 reCaptcha 服务接口域名由google.com替换成recaptcha.net即可。 找到reCaptcha的安装目录/www/wwwroot/你的域名/user/plugins/Admin-reCaptcha,打开recaptchalib.php文件,将 private static $_siteVerifyUrl = "https://www.google.com/recaptcha/api/siteverify?";替换成 private static $_siteVerifyUrl = "https://www.recaptcha.net/recaptcha/api/siteverify?";打开plugin.php文件,将 $.getScript( "https://www.google.com/recaptcha/api.js?onload=loadCaptcha&render=explicit");替换成 $.getScript( "https://www.recaptcha.net/recaptcha/api.js?onload=loadCaptcha&render=explicit");访问 https://github.com/YOURLS/awesome-yourls 可以获得更多插件。 使用主题 YOURLS默认的界面比较简陋,推荐安装更好看的主题。 目前有三款主题:Sleeky、Infinity Squared 和 Air 666。 推荐使用 Sleeky 这款主题。 以同样的方法下载 Sleeky 主题 目前版本是 2.5 https://github.com/Flynntes/Sleeky/archive/refs/tags/v2.5.0.zip将 Sleeky 主题前段文件夹里的所有文件(frontend 和 index.php)放到网站根目录,将 sleeky-backend 文件夹放入 user/plugins / 目录。然后到插件页,激活主题即可。 图片 图片 注意:如果使用的是 PHP 8.1 及以上,将会导致主题无法正常显示。只需要在前端主题文件夹内找到 header.php 文件,删除第 15 行:<?php echo $YOURLS_SITE ?>,保存后,刷新即可。 图片 更换主题后,管理员无法登录 对/root/yourls/yourls_data/user/plugins/sleeky-backend/plugin.php进行修改,if (yourls_is_valid_user() != 1) {修改为if( defined( 'YOURLS_USER' ) ) {,如下图所示: 图片 后端演示: image.png图片 前端演示: image.png图片 部署PrivateBin 添加网站&绑定域名 上传文件 前往github下载PrivateBin最新文件(https://github.com/PrivateBin/PrivateBin),下载完成后上传到网站根目录,解压后顺便授予对应的读写权限。 部署&配置PrivateBin 上传完成压缩包并解压后就可以通过域名访问PrivateBin,但是此时PrivateBin还是默认的配置,所以还需要修改配置文件,不然有些功能是无法使用。 进入PrivateBin对应的文件夹,再进入cfg文件夹,复制"conf.sample.php"这个文件,粘贴到原位置并重命名为"conf.php",然后打开这个文件,编辑配置文件。 1.启用讨论 如果需要讨论功能,就可以在配置文件中找到"discussion",更改为”true“。如果不需要讨论功能就不用打开;如果还需要讨论的时候显示发言时间,也可以把下面的”discussiondatedisplay“一并打开。 图片 2.启用上传文件 PrivateBin默认禁止上传文件,但从实用性角度而言本人还是建议启用,在配置文件中找到”fileupload“,更改为”true“。默认上传文件大小限制为10MB,如果需要上传更大文件,可以修改”sizelimit“大小,但是不建议改太大,建议别想不开用这个来传文件,需要上传文件的话可以用第三期搭建的alist来,或者使用其他的方式,而且谁会有很大的文件需要阅后即焚啊。 图片 图片 3.配置数据库 其实数据库也是可以不用配置的,PrivateBin可以不用数据库,但是吧,这样会把所有内容直接存在本地,而且serv00本来性能就不行,还不如用数据库把相关数据独立出去。 在配置文件夹找到”model“项,可以看到有很多配置信息,但是除去第一项都是注释掉了(不生效),在配置mysql之前需要先注释掉原本配置信息,把第一项”model“全部注释掉(注释就是前面加个;符号,或者直接删掉这一项也行)。 然后往下拉,在其中一个”model“项中找到“mysql”的内容,先删去注释(删掉前面;符号),然后依次配置数据库地址、名称、用户信息等内容。 图片 (可选)4.忽略http错误 先说一下,并不建议忽略http错误,默认情况下PrivateBin只会接收https的请求,如果是http请求会报错,serv00配置ssl证书有点麻烦,但是可以用cloudflare来实现https并加速访问,所以忽略这个错误完全没必要,而且使用http访问就摒弃了避免隐私泄漏的宗旨,当然如果就是想用http访问,可以在配置文件中修改“httpwarning”对应内容。 缩短链接 获取YOURLS 的signature token YOURLS关于signature token的介绍是: YOURLS允许使用老方法进行API调用,即使用username和password参数。 如果你担心这有潜在的风险,你也可以不使用你的用户名或密码进行API调用,而使用一个 secret signature token。 所以选择signature token是个更安全的选项。 获取signature token方法如下: 打开你的YOURLS管理界面的网页,点击上方菜单中的工具选项,然后滑到界面底部就能看见安全的API调用一栏,在那里就写着: 你的 secret signature token:XXXXX (请保存好,勿泄露)。然后复制XXXXX的内容。 修改PrivateBin配置文件 - YOURLS内配置 首先官方文档内说如果您选择自托管解决方案,您必须启用CORS支持。以Nginx为例,可以通过在YOURLS的Nginx配置文件中设置PHP相关字段的头部来实现,比如宝塔面板内的URL rewrite: location ~ \.php$ { add_header Access-Control-Allow-Origin "https://your.privatebin.domain" always; }- PrivateBin配置 进入PrivateBin对应的文件夹,再进入cfg文件夹,然后打开"conf.php"文件,编辑配置文件 我们可以在里面找到这样一段配置: ; (optional) URL shortener address to offer after a new paste is created. ; It is suggested to only use this with self-hosted shorteners as this will leak ; the pastes encryption key. ; urlshortener = "https://shortener.example.com/api?link="我们要删除urlshortener前面的 ";" 使这个配置生效,然后将引号内的内容改为${basepath}shortenviayourls?link= 就像这样: ; (optional) URL shortener address to offer after a new paste is created. ; It is suggested to only use this with self-hosted shorteners as this will leak ; the pastes encryption key. urlshortener = "${basepath}shortenviayourls?link="然后翻到配置文件最底部有如下段落: [yourls] ; When using YOURLS as a "urlshortener" config item: ; - By default, "urlshortener" will point to the YOURLS API URL, with or without ; credentials, and will be visible in public on the PrivateBin web page. ; Only use this if you allow short URL creation without credentials. ; - Alternatively, using the parameters in this section ("signature" and ; "apiurl"), "urlshortener" needs to point to the base URL of your PrivateBin ; instance with "shortenviayourls?link=" appended. For example: ; urlshortener = "${basepath}shortenviayourls?link=" ; This URL will in turn call YOURLS on the server side, using the URL from ; "apiurl" and the "access signature" from the "signature" parameters below. ; (optional) the "signature" (access key) issued by YOURLS for the using account ; signature = "" ; (optional) the URL of the YOURLS API, called to shorten a PrivateBin URL ; apiurl = "https://yourls.example.com/yourls-api.php"我们要修改的是最后一段的signature和apiurl,同样的,删除前面的 ";" 然后填入你的signature和apiurl signature:刚刚我们已经在YOURLS管理面板获取 apiurl :https://你的yourls地址/yourls-api.php 另外注意[yourls]中的urlshortener,也需要删除前面的 ";",填入下面的值 修改后如下: [yourls] ; When using YOURLS as a "urlshortener" config item: ; - By default, "urlshortener" will point to the YOURLS API URL, with or without ; credentials, and will be visible in public on the PrivateBin web page. ; Only use this if you allow short URL creation without credentials. ; - Alternatively, using the parameters in this section ("signature" and ; "apiurl"), "urlshortener" needs to point to the base URL of your PrivateBin ; instance with "shortenviayourls?link=" appended. For example: urlshortener = "${apiurl}?signature=${signature}&action=shorturl&format=json&url=" ; This URL will in turn call YOURLS on the server side, using the URL from ; "apiurl" and the "access signature" from the "signature" parameters below. ; (optional) the "signature" (access key) issued by YOURLS for the using account signature = "XXXXXX" ; (optional) the URL of the YOURLS API, called to shorten a PrivateBin URL apiurl = "https://example.com/yourls-api.php"
技术搬砖
# PHP
# YOURLS
# PrivateBin
# 短链
# 阅后即焚
admin
1年前
0
117
0