扫一扫,微信登陆

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

搜索
查看: 1005|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    + B( p2 J; D0 X. W; g2 m" C9 W& O经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    2 L1 p! H: B3 q# Z$ @" T本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。4 v  ^# j7 \0 R0 _. c4 x2 U) y* W
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    ) z# {, X! a1 q+ }' S
    : A, J! n  r+ ~; J! u- V5 b4 T7 T
    # R# U9 Y) X+ t! i2 ]. P  H" [9 j域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:3 r/ {1 E/ n* S, k3 r0 j
    # Debian/Ubuntu系统安装PHP 7.4. y6 T* R3 \( Q/ b/ T5 ~
    apt install -y lsb-release gnupg2
    / h+ }0 Y) H9 R5 gwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -- F4 A$ ^& c' T9 \7 d$ y6 Q- Z9 d0 C) [
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    6 _9 j7 i0 z+ z7 Y8 g! tapt update
    ) O/ r4 e# _* F+ r' y- {1 C# n  aapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \8 D2 T: `% p, {
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    $ E2 d6 L* r% l0 T& V3 t  bupdate-alternatives --set php /usr/bin/php7.4
    % E& h5 T2 t9 }& p( W6 s# 启动PHP-FPM; b4 `! ?$ K: H  n; o5 S7 J6 E( ~
    systemctl start php7.4-fpm
    / S& R# x/ G9 E' T; X7 a7 E. K接着安装Mysql(MariaDB):2 F1 {8 q/ M0 d8 f
    # Debian/Ubuntu安装Mariadb% P1 U! L+ m1 q* B4 L/ Y& S9 ~9 a+ m" G
    apt install -y mariadb-server3 v- k& I- c9 q4 i% \& I1 T8 ~
    #CentOS安装Mariadb
    * U7 y& |; S  @2 ^+ P* ]8 w  uyum install -y mariadb-server
    / E9 c) k$ s4 ~  psystemctl enable mariadb/ a* k! W$ {; h, |: ^7 C& G, R, x# Z
    #启动Mariadb
    2 X, J9 b2 @7 N2 _: C& _systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:& {2 ?: _4 v0 U4 z
    #CentOS系统安装Nginx
    , h- ~: n( [/ a1 Iyum install -y nginx
    6 {2 W+ |  G; nsystemctl enable nginx
    ; `8 F+ ]) z& n$ {8 k#Debian/Ubuntu安装Nginx4 v" n4 }# A& }  |
    apt install -y nginx" `1 V8 c0 g2 H, m
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    ( S* F4 p2 n1 V1 l1 G: C4 j 部署YOURLS返回目录部署YOURLS的步骤如下:
    5 o6 e/ k' k) p' q5 j! }9 v1. 创建YOURLS的数据库用户名和数据库:: Y6 E/ `4 B4 O- O3 m+ J  p
    # 进入数据库
    : L( _0 p( Q/ n0 ?3 K$ _mysql
    3 G5 |* D: O! N, P) C# 创建用户名,用户名和密码改成你自己的
    - c$ ^8 U. f: p1 L. \. G9 b8 _CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    0 i( @* u% W& U* b$ Z# 创建数据库,数据库名字改成你自己的
    " T$ f  O! V; {: `* o9 tCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;. Q7 d2 @1 T& k* _+ u
    # 赋予权限, u" B% f) \# p7 C- K  x
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';0 u  |. D6 O$ ?! o4 o# x
    # 刷新权限
    2 C, K! ~  |9 v! @& QFLUSH PRIVILEGES;2. 下载和安装YOURLS:  p9 c8 G( P3 s4 I5 y3 v
    mkdir -p /var/www
    7 `* F) z$ i% s& r# Mcd /var/www/
    & f2 K$ Q3 N) C" xwget https://github.com/YOURLS/YOURLS/archive/master.zip. K. J; J) {6 v: z1 _/ q1 t6 f8 H
    unzip master.zip1 O. l/ w! b! z+ k0 f- O) b5 v
    mv YOURLS-master YOURLS! n& X4 w3 z. e% O
    # 修改网站目录权限
    : D2 l8 _" [* {3 R& |# Ubuntu/Debian系统
    3 [/ h, C6 z8 V$ d3 I& m) y8 \chown -R www-data:www-data YOURLS
    ; p" [1 ]) P6 [$ d% L# CentOS; j! m1 j8 h4 T6 _/ f' k* B5 Z3 ^2 U
    chown -R apache:apache YOURLS; k) H+ A0 ~4 O3 ~) N9 i, H
    cd YOURLS
    # H" z6 ~" o8 I( g0 z4 v2 Hcp user/config-sample.php user/config.php
      k7 J+ ^$ ^" M+ Ccp sample-public-front-page.txt index.php
    ' b6 F; v# l9 o0 S6 P  vcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    - I  V8 J& p' \/ w$ Jdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );3 f& n9 Q1 W8 l  D+ x' x
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ) p& |3 \4 ~" ]* B2 a" ndefine( 'YOURLS_DB_NAME', '填写数据库名字' );
    7 x& C' Y! @' F- G0 I# g# 这两行基本不用改
    5 a( W) j) L0 D" J7 i5 e0 }, ddefine( 'YOURLS_DB_HOST', 'localhost' );2 t* y1 Q7 `/ ?6 |* t* |9 u# T; L
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    ; a$ T3 x/ @3 E* p6 A# 填写你的域名,不要加www形式
    , c3 S8 |' V3 {8 I/ `# @define( 'YOURLS_SITE', 'http://你的域名' );. d, O1 L4 t7 k% s! w
    # 填写时区,国内是80 s* u5 u& S5 a4 _2 K( c
    define( 'YOURLS_HOURS_OFFSET', 8 );8 c/ `4 F' ^, L+ a2 G1 _! O
    # 设置为中文
    / _& H: {  Q) @8 idefine( 'YOURLS_LANG', 'zh_CN' );
    # d4 c/ e8 w; p$ _0 F0 L0 N/** Allow multiple short URLs for a same long URL
    * P, ^- j* I* R: L$ \( D/ \ ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    & l- ^6 ^4 \0 x: h* x8 v ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */  Z. ^8 \7 P6 n9 ~) N& x
    define( 'YOURLS_UNIQUE_URLS', false );
    ! a7 r% G5 U- w' {4 ?5 d( Z# 设置私有权限% f( C5 Z$ D5 U& B+ t
    define( 'YOURLS_PRIVATE', true );% B% s& S; f8 l* [$ A; a1 X

    % t9 u4 L4 x# w# O& Udefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    8 U- r# s3 h/ i+ `# 后台登录用户名和密码,一行设置一个,请务必修改
    % [% P$ n5 U; a4 \* L' O! E$yourls_user_passwords = array(+ U# G6 j/ y% L- F* X: q6 X% C! V
            '用户名1' => '密码1',
    5 R! V5 \) g7 O+ F        // 'username2' => 'password2',
    . W. @; n1 w  s        // You can have one or more 'login'=>'password' lines
    . C$ z  }  Q5 M4 R: T! G        );
    7 a. Y1 H2 G4 e" h0 P: a2 s/** Debug mode to output some internal information
    # q. {- x! s; C, j8 z. U ** Default is false for live site. Enable when coding or before submitting a new issue */
    6 M5 p5 `" h& |6 {4 kdefine( 'YOURLS_DEBUG', false );
    ) w- @7 \3 v9 j( H6 ^# 网址中允许大些字母填62,否则填36* `% H- ]- K" b: o
    define( 'YOURLS_URL_CONVERT', 62 );
    0 g+ m, s1 U, H/*
    " A0 E' o2 ?) d8 v# O' I# ] * 36: generates all lowercase keywords (ie: 13jkm)
    ' U* s4 B/ N% k5 A( x& q9 { * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    # x# k$ G. n  e2 k) x * Stick to one setting. It's best not to change after you've started creating links.5 d  z' i6 p) J, m  T' T
    */8 y) N8 f5 C$ g* a4 R. v% @: v
    # 保留的关键字,可自己添加
    6 i/ Z9 u. x! c% M$ O, w& ^$yourls_reserved_URL = array(7 [$ _1 k) J$ l/ |
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    2 l& e( }1 t4 Y5 ?8 `3 |8 R* j, ^, e);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    & F, C; I6 [7 m' j, p7 s$ @4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容2 K: p4 M" `8 w- z. _
    server {
    ! d7 R+ w9 h9 {8 \% u% _    listen   80;
    & k4 h. F9 t9 {6 [( G$ @$ b    server_name 你的域名;
    # M1 k1 @# X( N* P    charset utf-8;
    " x0 K; P# g$ C, ^4 G( C$ U    root "/var/www/YOURLS";7 Y. H( |! T4 W. B& D9 w
        location / {% Y/ }: R$ H! L. v
            index  index.php index.html;' N/ {6 J1 o4 b; [0 R
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    3 [7 g: z% g) o% f1 G4 k9 c: ~: m    }3 F- @9 S! B4 h" d. Y! T* ]% \& K
        location ~ ^/\.user\.ini {& j% e9 G3 B$ o, i. I, d: Q# T) p% H
                deny all;+ z# @3 g/ _$ }9 S
        }2 ~3 v' s. b' i  f  v* O2 O/ J' k
        location ~ \.php$ {
    5 ^: H+ [) J, B- ?& o        try_files $uri =404;
    ' A4 W5 M- O4 V; Q2 d2 s! X        fastcgi_index index.php;7 @& y3 h6 r# T# M
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;$ I4 u9 a$ Q0 [1 o* P" [9 M' v
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    ) |4 G0 s( ^& f        include fastcgi_params;. P' z; W% ^6 y, q/ Y% n; Z
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;7 }7 A9 l3 a, G' e% n* Z
        }6 k) r0 z7 a0 I, L6 S7 c
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {! x, m5 i* f" F4 p$ o, m" p8 ^: i0 X
            expires max;
    ' \0 @8 I& h; p( U1 \, r        access_log off;6 s9 a9 V! J% A
            try_files $uri =404;
    : [' \7 f) Q1 r6 _0 G    }
    $ Y. T, c3 b& ~5 ?! q, C}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书6 O1 c# w- y* Z$ |9 Z0 A( i
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。1 ]' J0 `6 k7 g
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:: \& q. s2 n  n/ R9 L
    1 ?: d* k, N5 C( E
      }# m4 l% o9 ]1 O4 V
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    : [5 q+ v  j/ L4 k% M2 g5 H 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。0 ?% V5 f: N" X% [
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:4 X3 |4 a9 X# X4 `
    7 F+ P( r: r2 v( ~7 `+ y8 y% S# C
    9 C0 V1 Z: P# o: t& C- \0 t
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    # |1 @& H  T- U. i4 n推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。) O5 C* t" A- v
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。8 C7 u& x* d$ e" z
    最终网站前端效果图:5 A8 X) C- q7 q2 f1 O
    $ [' ^3 m- j  s. e8 x
    $ C5 d8 b5 u; S3 x% t4 u+ {+ y
    短网址前端效果图后端效果图:! a' c) e* ~/ T1 K7 ]' g% r

    + F5 |# J( K6 b0 ^4 P. f+ e3 O0 L/ ?; C- ?) p6 F
    短网址后端效果图相对原版颜值高了不少。) z3 @0 `5 |( i5 y5 I" \0 {) V
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表