扫一扫,微信登陆

 青浦修电脑 青浦笔记本维修 青浦手机维修 青浦电器维修

搜索
查看: 539|回复: 0

使用YOURLS搭建自己的短网址服务 - 青浦海洋数码电脑城

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。8 p; ^7 Z, l6 ^3 U3 g0 d, H4 Z
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。3 V$ n! @1 R1 J( L
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。1 p% H% N/ D3 q# c
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。+ e! }9 M: J- R" O0 m
    " k3 D0 t8 p( d" G2 J3 b

    9 K  c  f5 s2 ^$ e域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:* [( M- X6 ]7 w! H: s
    # Debian/Ubuntu系统安装PHP 7.4
    0 h9 c* m7 g, Y; P- `( w. }apt install -y lsb-release gnupg2
    4 s* K5 R  q/ l; Bwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    : m( x  z' z7 D8 M2 becho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list+ l* a( t8 V7 _# Q$ I4 A
    apt update
    / B3 D' w* ~* kapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    2 q9 _# v* ]0 v9 F2 s: F php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick1 r9 x: O/ k! G& e% Y, [6 d( m- f
    update-alternatives --set php /usr/bin/php7.4
    8 _6 a) H( d: l$ y$ L# 启动PHP-FPM
    + |1 ~/ s+ E* q# y& I9 ?systemctl start php7.4-fpm
    4 x( s, A8 }5 F& W; i9 r接着安装Mysql(MariaDB):
    % s! H$ z' N, ?' s9 g# Debian/Ubuntu安装Mariadb# O9 U- Z* F& c( p4 K* D+ j" }
    apt install -y mariadb-server/ @  U- C( ?. k5 T. j+ a8 s
    #CentOS安装Mariadb
    # F. x4 o9 Z0 D3 g, hyum install -y mariadb-server" f; d! i+ X  M8 R4 X. y
    systemctl enable mariadb
    5 E$ C/ r7 D) J- J#启动Mariadb
    1 {' Z) a. ]. C: R0 hsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    / g2 p: @) ]4 e4 ?# `* z$ U1 n9 C% G#CentOS系统安装Nginx
    * T3 ?4 m4 |3 {  Ryum install -y nginx. M" c3 F8 t' C, P" n' p% t+ `
    systemctl enable nginx; {& p7 X& e! Y) l8 p% `2 r" F
    #Debian/Ubuntu安装Nginx5 f* m+ ]2 |# Q, `0 T
    apt install -y nginx
    ! u& ^: ]$ f0 L3 j7 ^, f安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。; f+ s3 F- _6 M% y* }
    部署YOURLS返回目录部署YOURLS的步骤如下:
    * [. Q2 E% U. r8 B1. 创建YOURLS的数据库用户名和数据库:
    " _: Z' `$ p+ U" N# 进入数据库4 E; D9 _1 ]4 {, k  R
    mysql
    , P" g3 _' y& I' G+ O, i# 创建用户名,用户名和密码改成你自己的
    9 G$ a1 g: u8 N* e( ?CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    8 P+ b, I2 ?  t! E# 创建数据库,数据库名字改成你自己的$ O3 u! V: F: E. m7 y% D
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    : i" F- A: z" P3 s* M# 赋予权限
    & y% v/ @& U; |3 [. W: b1 zGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    6 K6 ~/ V, _9 e8 d) b: T" O# 刷新权限
    $ L2 |, I# R, w' G" P! IFLUSH PRIVILEGES;2. 下载和安装YOURLS:
    0 P4 h  [" p8 D6 X0 o9 F# ]mkdir -p /var/www% S' F# o5 c* h# [" Q* n( d' e
    cd /var/www/: k% @1 s: f& F9 {
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    ! ^+ l) V# a* kunzip master.zip7 Z; P5 ?3 q& F9 u$ B' _
    mv YOURLS-master YOURLS4 S# q9 R% `% Z. |
    # 修改网站目录权限
    + i9 j! v  w9 L1 Y# Ubuntu/Debian系统) |: O7 X6 `1 e$ g  Q' \6 y
    chown -R www-data:www-data YOURLS) v: v% T5 G; _  C
    # CentOS9 L  |; [9 K4 C9 K5 g+ r+ a! J/ g
    chown -R apache:apache YOURLS" U) n6 z% B9 u, F+ B6 L" U" p
    cd YOURLS
    4 F- @( \1 @! M4 v2 s6 `" J2 acp user/config-sample.php user/config.php
    ; @3 R* X4 {$ Q3 ]; f) o6 ?cp sample-public-front-page.txt index.php- s) j6 t6 D) X
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    ; Y* g( G% f2 O" ?$ f8 Ndefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    . q2 q7 H, s. C: l9 Ldefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    . B3 h' ~- c9 m! e( Jdefine( 'YOURLS_DB_NAME', '填写数据库名字' );  \8 l+ x: D0 K3 q5 _
    # 这两行基本不用改
      L4 R1 K' @6 Z0 }! A9 G/ ^  X+ \/ f5 pdefine( 'YOURLS_DB_HOST', 'localhost' );
    2 G- Y) V" e* O, Adefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    % [, E% r' _( R9 }" C: H: c# 填写你的域名,不要加www形式
    / y8 g' [& c+ o! A& c3 vdefine( 'YOURLS_SITE', 'http://你的域名' );
    4 v( R& ~. e' t5 c- N# 填写时区,国内是8
    0 G; |6 _, ^3 P+ D( _define( 'YOURLS_HOURS_OFFSET', 8 );
    8 q$ T- f* o  g4 R. R& n# 设置为中文5 W. T' X) }+ N- L
    define( 'YOURLS_LANG', 'zh_CN' );" j% i8 s# \' z6 ?' F
    /** Allow multiple short URLs for a same long URL+ i5 k' j: p4 b0 ]9 ?% Y; Z
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    * b6 s& n$ B# [- X ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */7 k! n9 O4 O; Q. K( N7 p
    define( 'YOURLS_UNIQUE_URLS', false );+ {/ B+ J3 ~/ a# v
    # 设置私有权限
    9 H+ d" j) e% }* _7 Kdefine( 'YOURLS_PRIVATE', true );4 [: U6 X% K6 Q' b9 K7 {
    8 ~; `, n/ S/ ~3 n! r- E* d) p
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    7 m+ i- K! i/ N$ G4 [1 z# 后台登录用户名和密码,一行设置一个,请务必修改5 `+ g9 c7 U8 q9 h+ |4 b4 V' }4 ]) U
    $yourls_user_passwords = array(
    ( N( `' X8 ?: a6 n" l. X2 s' o        '用户名1' => '密码1',& ^" d$ s# T1 T# P4 N; z, J* \
            // 'username2' => 'password2',! s3 z' x. e$ J1 @
            // You can have one or more 'login'=>'password' lines+ V. i# [+ b0 D. v" P0 }9 Y) [% h
            );/ B5 ~7 m7 r% j$ M7 z! q' ?+ ]# _
    /** Debug mode to output some internal information
    * f/ D9 [" a2 X" H) R7 X8 b6 h3 N ** Default is false for live site. Enable when coding or before submitting a new issue */5 d8 ]$ D1 z) Y: G+ `  U
    define( 'YOURLS_DEBUG', false );  [- Z/ z( D- K* w4 I. ~
    # 网址中允许大些字母填62,否则填36
    # y' }6 ?3 o% q+ }8 j7 K" c) Sdefine( 'YOURLS_URL_CONVERT', 62 );
    $ w( }! o# x/ m# E- Q3 Y8 [* L/*& _7 r0 w% N& \0 m2 I/ f1 h3 Y; N7 j
    * 36: generates all lowercase keywords (ie: 13jkm)
    2 x% x+ W1 Y0 D6 L: G5 a * 62: generates mixed case keywords (ie: 13jKm or 13JKm)* Q8 r( \4 L7 ]8 e% f) C
    * Stick to one setting. It's best not to change after you've started creating links.
    ' }+ i. v* r  d5 A0 m2 V */
    & W: G# w: ^5 T: V1 h" p2 [# 保留的关键字,可自己添加
    / n  H. `) {5 E; ^; e$yourls_reserved_URL = array(" P9 P- ~2 m! |( b7 X+ F
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    9 z+ J, l7 I$ |7 G);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。2 J& H1 W/ m" U- Z- C9 U
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    5 y0 g" ^9 Z' Kserver {
    0 l+ W# G& T- c    listen   80;& a% e& L6 y% K0 s, N
        server_name 你的域名;" g, Z! t5 J' I; N) t( Z
        charset utf-8;
    - B6 B& N. J) J7 W    root "/var/www/YOURLS";
      m9 C' e: A5 x8 U2 x4 s7 L    location / {# |4 ?4 b1 {/ i' }) O
            index  index.php index.html;
    ) N, H0 K6 |; {( R6 T        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    # {8 p$ S& L( j1 j0 K    }
    9 j8 S0 ^3 F7 R% o    location ~ ^/\.user\.ini {
    * P0 W& H2 H  B; g8 v  d/ m- r8 s            deny all;
    5 C  m* Y8 |* i# q& E1 y: G    }2 ]; ~0 z5 c5 X: j$ x1 D
        location ~ \.php$ {9 F$ c& K7 v( Q+ d% y
            try_files $uri =404;
    . b9 B& x0 I8 n  x        fastcgi_index index.php;" q0 C$ A9 l% Q. e7 M, o9 s- n
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;! u! Z; n- }' Q0 `( _" g
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    1 J- S, g. x- }* |7 y4 c        include fastcgi_params;# }3 e0 A; N$ }) n1 A# v
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    - l7 H) x* I, z$ X% [2 S0 v2 n    }0 l& x0 O6 T4 E+ w% }
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {, N0 ~. l# \" U( A( u# `' p
            expires max;* }* @! C: ^) S/ K
            access_log off;
    ' Z1 x  W( S8 g) ^- V* ]        try_files $uri =404;9 b% q. p% {. B9 L
        }
      {9 t  z% t2 K' q" I4 O}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书7 ?& [$ t5 ^+ a0 A: F( y
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。: w' A0 S! l$ t/ U* F* y. s8 f
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:2 s* _0 A! X! D& S
    9 e# J- U$ Y3 k+ \
    9 H5 N; j, X" }
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。0 [4 T. [/ `% Z) O
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    ; p, V) R) i' r1 n# k0 O. ]首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:6 R/ t7 ]- Y  ^$ _
    ; z7 N6 Q" I; z3 i3 w
    3 ]) p' e& T1 x' C! A0 V
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。; e4 b! o; m9 {; y8 E9 O! H1 s
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。5 ?1 R0 P! q8 z& a
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。7 M# h1 N/ y2 R9 t. `
    最终网站前端效果图:
    7 [9 V% J% L8 \' M; N+ U) g+ x7 n* f% [9 r! I% D8 }
    8 R: a; J( s! _) p' [
    短网址前端效果图后端效果图:5 B6 H9 G5 t$ g' g! K$ Q

    ) f( {% d4 R- o/ d( a
    . V9 M  `6 J: z4 c0 }; N) Q( \短网址后端效果图相对原版颜值高了不少。7 C8 K& m' Y1 P  W
    参考返回目录[ol]
  • YOURLS
  • Awesome YOURLS[/ol]AD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(5)
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

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

    本版积分规则

    Copyright © 2001-2013 Comsenz Inc.Powered by Discuz!X3.4( 沪ICP备18024137号 )
    快速回复 返回顶部 返回列表