【服务器能干什么】搭建一个短网址平台,可以查看数据详情!

昨天在 YouTube 上看到又一个搭建自己短网址的视频教程,用的是开源的 polr,但是按照步骤一步步搭建下来,最后一步都会出现

顺哥轻创

PLAINTEXT

Whoops, looks like something went wrong

百度、谷歌查了一圈也没找到有效的解决方法。(顺带说一下,查出来很多的文章都是出自同一个作者,国内有的人就是瞎转载,自己根本没有尝试过,一个人错了,转载的人也跟着一起错,完全在浪费搜索者的时间,这个现象在百度、CSDN 现尤为严重,谷歌相对好一点)

折腾了一晚上,换了两台服务器,查看官方文档,尝试了几种方法也没解决问题,心里非常不舒服。

考虑到 polr 也很久没有更新了,自己的能力也不足以解决遇到的 bug,而工作原因,确实对点击链接的统计有需求,我开始寻找别的解决方案。

然后找到了这个 ——YOURLS

官方文档:https://yourls.org

简单介绍

什么是 YOURLS?

YOURLS stands for Your Own URL Shortener. It is a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL or Bitly).

Running your own URL shortener is fun, geeky and useful: you own your data and don’t depend on third-party services. It’s also a great way to add branding to your short URLs, instead of using the same public URL shortener everyone uses.

大概意思就是说 YOURLS,这个基于 PHP 开发的短链接服务,适用于私有,且不依赖第三方公共短链接生成。你只需要有一定的耐心和一个短域名,就可以感受到短链接生成的乐趣。

特点

  • 免费而且开源
  • 使用具有两面性:私有的(仅自己使用)或者生成公共的(每个人都可以创建短链接,适用于 Intranet)
  • 顺序排列 (从 1 到 n) 或自定义 URL 关键字
  • 十分方便的类书签模式记录,可轻松缩短和共享链接
  • 出色的统计信息:历史点击报告,引荐来源跟踪,访问者地理位置
  • 整洁的 Ajaxed 界面
  • 出色的插件架构,可轻松实现新功能
  • 支持开发人员 API
  • 全面的 jsonp 支持
  • 安装十分友好
  • 示例文件可创建您自己的公共界面等

跟着官方文档和 Pluto Tz 提供的文章,结合自己的生产环境,我终于成功搭建好了自己的短链接服务。

展示链接

下面是一步一步的安装记录。

安装环境

  • 系统 Centos7

  • 宝塔面板(LNMP)

    • Nginx 1.16.1
    • MySQL 5.5.62
    • PHP 7.0

新建站点

首先,打开宝塔面板,我们来添加一个已经解析好的网站。

安装数据库,php。

然后给域名申请一个 SSL 证书:

20200805135625

开启强制 https:

设置伪静态:

PLAINTEXT

location / {try_files $uri $uri/ /yourls-loader.php$is_args$args;
}

下载源码

到 github 上下载最新版本:

https://github.com/YOURLS/YOURLS/releases

目前最新的是 1.7.9

选择下载(国内速度比较慢,不过好在文件不大,只有 2.7M)

当然如果我们的服务器不在大陆的话,还可以用服务器来下载,速度会快很多。

方法如下:

打开网站根目录:

下载好了之后,直接点解压:

打开 YOURLS-1.7.9 文件夹,全选里面的内容,粘贴到网站根目录:

接下来打开目录 /user/, 把里面的 config-sample.php 改成 config.php

然后我们来编辑里面的内容:

打开之后是这样的:

PLAINTEXT

