网格论坛

 找回密码
 立即注册
查看: 365|回复: 0

[完结] yourls 短域名 系统

[复制链接]

75

主题

160

帖子

2万

积分

总大队长

Rank: 9Rank: 9Rank: 9

积分
27335
发表于 2020-3-30 22:54:13 | 显示全部楼层 |阅读模式



用yourls 搭建短链接地址服务
疫情期间没事瞎折腾,索性就研究了下yourls 。
发现这个玩意功能挺强大的,不但可以批量生成自己的短地址,还可以管理,统计每个短地址点击数量,还可以提供api接口。
最重要的是,这个开源免费,自己拿来做二次开发再适合不过了。


下载地址
https://github.com/YOURLS/YOURLS/releases

自家用完全无敌了。
1、将user目录下的config-sample.php 重命名 为 config.php
2、修改config.php里面的配置参数 (linux上注意:config.php这个文件权限最好跟启动Web服务器用户一致,不然可能加密密码保存不了
几个重点

Yourls 提供两种 URL 编码形式,

一种是只有小写的 Base 36 encoding 0123456789abcdefghijklmnopqrstuvwxyz

还有一种是有大小写的 Base 62 encoding 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

一般来说,使用默认的 Base 36 即可,因为要使用 Base 62 需要空间支持 phpBCMath 扩展,而且没什么必要,

个人用 Base 32 足矣,官方宣称可以创建 4,738,381,338,321,617,846 个短网址,

所以没什么特殊情况就不用修改 config.php ,用默认的编码即可。

后台地址是 http://你的地址/admin/ 当然可以修改 admin 文件夹的名字以防万一

管理员的用户名和密码都在 includes\config.php 里自己设置,不推荐使用常用的密码

毕竟是明文形式储存,所以想一个复杂点的没用过的密码最好不过。



  1. define( 'YOURLS_DB_USER', 'root' );
  2. define( 'YOURLS_DB_PASS', '123456' );
  3. define( 'YOURLS_DB_NAME', 'yourls' );
  4. define( 'YOURLS_DB_HOST', 'localhost' );
  5. define( 'YOURLS_DB_PREFIX', 'yourls_' );
  6. //上面是数据信息不用多说
  7. define( 'YOURLS_SITE', 'http://test.com' ); //你自己服务器的域名 用最短的,短地址也是基于这个生成。
  8. define( 'YOURLS_HOURS_OFFSET', '+8');    //时区偏移 
  9. define( 'YOURLS_LANG', 'zh_CN' );      //这个语言默认是英文,没有中文包,需要自己去 https://github.com/guox/yourls-zh_CN/下载,放到 user/languages 里面 
  10. define( 'YOURLS_UNIQUE_URLS', true );   //短地址是否唯一 
  11. define( 'YOURLS_PRIVATE', true );         //是否私有,如果私有的,则进行api调用生成短地址时需要传递用户名和密码
  12. define( 'YOURLS_COOKIEKEY', 'A2C7&H~r80pTps{nIfI8VFpTxnfF3c)j@J#{nDUh' );//加密cookie 去 http://yourls.org/cookie 获取
  13. $yourls_user_passwords = array(
  14.     'admin' => '123456' /* Password encrypted by YOURLS */ ,  //用户名=>密码  可填多个  登录成功后这里的明文密码会被加密
  15.     );
  16. define( 'YOURLS_DEBUG', false );      //是否开启调试  
  17. define( 'YOURLS_URL_CONVERT', 36 );    //使用36进制 还是62进制  这个最好一开始设好不要修改,避免地址冲突,建议62进制
  18. $yourls_reserved_URL = array(
  19.     'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',  //排除一下短地址,这些地址是不会生成的
  20. );
复制代码

nginx 配置里添加

  1.   # Rewrites  主要看这一项配置就够了,路由重写
  2.   location / {
  3.     try_files $uri $uri/ /yourls-loader.php$is_args$args;
  4.   }

  5. ------
  6. server {

  7.   # HTTP over IPv4 & IPv6
  8.   listen 80;
  9.   listen [::]:80;

  10.   # HTTPS over IPv4 & IPv6
  11.   listen 443 ssl;
  12.   listen [::]:443 ssl;
  13.   ssl_certificate     example.com.crt;
  14.   ssl_certificate_key example.com.key;

  15.   server_name example.com www.example.com;

  16.   # Root directory
  17.   root /path/to/yourls/files;

  18.   # Rewrites  主要看这一项配置就够了,路由重写
  19.   location / {
  20.     try_files $uri $uri/ /yourls-loader.php$is_args$args;
  21.   }

  22.   # PHP engine
  23.   location ~ \.php$ {
  24.     include fastcgi.conf;
  25.     # include fastcgi_params;
  26.     fastcgi_index index.php;
  27.     fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  28.   }

  29. }


复制代码


3、短地址默认是是按照顺序生成,从1开始,有可能我们想不按照这样顺序,可以推荐用时间戳来生成
  只需要修改 includes/functions.php  272行左右
  将 $id = yourls_get_next_decimal(); 改为 $id = time();
4、api接口生成   
  请求地址:http://域名//yourls-api.php
  参数:username(用户名)、password(密码)、format(格式 json)、url(长地址)、action(功能,shorturl)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|联系我们 ( 京ICP备16001788号 )

GMT+8, 2020-8-4 11:05 , Processed in 0.026368 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表