扫一扫,微信登陆

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

搜索
查看: 271|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    - ~9 Y: C$ z3 p& v0 D5 ?  b/ t经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    , `/ [: D, X6 S0 I6 I本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。* t# `$ T% A$ w4 M0 `4 D
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。$ t1 j  Z: ?0 `& p5 O  K3 R1 `8 G
    1 Z, n$ X8 o6 \7 c5 m
    * o( a" G* F8 q6 n( v
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    7 r* [$ l9 a- z" R# Debian/Ubuntu系统安装PHP 7.4
    - ?& F3 I! w1 F. q( y- B& a1 N# dapt install -y lsb-release gnupg2
    - J: q3 ?1 S& w5 |2 S7 Xwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    & t: X4 I  c& x3 hecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list2 ?; D) Q' d8 j
    apt update# ]6 ^8 W' U% @  S
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \$ M  E( X1 \. K9 p9 `# q
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
      ]. N8 B& m4 ^& G: ?9 e9 Iupdate-alternatives --set php /usr/bin/php7.4  r* m2 M9 N( K
    # 启动PHP-FPM8 _0 a  B0 @7 }, ^
    systemctl start php7.4-fpm# A2 o0 |* c. {) G
    接着安装Mysql(MariaDB):& Y+ J! d$ C' p
    # Debian/Ubuntu安装Mariadb( c) v6 x8 ^" I3 R0 j# @8 Y
    apt install -y mariadb-server! n- n- ^+ l8 Q* ~* Z* ^
    #CentOS安装Mariadb$ q  w# d; x" A7 f" i0 S
    yum install -y mariadb-server& C7 `6 q$ L8 k# V5 H
    systemctl enable mariadb
    9 h6 x; c0 |2 s" A! }7 u5 N& e5 D#启动Mariadb
    $ L5 `9 ?+ O0 {2 _systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    ! o* S7 F, w" p6 E#CentOS系统安装Nginx
    ) S0 m( v% @* T2 k. k2 dyum install -y nginx* M4 h3 T& I6 l: G
    systemctl enable nginx; E) Y* R6 M) t% z9 X. f" A* K
    #Debian/Ubuntu安装Nginx
    + y: }  j+ @- k4 y% Eapt install -y nginx
    & b" t3 v+ S7 a3 |1 C8 s安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    ' M4 y4 z% h4 I( A! J 部署YOURLS返回目录部署YOURLS的步骤如下:
    1 Z  t7 d8 R8 w+ M. L4 r+ Z8 J1. 创建YOURLS的数据库用户名和数据库:
    * e- L' ?' y3 Y# [2 [# 进入数据库8 h: g' ?, L4 A, I: Y, H; `
    mysql9 K8 I/ m  {* f
    # 创建用户名,用户名和密码改成你自己的
    3 b. m7 u* }1 C* FCREATE USER 用户名@'%' IDENTIFIED BY '密码';; T' K  w& }% t5 ~5 W
    # 创建数据库,数据库名字改成你自己的2 T: ?% t" d5 {8 }! o
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;; m+ E; Q# E2 I
    # 赋予权限6 y5 f) o" J+ I& g. o2 L
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    % d/ m; F: n( G& B3 r# 刷新权限
    4 ^8 q4 C, v% x  n' c. ]8 O# bFLUSH PRIVILEGES;2. 下载和安装YOURLS:/ m! F6 h$ X! {/ J: |
    mkdir -p /var/www4 @  O9 c( X8 h9 I
    cd /var/www/9 [  d* E( J' `# ?
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
      Q% g1 M" A% {0 ~" x' Lunzip master.zip4 \, ~, F+ p% [3 f; j; `) u
    mv YOURLS-master YOURLS; d- h: R: ^1 G' r: z# c4 u  C
    # 修改网站目录权限7 A6 }. l0 s. Q
    # Ubuntu/Debian系统
    1 i7 G) g- q9 Nchown -R www-data:www-data YOURLS* s5 [; K! y" x+ u+ k
    # CentOS
    + j' ?, i! M& g3 w* ^2 H6 v" A! wchown -R apache:apache YOURLS
    9 J) A8 P/ G) _$ k, mcd YOURLS
    ; |, F$ Q7 I& x0 M, [9 ecp user/config-sample.php user/config.php
      d' p, m4 R  f4 v$ U3 @: hcp sample-public-front-page.txt index.php
    - h% \+ X. A$ H. J* ocp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:, Z# G8 z) p, M0 X0 K
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    * `) W2 E% H# odefine( 'YOURLS_DB_PASS', '填写数据库密码' );- c) ]# C& r' D# c1 [" V4 S
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    8 _0 S  U! T$ o, B: F0 k  B) U# 这两行基本不用改
    ' ]2 @& I8 F- V$ `1 b* P1 e  X# Adefine( 'YOURLS_DB_HOST', 'localhost' );
    / K) k3 x; h' C8 t0 zdefine( 'YOURLS_DB_PREFIX', 'yourls_' );. Q. H% I6 d9 i* J: m" r) K
    # 填写你的域名,不要加www形式
    5 ]. S. f6 V5 s8 r! ]define( 'YOURLS_SITE', 'http://你的域名' );
    9 e5 w6 |6 x" Y7 Y5 f# 填写时区,国内是8
    . r2 m( R+ k" A" O* z1 u* Pdefine( 'YOURLS_HOURS_OFFSET', 8 );8 G6 ]# K1 z- K/ i" @% `
    # 设置为中文
    , F) R: V$ |% E- `: m, zdefine( 'YOURLS_LANG', 'zh_CN' );& Q3 H6 q) _1 Y# t; F
    /** Allow multiple short URLs for a same long URL
    1 L$ Q. j5 k4 U- r ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    ; B1 a( R! [/ Y ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    1 |! d0 I. q- ]: f- _7 ~, Q5 ddefine( 'YOURLS_UNIQUE_URLS', false );" n) e0 }& Q0 K" n
    # 设置私有权限
    1 I5 O/ x; N' Ydefine( 'YOURLS_PRIVATE', true );
    6 h4 z  t: ]- p: E: G( Q1 P8 [2 I+ T5 S$ K3 r# C! r
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    $ ]6 _5 w+ A- a: W& X3 k# 后台登录用户名和密码,一行设置一个,请务必修改
    5 k7 A6 H6 Z, u/ x$yourls_user_passwords = array(
    5 n" S1 O$ n' V- `. q        '用户名1' => '密码1',
    0 q8 G3 q7 k- W; \        // 'username2' => 'password2',
    9 V: _+ x! N! C- C$ ?        // You can have one or more 'login'=>'password' lines# w7 v: c# p+ p. o
            );
      p# |- N, k, [! w/** Debug mode to output some internal information4 a+ }, ^# @% c
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    2 P8 ^8 \* v6 N, s' H) gdefine( 'YOURLS_DEBUG', false );& v$ h# R( ^/ n' Q6 B' G' f6 u
    # 网址中允许大些字母填62,否则填36
    9 F, l) _  V" T, F* \define( 'YOURLS_URL_CONVERT', 62 );
    ! r/ v6 g3 U& `$ i% X6 s/*
    4 K/ @$ ^; o! r' d * 36: generates all lowercase keywords (ie: 13jkm)7 h4 }3 A, ]# m$ Y( y: C5 Q) o
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    8 l- D1 d( t" r * Stick to one setting. It's best not to change after you've started creating links.
    & p  q2 T/ k! I; Z% Q- z */1 e) a/ X2 L2 o
    # 保留的关键字,可自己添加+ j% U' @& t  k$ N
    $yourls_reserved_URL = array(* O. V* Q8 ]3 Y4 v0 C/ q
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    / t7 O4 A5 G" R/ Z1 W' t5 B);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    / F- W  h  Q! F* {' Q4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    7 E) I8 }7 V/ e3 d# ^' Nserver {* ^# |) W1 t1 ?! W9 _8 b
        listen   80;
    & n; X* |4 n- [, W    server_name 你的域名;
    ! r5 Y0 k8 l; Q& N# t3 ]( `    charset utf-8;8 a& L1 m4 q; N& k# |; _5 X: Z( a
        root "/var/www/YOURLS";: }' y7 A# h5 }" L/ ~
        location / {
    ' v1 n! C5 ?( M9 b$ X. I        index  index.php index.html;
    5 D9 l: A. o  E& ?* b% J7 S1 _        try_files $uri $uri/ /yourls-loader.php$is_args$args;; i% r1 c$ Q1 |; ^* M8 w3 o
        }/ s$ _$ e( d- J& \  s! k6 ^0 n+ _
        location ~ ^/\.user\.ini {8 X3 n! b% k4 l0 h( g
                deny all;$ Z6 y8 [2 t* H& K- j! U
        }8 O" e4 N& G, E: D8 d( k; b+ ^; L
        location ~ \.php$ {* p9 y4 ]8 W7 p. n9 T1 M. o
            try_files $uri =404;
    ; n9 b* ]* |" `& |        fastcgi_index index.php;+ ^6 b* q' E8 F: O
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    ' v0 E1 x: i! E        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    5 z$ v6 r; J8 E( E. Z        include fastcgi_params;
    " y( Z" k6 {' h$ A, c        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;6 W5 F) h" O2 w0 O" i2 i
        }
    ) s6 d, f# @9 o; ^! _- z    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {0 ?* V% I4 A5 G2 v' I0 f' p& M- x
            expires max;
    * d+ |2 \2 f) j3 U" k/ }" D7 K        access_log off;
    8 R9 T! c& K) @        try_files $uri =404;
    ; T! B  {! t/ h2 U  y5 Z    }0 G  m# i6 T9 X% v- l) E. d
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
      L  l) H# ~& [# F9 J7 g
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。& Z4 }+ T. w* t$ K$ u
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:- a. q9 M+ r* f- t  r  O
    : m: y" C- F) Z- P
    0 }5 C3 M1 J/ a1 M) B) \; m
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    4 m8 s7 i/ I6 ~/ ~1 r 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    1 l# A( N1 S, n) C9 `首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    0 A/ y9 J& ]* J# R. m5 ]. e* ^
    / ]' t' m2 C0 c; A4 F0 W" C1 c5 M! }6 t1 N4 `3 B' n3 r# ~
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。% L( L8 g& q- S8 Y1 s3 W- E+ y
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。) T5 h8 m7 I* M
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。2 E! @, K5 a/ ]3 H2 L& Q/ t. b' i
    最终网站前端效果图:' u, y6 V- w9 S: g
    ' [# b# t* k/ v

    ; t+ \+ g/ ]7 U, ?4 p) w# J! R, F短网址前端效果图后端效果图:
    1 a" K4 @2 G0 ^3 E
    ' p) e2 J( R) a7 M2 y" j5 i& H3 U7 S! Z) G8 p) i
    短网址后端效果图相对原版颜值高了不少。8 k4 X8 z' S8 @, w4 C7 ~& g
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表