<?php
/* This is a sample config file.* Edit this file with your own settings and save it as "config.php"** IMPORTANT: edit and save this file as plain ASCII text, using a text editor, for instance TextEdit on Mac OS or* Notepad on Windows. Make sure there is no character before the opening <?php at the beginning of this file.*//*** MySQL settings - You can get this info from your web host*//** MySQL database username */
define( 'YOURLS_DB_USER', 'your db user name' );/** MySQL database password */
define( 'YOURLS_DB_PASS', 'your db password' );/** The name of the database for YOURLS */
define( 'YOURLS_DB_NAME', 'yourls' );/** MySQL hostname.** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );/** MySQL tables prefix */
define( 'YOURLS_DB_PREFIX', 'yourls_' );/*** Site options*//** YOURLS installation URL -- all lowercase, no trailing slash at the end.** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your browser (and vice-versa) */
define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );/** Server timezone GMT offset */
define( 'YOURLS_HOURS_OFFSET', 0 ); /** YOURLS language** Change this setting to use a translation file for your language, instead of the default English.** That translation file (a .mo file) must be installed in the user/language directory.** See http://yourls.org/translations for more information */
define( 'YOURLS_LANG', '' ); /** Allow multiple short URLs for a same long URL** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
define( 'YOURLS_UNIQUE_URLS', true );/** Private means the Admin area will be protected with login/pass as defined below.** Set to false for public usage (eg on a restricted intranet or for test setups)** Read http://yourls.org/privatepublic for more details if you're unsure */
define( 'YOURLS_PRIVATE', true );/** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookie **/
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );/** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as encrypted hashes** YOURLS will auto encrypt plain text passwords in this file** Read http://yourls.org/userpassword for more information */
$yourls_user_passwords = array('username' => 'password',// 'username2' => 'password2',// You can have one or more 'login'=>'password' lines);/** Debug mode to output some internal information** Default is false for live site. Enable when coding or before submitting a new issue */
define( 'YOURLS_DEBUG', false );/*** URL Shortening settings*//** URL shortening method: 36 or 62 */
define( 'YOURLS_URL_CONVERT', 36 );
/** 36: generates all lowercase keywords (ie: 13jkm)* 62: generates mixed case keywords (ie: 13jKm or 13JKm)* Stick to one setting. It's best not to change after you've started creating links.*//** 
* Reserved keywords (so that generated URLs won't match them)
* Define here negative, unwanted or potentially misleading keywords.
*/
$yourls_reserved_URL = array('porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
);/*** Personal settings would go after here.*/

下面一条一条来说明:

PLAINTEXT

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://your-own-domain-here.com' ); # 你自己的域名 越短越好,比如我的loll.cc(再短的申请不到了。。。)短地址基于这个生成。
define( 'YOURLS_HOURS_OFFSET', 0 );   # 时区偏移 改成 8 
define( 'YOURLS_LANG', '' );  # 语言设置,默认是英文,后面我们改成中文版本,填'zh_CN'
define( 'YOURLS_UNIQUE_URLS', true );   # 不用改,短地址是否唯一 
define( 'YOURLS_PRIVATE', true );        # 不用改,是否私有,如果私有的,则进行api调用生成短地址时需要传递用户名和密码
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );    # 点击http://yourls.org/cookie 复制里面的密钥,这个不用记住的。
'username' => 'password',  # 用户名=>密码  可填多个  登录成功后这里的明文密码会被加密,这里默认是没有的,我们为了安全加上一个,比如用户名是'admin',密码是'123456'
define( 'YOURLS_DEBUG', false );  # 不用改,是否开启调试  
define( 'YOURLS_URL_CONVERT', 36 );     # 自己设置使用36进制 还是62进制  这个最好一开始设好不要修改,避免地址冲突,建议62进制
$yourls_reserved_URL = array(                                              'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
);  # 排除这些敏感词汇,这些地址是不会生成的

首先是数据库的相关信息,由于我们创建网站的时候已经创建好了数据库,所以,可以在这边找到数据库的情况:

‘YOURLS_COOKIEKEY’的信息:

填完之后,保存。

下面我们来安装语言包(如果没改成’zh_CN’的话,自己想要用英文,这一步可以跳过)

语音包地址:

https://github.com/ZvonimirSun/YOURLS-zh_CN

作者已经停止更新了貌似,不过还可以用,有能力的同学也可以帮忙翻译。

语音包下载方法同上面讲过的,两种方法,自行选择。

我这里还是用服务器下载:

同样,解压,然后把 /user/languages/YOURLS-zh_CN-1.7.3 的文件剪切出来:

到这里应该基本上已经完成了,访问一下

