教程分享

[置顶]用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服务器用户一致,不然可能加密密码保存不了

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

五、服务器配置

上传到服务器

 apache

(1)配置里开启  mod_rewrite 模块

(2)创建 .htaccess  文件

#.htaccess 文件内容,如果是根目录下  http://yoursite/ 
# BEGIN YOURLS

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]

# END YOURLS
#如果是二级目录下 http://yoursite/somedir/
# BEGIN YOURLS

RewriteEngine On
RewriteBase /somedir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /somedir/yourls-loader.php [L]

# END YOURLS

nginx

server {
  # HTTP over IPv4 & IPv6
  listen 80;
  listen [::]:80;
  # HTTPS over IPv4 & IPv6
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate     example.com.crt;
  ssl_certificate_key example.com.key;
  server_name example.com www.example.com;
  # Root directory
  root /path/to/yourls/files;
  # Rewrites  主要看这一项配置就够了,路由重写
  location / {
    try_files $uri $uri/ /yourls-loader.php$is_args$args;
  }
  # PHP engine
  location ~ \.php$ {
    include fastcgi.conf;
    # include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  }
}

六、重启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

<?php
$timestamp = time();
// actual value: $time = 1612773137
$signature = md5( $timestamp . '9e692ad33d' );
// actual value: $signature = "7885a0ff1f7d024d0f0f2a26909e4871"
?>

使用参数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)

本文由 Technology garden 作者:鸭鸭吖 发表,转载请注明来源!

关键词:,

热评文章

发表评论