扫一扫,微信登陆

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

搜索
查看: 939|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    7 m- g+ r/ s/ E' p4 ~; B" M经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。5 Q/ U# w1 t# Y# o- d# ^$ D
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    ( c% p! [# e4 X* C 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。, T  P8 B" Y9 U+ _6 y- o" v
    2 ~- V4 Z5 L! }% I7 O  T

    9 ~- J8 x! X9 M; `域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:2 U  N! U- X& l+ V- y: f/ `9 u
    # Debian/Ubuntu系统安装PHP 7.4
    7 g* f# B) S5 i. L4 z, Hapt install -y lsb-release gnupg2) K/ F, P/ Y, g, U3 I% p- z, Y
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    " y( `- r, u( k: k% iecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list( O: I/ C4 W8 e" z8 T
    apt update0 l9 M. }* f/ J# w7 e8 j
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \$ h$ _; l$ T( Q: x
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick- ^/ ?# Z- j. C+ M0 L1 J/ F
    update-alternatives --set php /usr/bin/php7.4
    + Z- s$ |) C( c* W! w3 b# 启动PHP-FPM
    # d5 R# j% I1 E+ L" m  \1 @& B8 Bsystemctl start php7.4-fpm: t( m) B+ w8 s* B
    接着安装Mysql(MariaDB):* G8 W2 J2 g. d& g2 [* Q# K! B
    # Debian/Ubuntu安装Mariadb
    / i) a) Z0 Z) ?9 H. hapt install -y mariadb-server1 C9 m% A4 D8 m1 N
    #CentOS安装Mariadb
    7 M3 \# C% `* h5 nyum install -y mariadb-server; g( ?1 D- i# m3 Q/ z: m7 i
    systemctl enable mariadb( W; k2 u( ?, ^% S& j
    #启动Mariadb* k4 g! H8 x: h$ g; l. e  b+ q
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:  y9 H+ e4 _$ N5 X! K
    #CentOS系统安装Nginx
    0 b! U# B: [% D6 H; Xyum install -y nginx5 e: ^! f4 W9 _; R' U) x5 H
    systemctl enable nginx
    * i: M, H9 A+ Q1 {. E+ _5 @#Debian/Ubuntu安装Nginx
    & f: V- S- j" |/ n2 y8 H+ fapt install -y nginx  \, Y* ~3 B/ c; Y' f  W9 o, {# D3 w
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    / h0 }5 t  v- M  |2 Y/ l8 [& z 部署YOURLS返回目录部署YOURLS的步骤如下:
    4 S2 D& E" G, T% P1. 创建YOURLS的数据库用户名和数据库:% W4 z  C- T: }1 O
    # 进入数据库3 ]5 h* O5 I2 b9 R
    mysql
    9 {% g7 k0 y9 y1 I7 V# A) A# 创建用户名,用户名和密码改成你自己的& J- l- q$ o; J3 ]- y: E. D
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    9 d3 Q( K! Z# ]. L6 X" X0 e8 `+ ]# 创建数据库,数据库名字改成你自己的/ u5 O. M) }' P# ^; ?! m
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;  K( V# w, r  x1 ?+ q. i# W5 }
    # 赋予权限, B7 c) f9 u' ^% Z
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    + G. u) ^6 Z- M+ J# 刷新权限% n8 H) N- E7 j( F- o) w- C3 }' R3 k
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:4 d/ V( w* ^' P! b9 q, x
    mkdir -p /var/www. ?9 k# I9 }( R1 E, j
    cd /var/www/  w) y0 i8 n' k
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    2 {1 f3 Y/ @) o) T* `; b$ nunzip master.zip! N7 R: Q* t; y( m
    mv YOURLS-master YOURLS
    # i7 N4 E- N5 C/ |- J# a# 修改网站目录权限, Q: }! `' j  F- G
    # Ubuntu/Debian系统. {' ]# F3 C; i
    chown -R www-data:www-data YOURLS
    0 o3 Y- Y: g( R! x6 ?- N" x) m# CentOS
    ) I' L: X+ l* M! C" {chown -R apache:apache YOURLS5 H+ A2 i. @* X, n$ j
    cd YOURLS
    2 L* f' P  t# X" W3 Kcp user/config-sample.php user/config.php- I- l( i" F3 X
    cp sample-public-front-page.txt index.php
    $ `$ e/ \; }( Tcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:5 {* Q/ f6 U+ Q3 Q6 V
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
      X) K9 c3 l* H) y- `" Q+ b* ldefine( 'YOURLS_DB_PASS', '填写数据库密码' );9 x; O- q  X8 ^
    define( 'YOURLS_DB_NAME', '填写数据库名字' );9 G/ Y, n) D8 w( _9 _1 a! v
    # 这两行基本不用改
    & D7 V2 p/ ]2 s% _7 o5 }* Ndefine( 'YOURLS_DB_HOST', 'localhost' );
    9 e" N. i8 G2 Rdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    4 u& k2 V# G# Z/ k# 填写你的域名,不要加www形式' V* r, C# }; ~: X
    define( 'YOURLS_SITE', 'http://你的域名' );, M7 A9 i8 R$ m4 I0 T1 Y3 |/ p
    # 填写时区,国内是8( D; p% d4 R! B, R" m/ v# A
    define( 'YOURLS_HOURS_OFFSET', 8 );, b; Y; m# t- E, p$ m) C1 b: c
    # 设置为中文
    0 _, y+ j2 o1 u# G6 xdefine( 'YOURLS_LANG', 'zh_CN' );
    9 u$ V% D* ^+ u7 d/** Allow multiple short URLs for a same long URL, B# n5 }  z! d* \2 X+ n* N2 l" T
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    % I. p( J" e4 z. R" ^* N; E ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */+ T2 [, k9 G, M4 r
    define( 'YOURLS_UNIQUE_URLS', false );
    5 {. Z  x: E( E& D' r: H# 设置私有权限7 m5 U3 G8 e' R3 X' B0 d, G& E
    define( 'YOURLS_PRIVATE', true );) P" ^( M  k+ I7 d3 H

    7 {/ ^% l: a+ z4 j- Qdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );2 g3 ^* M; R- M( O  W7 K$ _  M
    # 后台登录用户名和密码,一行设置一个,请务必修改
    2 x7 b: R  x2 b$yourls_user_passwords = array(
    % U( N0 r$ L1 O- q7 a        '用户名1' => '密码1',
    . I2 x$ B. q$ m8 e0 x        // 'username2' => 'password2',
    , h! Y+ M9 `* B' k6 `        // You can have one or more 'login'=>'password' lines
    + M. b0 N# R# T3 y4 p        );$ c- [% q, l1 [0 O! w' H
    /** Debug mode to output some internal information4 e- ]3 J9 O% ~! W: T6 l9 N
    ** Default is false for live site. Enable when coding or before submitting a new issue */( t+ I( ^  t6 D9 @
    define( 'YOURLS_DEBUG', false );
    # i; M8 d  _+ ]0 j# 网址中允许大些字母填62,否则填36$ n( r2 v/ r' c. S
    define( 'YOURLS_URL_CONVERT', 62 );1 _6 u& q, x+ {# h0 z
    /*
    ' N  l9 X. S* u/ O) \7 P * 36: generates all lowercase keywords (ie: 13jkm)
      L$ o: S, j5 _1 Q5 ~8 G& f0 ~ * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    & x2 p$ ~" S" [2 z: ?" w6 H* o/ p * Stick to one setting. It's best not to change after you've started creating links.* P0 @2 r% Q5 X* `
    */2 I) _6 X. a" _5 y9 O7 [5 {" N
    # 保留的关键字,可自己添加
    " [: y9 ^5 o/ [8 ~% ?1 k$yourls_reserved_URL = array(0 u+ B2 t: r8 n! V( H: y
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    ( D% [: [9 f* v5 E8 s$ [);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。- X8 W1 p' b2 N/ ~+ p
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    ' Y: f, W! W1 F' Y' i7 u  userver {/ ?! f3 F' ]) Y' e- P$ F+ ^
        listen   80;8 P* _! o: G, r1 u/ s/ c3 D
        server_name 你的域名;
    * v7 u, e2 `2 T1 {    charset utf-8;
    " u- |' `3 D) Z    root "/var/www/YOURLS";; P9 Z9 E: {; ]! C
        location / {
    & c# g- @- a2 t1 ^) p$ O  R/ U        index  index.php index.html;
    6 v5 ^5 ?( M( E: I3 d/ L# d) T        try_files $uri $uri/ /yourls-loader.php$is_args$args;9 Z( m8 F0 U% i$ u) k% Q
        }) A, ^) d  i; u1 f+ c0 N
        location ~ ^/\.user\.ini {: {0 E2 L% Y8 I5 [# v' r7 O
                deny all;
    ' \/ K1 L# s1 @" ?& B: T- }7 C    }
    ( ^* S' _! S, a- f    location ~ \.php$ {0 [1 s7 D/ h) D9 J/ q
            try_files $uri =404;9 `! b2 M3 T0 G" Y
            fastcgi_index index.php;
    4 F6 X+ d, x# F6 ~. j9 d2 I        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    6 }$ d8 A1 I+ [% \6 n) s' n) G        fastcgi_pass unix:/run/php/php7.4-fpm.sock;& V8 l, K; A1 ?2 p9 b& v6 L/ }
            include fastcgi_params;% w3 b6 ^; e& S+ R7 A. m8 e, J
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    ! j( C. T$ Y4 k8 Y6 ]8 k$ ^+ F    }
    7 n$ b( D0 y$ h% y( `+ v. n) ?    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {% ^$ q2 ]: Y; m! }& l
            expires max;
    : `, w0 ~& Z$ X2 ^/ Y        access_log off;7 Q' z- a6 |6 a: o4 ]5 m. G
            try_files $uri =404;
    5 H- o& X7 \* G+ b7 Q  K# V9 ]    }
    3 ]0 ?; b( M. X% t# I+ \- O7 `}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书1 u* C' `5 u7 b9 \
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    + J& G$ W. E$ I& c: _( ^# K& s浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    ' H+ P2 O* `: ]; y7 z# |9 p' B( @* u2 d  W

    6 s2 a: C5 o! T7 M# kYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    . Z2 n3 `# x& w: P: @! d# t9 ? 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    6 K2 s6 Q  d- Q. ]首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:. k( [& P0 n9 e# U5 V
    / G. r6 u5 y9 y+ H! o! G
    2 P/ R/ H5 [% n; [! e9 N
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。5 a& l+ A3 j. h( n1 \
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    1 t  W6 N7 }1 Y# e5 B0 dYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。$ D4 k! {8 m8 p8 M  v
    最终网站前端效果图:: ~0 g1 W$ ~& o, E. t! ~. \
      J8 a* ^/ w  C3 B4 k) T2 X# \
    9 p& r0 Y2 j& N, H; q$ N7 N$ y" i
    短网址前端效果图后端效果图:7 A' v- E' }1 l1 \
    0 u; G2 N/ c/ a' C5 B) P' J3 B
    ! ?, \( e  ]* R; p! F
    短网址后端效果图相对原版颜值高了不少。2 M! M7 D3 @/ X. t3 E, [
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表