浏览器 输入 https:// 域名 /admin。

报错了!!

观察网站,可能是域名路径的问题,我之前在

define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );

没有加 https://, 修改一下再看看:

ok!

直接点击安装!

由于我们之前已经配置好的数据库等文件,所以这里直接显示完成了。

点击进入管理员页面,

输入账号密码就可以访问啦!

这边我提供一个测试账号给大家测试一下,账号 admin, 密码 loll.cc, 后续会关掉,仅仅供测试用噢。

添加一个网址:

压缩网址。

之后可以通过在短网址之后加上一个 + 号来查看数据情况。

可以愉快地玩起来了!

补充

这里是来自 PlutoTz 博客的补充内容。

你可能遇到一些问题:

1、如果安装报错,或者不跳转,那有可能是你的 php 或者 mysql 版本过低

2、短链接后面从 1 开始,很不爽,可以推荐用时间戳来生成

只需要修改 includes/functions.php 272 行左右

将 $id = yourls_get_next_decimal(); 改为 $id = time();

这样的话,后面链接会变长,而且不知道是 bug 还是什么原因,我想改回来改不回来,有需要的同学可以尝试一下。

YOURLS 还有很多插件,大家有兴趣可以再研究研究。

你可以使用官方自带的插件库:

https://github.com/YOURLS/awesome-yourls#plugins

完结撒花。

感谢 PlutoTz 写的非常详细的文档、感谢 YOURLS 提供了这么棒的项目,当然还有后面的众多的开发人员。

开源,让世界更美好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【好书推荐-第30期】开发者请注意!因果推断与机器学习,终于有人能讲明白啦!

本文目录 一、因果推断二、因果推断的前世今生三、总结四、赠书条件 今天给各位读者推荐一本好书&#xff1a;《机器学习高级实践&#xff1a;计算广告、供需预测、智能营销、动态定价》&#xff0c;好书链接。 2023年初是人工智能爆发的里程碑式的重要阶段&#xff0c;以Open…

【Web】攻防世界Web_php_wrong_nginx_config

这题考察了绕过登录、目录浏览、后门利用 进来先是一个登录框&#xff0c;随便怎么输前端都直接弹窗 禁用js后再输入后登录 查看源码&#xff0c;好家伙&#xff0c;不管输什么都进不去 直接扫目录 访问/robots.txt 访问/hint.php 访问/Hack.php 抓包看一下 cookie里isLogin0…

机器学习【04重要】pycharm中关闭jupyter服务器

直接关掉pycharm 不行 点红方块关闭 不行 我们曲线进行 我们的方法成功截图 实现全程不在服务器上操作 首先点击下图 点击退出&#xff0c;即可 查看端口

java Swing UI设置统一字体大小

