技术归档

[置顶]用yourls搭建短链接地址服务

yourls可以批量生成自己的短地址,还可以管理,统计每个短地址点击数量,还可以提供api接口。

这个开源免费,适合拿来做二次开发。

一、服务器要求

至少php5.6  如果要使用api  还需要有curl拓展

至少mysql5

二、本地克隆或者下载yourls源码

git https://github.com/YOURLS/YOURLS.git

地址:https://github.com/YOURLS/YOURLS  

tips:受限于git随缘被墙,我已经下载好了,文章末提供下载地址

三、将user目录下的config-sample.php 重命名 为 config.php

四、修改config.php里面的配置参数 (linux上注意:config.php这个文件权限最好跟启动Web服务器用户一致,不然可能加密密码保存不了

  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', 62 );    //使用36进制 还是62进制  这个最好一开始设好不要修改,避免地址冲突,建议62进制  
  18. $yourls_reserved_URL = array(
  19.     'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',  //排除一下短地址,这些地址是不会生成的  
  20. );

五、服务器配置

上传到服务器

 apache

(1)配置里开启  mod_rewrite 模块

(2)创建 .htaccess  文件

  1. #.htaccess 文件内容,如果是根目录下  http://yoursite/ 
  2. # BEGIN YOURLS
  3. <IfModule mod_rewrite.c>
  4. RewriteEngine On
  5. RewriteBase /
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteRule ^.*$ /yourls-loader.php [L]
  9. </IfModule>
  10. END YOURLS
  11. #如果是二级目录下 http://yoursite/somedir/
  12. # BEGIN YOURLS
  13. <IfModule mod_rewrite.c>
  14. RewriteEngine On
  15. RewriteBase /somedir/
  16. RewriteCond %{REQUEST_FILENAME} !-f
  17. RewriteCond %{REQUEST_FILENAME} !-d
  18. RewriteRule ^.*$ /somedir/yourls-loader.php [L]
  19. </IfModule>
  20. END YOURLS

nginx

  1. server {
  2.   # HTTP over IPv4 & IPv6
  3.   listen 80;
  4.   listen [::]:80;
  5.   # HTTPS over IPv4 & IPv6
  6.   listen 443 ssl;
  7.   listen [::]:443 ssl;
  8.   ssl_certificate     example.com.crt;
  9.   ssl_certificate_key example.com.key;
  10.   server_name example.com www.example.com;
  11.   # Root directory
  12.   root /path/to/yourls/files;
  13.   # Rewrites  主要看这一项配置就够了,路由重写
  14.   location / {
  15.     try_files $uri $uri/ /yourls-loader.php$is_args$args;
  16.   }
  17.   # PHP engine
  18.   location ~ \.php$ {
  19.     include fastcgi.conf;
  20.     # include fastcgi_params;
  21.     fastcgi_index index.php;
  22.     fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  23.   }
  24. }

六、重启web服务器,浏览器 输入 http://域名/admin,然后选择安装即可安装成功八、api接口生成   

七、短地址默认是是按照顺序生成,从1开始,有可能我们想不按照这样顺序,可以推荐用时间戳来生成

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

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

  • 安全的API调用

YOURLS允许使用老方法进行API调用,即使用usernamepassword参数。

如果你担心这有潜在的风险,你也可以不使用你的用户名或密码进行API调用,而使用一个 secret signature token。

你的 secret signature token:在yourls工具中查看 (请保存好,勿泄露)

这个signature token仅仅用于API调用,而不能用于管理界面等。

使用signature token

只需要使用signature参数在你的API请求中,例如:

http://url.flblog.top/yourls-api.php?signature=523e666753&action=...

使用带时间限制的signature token

  1. <span style="font-size: 14px;"><?php
  2. $timestamp = time(); //actual value: $time = 1582871023   
  3. $signature = md5( $timestamp . '523e666753' );
  4. //actual value: $signature = "56b641d8097db4fec0fb5e24a1878f13"   
  5. ?>  </span>

使用参数signaturetimestamp在你的API请求中,例如:

http://url.flblog.top/yourls-api.php?timestamp=$timestamp&signature=$signature&action=...

Actual values:

http://url.flblog.top/yourls-api.php?timestamp=1582871023&signature=56b641d8097db4fec0fb5e24a1878f13&action=...

这个URL的有效期为43200秒

每个短链接后面拼接一个 + ,就可以查看这个链接的点击情况,例如:http://test.com/1H7fa7+






文件名称:YOURLS-1.7.6

更新日期:2020/2/28

文件大小:2.6M

广

点击下载

(4)

本文由 小龙的博客 作者:鸭鸭吖 发表,转载请注明来源!

关键词:,

热评文章

发表评论