请选择 进入手机版 | 继续访问电脑版

扫一扫,微信登陆

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

搜索
查看: 715|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。! `& F, s% T, m, G$ Y  ?9 O
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    : [' N2 X, c" b5 T# W+ s' b4 O: Y8 C本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    - {. s5 X2 h  ?+ \3 R$ x 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。- X; s# D8 j( Y9 B& x
    + Z$ {% j$ \+ P- M- c
    % a% x2 Q* t0 @8 ~* l/ N! K" b
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:4 [3 W7 {6 Z5 w# U( F1 z, @
    # Debian/Ubuntu系统安装PHP 7.4
    0 v/ S, _/ B- [. Q3 D* Uapt install -y lsb-release gnupg2
    1 E; ~7 Q- E$ U8 S" Uwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -$ L% p5 B$ k5 ^" r5 n1 y1 X/ ~/ o  ?& Z  D
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list/ t6 A" j5 S1 N& y2 L0 ]# p
    apt update% h4 z) c+ a9 Y% q9 f# @1 d6 K3 W+ t
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \7 Q1 a& T) i2 b1 G/ M8 H
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    # q0 W1 t: F) E0 n6 lupdate-alternatives --set php /usr/bin/php7.4
    ( L  k$ n5 o. M3 }1 w3 x# n' p4 e# 启动PHP-FPM
    9 G5 t4 I. D! K* z7 n! E$ esystemctl start php7.4-fpm
    8 k/ C. K" L4 C8 ?0 b- V* R) }接着安装Mysql(MariaDB):! M3 q5 J3 |3 [1 \; w* ^
    # Debian/Ubuntu安装Mariadb5 x- Y: X: _( ^  N4 @
    apt install -y mariadb-server
    ) T  e6 L/ o1 d7 [#CentOS安装Mariadb1 c7 E0 w* K1 I3 l9 `
    yum install -y mariadb-server
    $ V2 d) P5 z: ]  h& W5 t0 |systemctl enable mariadb& U: t, P$ ^. h# q
    #启动Mariadb* q8 R6 ~2 K) m" E$ u
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    : |+ t( ?; `5 f) H% u! `+ d+ i#CentOS系统安装Nginx
    , ~* X. U. q8 V. X- ~5 P6 |yum install -y nginx
    * M9 Q/ [* k7 H; }' [systemctl enable nginx/ D. C. |; Y/ O5 i6 u4 ]1 J
    #Debian/Ubuntu安装Nginx
    ' F0 e% I" h$ ?9 ~' v3 p8 _/ papt install -y nginx
    . {3 X9 D  ]9 S+ a5 g/ H安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    ' `! }% x' M. b: g 部署YOURLS返回目录部署YOURLS的步骤如下:
    2 k% P# c" ~8 @0 n- r8 S! Z1. 创建YOURLS的数据库用户名和数据库:' f* G5 B( o/ g
    # 进入数据库
    % q4 M7 M" L5 B" \/ ~+ F; O" \0 Omysql3 x- P4 q( Q4 L" u0 h: y9 z5 x
    # 创建用户名,用户名和密码改成你自己的
    ; `; j  H- i) f, u& R. t- r% t0 i5 R5 WCREATE USER 用户名@'%' IDENTIFIED BY '密码';6 y1 h' m) A/ U* ^( W# o- k& @
    # 创建数据库,数据库名字改成你自己的
    : I% _  Z; w+ ?- h" X9 Q5 sCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    , a" r6 \# ~* P2 ]# g8 A/ G/ w# 赋予权限8 ]2 X5 p8 a( L4 h2 S
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    2 G$ P8 j5 O2 E, O+ X# 刷新权限( w$ X$ t, Q5 Q0 b6 o! K% R% w" N. S
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:6 P, Z0 c& w* C
    mkdir -p /var/www: l' |; H! _0 R8 @0 a- g9 o
    cd /var/www/
    % C+ U2 t0 P4 E; _# a. C- gwget https://github.com/YOURLS/YOURLS/archive/master.zip7 {" c! e( X. |' g! E
    unzip master.zip
    - b/ g% B4 Z' v* Rmv YOURLS-master YOURLS) C2 J( K9 Q3 l
    # 修改网站目录权限3 t! o6 D& N1 ]  V4 \
    # Ubuntu/Debian系统. h( a2 E7 D4 }/ C9 s* @! T
    chown -R www-data:www-data YOURLS
    4 A& z; s1 ~9 }. n4 _! \# CentOS
    2 q6 k" D; N" q& v4 Xchown -R apache:apache YOURLS
    7 w  P& o: Z: B; h9 `: Ncd YOURLS& b: v. J& v8 }* g2 W8 s0 j' E& L
    cp user/config-sample.php user/config.php7 `5 B4 U) |7 p
    cp sample-public-front-page.txt index.php2 ]4 V, {9 ?- h$ J/ k7 G2 ?
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:% T- q7 D. `  n  ?( a$ [7 p
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    1 c5 n1 _9 e" V* I% p0 V- x$ Sdefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    0 {; p# K$ R8 p* `; [5 s; Hdefine( 'YOURLS_DB_NAME', '填写数据库名字' );# W$ F0 \9 D& A
    # 这两行基本不用改
    ' L' U( P8 p6 Z& j; ?3 odefine( 'YOURLS_DB_HOST', 'localhost' );
    9 p" C0 j& I1 k; f$ P% o8 Cdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    : v3 O! G" @% n7 b2 ?' P7 f# 填写你的域名,不要加www形式* b1 g3 L4 b  a5 d- m6 u
    define( 'YOURLS_SITE', 'http://你的域名' );9 L3 Y. K3 o& W9 Y: p# F" w
    # 填写时区,国内是8
    * v! y* ^2 B) K4 fdefine( 'YOURLS_HOURS_OFFSET', 8 );8 B9 N' C4 q0 }. ?' I4 _
    # 设置为中文
    4 F2 U, {+ j$ ~$ I) S& [* ndefine( 'YOURLS_LANG', 'zh_CN' );
    / @4 M' Y" ?/ k- j  q/** Allow multiple short URLs for a same long URL
    ' }/ d8 p9 F- {) M  C' k9 C ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)* T% f7 B% ~8 D4 L
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */" t" Q2 M  x' e. Q0 ~+ b0 c# |
    define( 'YOURLS_UNIQUE_URLS', false );6 F1 w8 [, x1 r3 g9 q0 Z
    # 设置私有权限1 V3 L% ?) I' a& B3 H
    define( 'YOURLS_PRIVATE', true );5 G2 v% I9 i  h6 @

    ( E- Z0 T# |6 j8 M; u; I9 wdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );# f4 M; k& X' v, p% y# ]& R! k
    # 后台登录用户名和密码,一行设置一个,请务必修改
    1 s, w" b0 t7 |$yourls_user_passwords = array(9 \; B. N* ^8 z6 v
            '用户名1' => '密码1',
    3 n- G8 Y* g, \( |# Y/ V# z        // 'username2' => 'password2',
    2 J% p2 D+ _) b: I) Q6 k        // You can have one or more 'login'=>'password' lines* B* [; u. k; V" ?- ?' r6 M0 k- H1 B
            );
    % C1 i1 p% M8 J" O, s* O! j4 [5 q3 D5 q/** Debug mode to output some internal information
    ; M8 o* e% D/ g ** Default is false for live site. Enable when coding or before submitting a new issue */
    * k" K; i: ^6 n5 V7 o; z5 X! Qdefine( 'YOURLS_DEBUG', false );/ K% C5 |$ _& ^' T9 F5 m
    # 网址中允许大些字母填62,否则填36* g3 ~/ ?# F% f4 T$ [- M7 U3 `/ H6 u
    define( 'YOURLS_URL_CONVERT', 62 );$ M* s5 l* k6 p6 v3 ^
    /*: d/ z! a* h% |' {' z& \
    * 36: generates all lowercase keywords (ie: 13jkm)
    : I7 t2 T% I5 T9 L# Y * 62: generates mixed case keywords (ie: 13jKm or 13JKm)) D- X4 q3 |2 x
    * Stick to one setting. It's best not to change after you've started creating links.& p, ]! \4 r- n- U% e
    */
    0 j$ o" q) ^! P% U# w* k% b# 保留的关键字,可自己添加6 p$ V8 O, Y; I; I; F) H
    $yourls_reserved_URL = array(
    ( D7 J+ m1 v9 v6 U        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',. {' S% I1 f+ G
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    , [9 F* G5 s2 _4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容1 a- U! {6 e7 b0 s- T4 ~% P- R
    server {7 n: `3 q! r3 y$ O! v
        listen   80;
    : ^. A1 B+ D# M3 g: U0 I4 h    server_name 你的域名;+ z9 s6 r/ O7 r  ~3 D/ \
        charset utf-8;
    % }7 o: |+ t( F$ \    root "/var/www/YOURLS";7 `( x. T/ G& f; o: g8 z  A4 C
        location / {
    * n# `% [+ M4 l+ g        index  index.php index.html;
    ; r  p: j3 v) }, N! K9 A$ @        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    5 E/ \# x1 s$ R* \! ]    }
    2 |0 z" q+ A8 h" t  k3 r    location ~ ^/\.user\.ini {8 U) F" g* A$ W
                deny all;1 q% E3 n4 z+ h1 v' F
        }6 t. w+ J; Y2 [3 m. k) F. q7 A0 r$ j
        location ~ \.php$ {
    , t1 t! p5 l: G  V4 v- M7 ]  Z        try_files $uri =404;- p0 w8 T6 e6 x  z
            fastcgi_index index.php;5 W0 C: ^! D) Q* x& n* R) @2 O" J
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;% E. S. q% l! e6 X  k
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    / X. p5 d$ R. a0 b) e. K6 A: _        include fastcgi_params;, H- {, a; ^. Y$ g. M
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;8 x( g* z1 }( R+ V  F
        }
    * h" J9 R7 @  c1 ^3 ^' 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)$ {
    - S2 p3 H4 M+ k7 N+ ]1 Q4 M( \! j# Z8 u        expires max;
    & h" M- {4 m/ o* z* f; d4 A        access_log off;2 |" Q' b3 X, N" P/ I
            try_files $uri =404;
    / `# W" y# t: e& Y5 x) W    }6 E5 F# f& g5 q" J% F9 c2 M4 V
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书# e& A( K1 q1 x6 L* f
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。/ j3 R; B9 j/ C* P% g, t6 l
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    ) J4 n  k' I: a- J0 D7 w2 @! z  F4 Y* c" Q/ S5 Q$ Y

    . K. K0 I9 \5 k6 t, D- T# @1 P3 wYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。2 o& Z  m% Z) I, O- o) m4 x
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    + w  i5 F  O& u; E首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    8 |( u: o% @; s
    6 Z3 F) H, g) O! R" @3 j7 E9 Q1 F$ d/ J3 e, C, ^) Z
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    ( G$ |9 F* f; N( Q, J# a6 D推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    # ^) n, U: D, }  v4 MYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。: ^; ^1 J* U6 M. `
    最终网站前端效果图:
    7 f5 f( ?2 S' `' h2 F2 y& M
    1 M$ @5 a% l4 T7 g) F
    0 q& n. C% K: h9 h" Y" Y6 d短网址前端效果图后端效果图:
    3 c1 r" I  C2 J' [' ~3 _/ r. z8 d2 B& y/ a+ V  v* n

      o$ Z+ h7 V4 Y8 U/ n% R短网址后端效果图相对原版颜值高了不少。
    ! @. ]1 F! z5 v: w6 k8 L! [ 参考返回目录[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号 )
    快速回复 返回顶部 返回列表