编写一个遍历组件设置字体大小的方法 public static void setUIFont() {Font f new Font("宋体", Font.PLAIN, 18);String names[] {"Label", "CheckBox", "PopupMenu", "MenuItem", "CheckBoxMenuItem", &quo…

人力资源管理后台 === 上传+权限数据

目录 1.员工详情-封装员工头像组件 2.员工详情-上传图片-创建腾讯云存储桶 3.员工详情-使用cos-sdk完成上传 4. 权限管理-搭建权限页面 5.权限管理-获取数据转化树形 6.权限管理-作业 7.权限应用-权限概念 8.权限应用-员工分配角色-弹出层 9.权限应用-员工分配角色-回…

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》

arXiv-2021 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 Ablation Study5.3 Comparison with State-of-the-Arts 6 Conclusion&#xff08;own&#xff09; 1 Background and Motivatio…

Spring 中存储 Bean 的相关注解

Bean的存 IoC控制反转&#xff0c;就是将对象的控制权交给Spring的IOC容器&#xff0c;由IOC容器创建及管理对象。 也就是bean的存储 类注解:五大注解 Controller&#xff08;控制器存储&#xff09; Service&#xff08;服务存储&#xff09; Component&#xff08;组件存储…

深思:C与C++相互调用问题

背景 上周&#xff0c;偶然看到同事愁眉苦脸的样子&#xff0c;便善意咨询了下发生了什么。简单沟通下&#xff0c;才知道他遇到了一个工程编译的问题&#xff0c;一直无法编译通过&#xff0c;困扰了他快一天时间。出于个人的求知欲和知识的渴望&#xff0c;我便主动与他一同分…

【数据结构】堆的实现

目录 1. 前言2. 堆的实现2.1 初始化2.2 插入2.2.1 分析2.2.1.1 情况一2.2.1.2 情况二2.2.1.3 情况三 2.2.2 插入代码实现2.2.2.1 向上调整代码 2.3 删除2.3.1 分析2.3.2 删除代码实现2.3.2.1 向下调整代码 2.4 找根节点数据2.5 元素个数2.6 判空2.7 销毁 3. 源代码3.1 Heap.h3.…

许战海战略文库|主品牌升级为产业技术品牌,引领企业全球化发展

在当今高速发展的全球经济中&#xff0c;企业品牌已经成为其核心资产之一。这不仅仅是因为品牌可以为消费者带来识别度&#xff0c;更重要的是&#xff0c;它们可以为企业带来深厚的竞争壁垒。但对于许多企业来说&#xff0c;特别是技术密集型企业&#xff0c;仅仅依靠主品牌的…

如何让消费者接受品牌,口碑营销怎么做?

当新品牌进入小红书时&#xff0c;如何进行口碑营销是一个重要的问题。很多新品牌在刚刚进入小红书时&#xff0c;对于一些敏感时机把握的不准其实本质上&#xff0c;就是不明白什么阶段该做什么事。今天分享的就是如何让消费者接受品牌&#xff0c;口碑营销怎么做&#xff1f;…

NX二次开发UF_CURVE_ask_spline_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_spline_data Defined in: uf_curve.h int UF_CURVE_ask_spline_data(tag_t spline_tag, UF_CURVE_spline_p_t spline_data ) overview 概述 Reads the spline data a…

Java核心知识点整理大全18-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

Linux驱动开发——网络设备驱动(理论篇)

目录 一、前言 二、网络层次结构 三、网络设备驱动核心数据结构和函数 一、前言 网络设备驱动是 Linux 的第三大类驱动&#xff0c;也是我们学习的最后一类 Linux 驱动。这里我们首先简单学习一下网络协议层次结构&#xff0c;然后简单讨论 Linux 内核中网络实现的层次结构。…

接口测试工具(Jmeter)必学技巧

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Cho…

【知网稳定检索】2024年应用经济学,管理科学与社会发展国际学术会议(AEMSS 2024)

2024年应用经济学&#xff0c;管理科学与社会发展国际学术会议&#xff08;AEMSS 2024&#xff09; 2024 International Conference on Applied Economics, Management Science and Social Development 2024年应用经济学&#xff0c;管理科学与社会发展国际学术会议&#xff…

uniapp在H5端实现PDF和视频的上传、预览、下载

上传 上传页面 <u-form-item :label"(form.ququ3 1 ? 参培 : form.ququ3 2 ? 授课 : ) 证明材料" prop"ququ6" required><u-button click"upload" slot"right" type"primary" icon"arrow-upward" t…

流媒体播放器EasyPlayer播放H.265与H.264时进度条样式异常该如何解决?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

网易云音乐7天黑胶VIP会员免费领取入口怎么领取网易云音乐黑胶VIP7天会员?

网易云音乐7天黑胶VIP会员免费领取入口怎么领取网易云音乐黑胶VIP7天会员&#xff1f; 1、百度搜索「词令」&#xff0c;在搜索框内输入词令「vip163」关键词直达口令&#xff0c;进入网易云音乐7天黑胶VIP会员免费领取入口&#xff1b; 2、输入网易云音乐黑胶VIP7天会员领取词…

AJAX技术-04-- 跨域说明

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1 同源策略同源策略介绍规定要求 请求协议://域名:端口号 关于同源策略练习关于同源策略总结 2.JSONPJSONP原理说明关于JSONP优化 3.CORS介绍介绍不允许跨域说明跨域…