扫一扫,微信登陆

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

搜索
查看: 482|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    . q' }( U/ o4 @9 y8 c3 ~2 R- O0 c+ R' z% j5 o
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    , O0 Q/ G6 H4 n# y, X3 U" T# Debian/Ubuntu系统安装PHP 7.44 o6 V8 O+ w) e8 M2 C  h7 V
    apt install -y lsb-release gnupg2
    8 S0 z* f. v" l* V. c5 qwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    : q0 g2 k) A/ T% a3 z* k  Iecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    % m( T6 X7 v4 C! _; [apt update
    8 E; X9 q9 _& S) \# d# E& o' F, a! B: Lapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \: l! i: n- h' S# F/ n- G8 B
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick' K# U& Z1 ?8 h* [2 B  g2 d
    update-alternatives --set php /usr/bin/php7.4
    ' _2 \2 J, u# u$ O* g6 O2 Y7 F# 启动PHP-FPM$ j' {" F8 Z- O& }/ G1 `8 v
    systemctl start php7.4-fpm1 h/ t- F* l" m4 R* S
    接着安装Mysql(MariaDB):1 I4 i4 L) Q5 w6 }  j; H4 x8 F+ G! D
    # Debian/Ubuntu安装Mariadb
    - b5 B5 v3 J" v8 ?1 ^+ A" Qapt install -y mariadb-server8 v. }# f. s3 [! k2 G- N/ V' a( U! S
    #CentOS安装Mariadb
    & h8 r# X* K. B0 n; F& Lyum install -y mariadb-server9 v( l( e8 [' k' H8 V- p
    systemctl enable mariadb2 M9 H4 g5 t" B7 O$ h) \, j  Y8 q/ n
    #启动Mariadb
    . k8 S# j' {3 y! E5 S5 v4 K, r+ Qsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:* j- G  D( N0 c' @: t9 z( e! l
    #CentOS系统安装Nginx: L- J) z8 v- T4 w1 a$ `
    yum install -y nginx* z- K1 y9 c" U
    systemctl enable nginx' \. ]( y% s8 Z! ^# D9 }5 W4 s0 W
    #Debian/Ubuntu安装Nginx
    # W& O* Q9 K8 b5 ?0 y0 ~! gapt install -y nginx9 d, _+ J6 t- G( ~
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。. K4 S3 V4 i  i7 Y. l) I5 v; ~
    部署YOURLS返回目录部署YOURLS的步骤如下:
    0 C/ Q- Z2 P/ @3 G  T1. 创建YOURLS的数据库用户名和数据库:
    , \$ F$ D4 z0 n( T; ?. n# 进入数据库! f5 H& f+ m* i: j& U
    mysql. Q9 Z7 }1 f. r: V: Y
    # 创建用户名,用户名和密码改成你自己的
    6 Q5 X  H6 P7 K$ ?/ t$ NCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    2 u3 X7 V$ @: q7 U: v2 q! j8 Y9 V# 创建数据库,数据库名字改成你自己的; ]( x* }' m# V+ V
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;# W2 l3 X6 [$ L6 t$ p2 }! l$ R2 t
    # 赋予权限8 V$ H6 p1 L2 m- N. B6 ~" R# a
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';2 U7 k4 I, o3 G( _' p
    # 刷新权限/ c( q+ A, b% p' z% [; Q
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:3 ]  v, F2 ?9 I) I. T* P
    mkdir -p /var/www: K5 W$ Q5 N3 N/ V% w
    cd /var/www/
    % ^+ H) b/ f& Swget https://github.com/YOURLS/YOURLS/archive/master.zip
      k/ t4 W; }9 X1 xunzip master.zip; s% Z* }$ }; h' H3 S) O) C
    mv YOURLS-master YOURLS
    6 w: U1 G, l' Q/ o1 i# 修改网站目录权限! v5 [( ^$ [/ f. D7 l3 B5 g
    # Ubuntu/Debian系统9 M9 ^+ T: [( ]9 Q8 Q1 B
    chown -R www-data:www-data YOURLS% u  q1 j  L# Y% b
    # CentOS: n/ |/ z# Q* Q& C- C* E
    chown -R apache:apache YOURLS" Z; |8 f5 o1 p0 z* w
    cd YOURLS  D" N  X) g3 P
    cp user/config-sample.php user/config.php3 V: {( j  j4 P/ Z+ O8 m. B+ }
    cp sample-public-front-page.txt index.php+ y1 w4 ?6 V* k7 W3 U4 f
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
      S% B: K; ]6 I; _: w. J: Gdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );) h; ?' u7 ?+ v+ W$ z' C
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ' U& I# d' T8 I; Z. Tdefine( 'YOURLS_DB_NAME', '填写数据库名字' );3 v& N) S1 U: a
    # 这两行基本不用改  Z2 C0 }7 }. N. B6 Z
    define( 'YOURLS_DB_HOST', 'localhost' );* b/ c4 J* T, |' F& h
    define( 'YOURLS_DB_PREFIX', 'yourls_' );- n& a* ?, L6 D+ C
    # 填写你的域名,不要加www形式
    " C6 k* j4 d! w9 J$ G8 x6 R. Ydefine( 'YOURLS_SITE', 'http://你的域名' );
    " W5 q) b  k% {# 填写时区,国内是8
    ' i* S) Q+ ]# f2 \2 j% x8 ydefine( 'YOURLS_HOURS_OFFSET', 8 );" }1 y9 `) T) K* }0 J( K0 C0 Z/ l0 L0 _
    # 设置为中文
      I1 {& {1 F2 r$ w) R' Ldefine( 'YOURLS_LANG', 'zh_CN' );! N6 ^* Q  M9 u1 v+ g9 W7 X* B
    /** Allow multiple short URLs for a same long URL
    ; B9 Z( a+ H3 g1 v" i ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    - o% y; G5 \: I5 x+ M6 k2 m7 O ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */+ h4 W- B! i" |! v- G
    define( 'YOURLS_UNIQUE_URLS', false );6 \% T" R( B. O* k0 Z6 |# u2 ^
    # 设置私有权限  @) a% _7 c- U( ?* l$ Y+ n& A0 x8 _
    define( 'YOURLS_PRIVATE', true );' W, j. R* c- Z: I+ }
    8 \; X: ^, h& V
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    0 W$ M" w' l0 E% ~% J3 f# 后台登录用户名和密码,一行设置一个,请务必修改' m  A& {9 R+ o5 h+ @* e
    $yourls_user_passwords = array(
    ) n1 ]5 B  T# b0 X* P- e: }4 C0 q        '用户名1' => '密码1',
    # Y; G1 F" X6 w3 x        // 'username2' => 'password2',3 f9 V9 E* N. D: e* p  d% I
            // You can have one or more 'login'=>'password' lines
    5 s' K% |' P5 J' n        );' z: S7 S8 h) h* K  \) l6 t0 G- u
    /** Debug mode to output some internal information7 _5 B, R% \5 F! y7 E
    ** Default is false for live site. Enable when coding or before submitting a new issue */: i6 G) L3 y9 ~0 S
    define( 'YOURLS_DEBUG', false );+ l( W3 k5 v! D' l: q8 B. Z
    # 网址中允许大些字母填62,否则填361 X+ u, T# t% V/ {
    define( 'YOURLS_URL_CONVERT', 62 );. J  q& }2 Z4 V! p3 I# ^
    /*' J( \9 A+ w( e1 u- r; v% b
    * 36: generates all lowercase keywords (ie: 13jkm)% u- ^! N6 s3 S+ ]
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)$ ?) ?* A% L3 j7 h' f( u
    * Stick to one setting. It's best not to change after you've started creating links.! x1 k+ d; `8 t3 R4 W
    */' Z$ ?# F+ g3 D6 g$ D
    # 保留的关键字,可自己添加" n8 _: a# `3 f
    $yourls_reserved_URL = array(
    * K* |; P' Z2 a9 h9 v$ S        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    " k( K6 c, O7 _8 M) D);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。) m+ d4 A! \; C1 _  j# v2 a
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容6 `% r4 s% k5 ]- y- f. g" ^+ i$ D
    server {
    . \# M/ a* l% H0 [' V' W& ~    listen   80;; z9 a) R# O7 A% b
        server_name 你的域名;
    1 s, V0 v+ p, S$ j9 @    charset utf-8;
    4 b. Z# r4 B5 X" Y) ^3 I8 e    root "/var/www/YOURLS";; l3 ?' }# ^* R; o' n+ c5 l
        location / {0 C3 R  J& H2 U0 _) I% T' d2 M
            index  index.php index.html;
    7 a% U$ k9 _( y9 R# O        try_files $uri $uri/ /yourls-loader.php$is_args$args;+ s6 E; M  a. ~6 M- m
        }
    6 R- p2 a0 k2 }: c/ }    location ~ ^/\.user\.ini {% {4 L0 l1 M6 c/ X* P1 P% [
                deny all;
    ) m1 B: P; ?% G# l    }
    ' g$ ^0 e4 l  x9 l3 M6 k( p    location ~ \.php$ {
    ) n+ A# u5 Q* M' l. T8 \7 \        try_files $uri =404;5 ]) K8 ^! \$ z; W' V; ~$ p
            fastcgi_index index.php;* [+ o) O5 f! K
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    # c3 B: ^/ y& A; ?        fastcgi_pass unix:/run/php/php7.4-fpm.sock;+ ^. G5 o. i5 D3 T$ ?- v
            include fastcgi_params;( r1 v, D+ i* `* s/ }$ Y1 G9 K
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;" e, ?! A8 `# r5 q+ c
        }2 u5 F. g' L# {6 U% V/ G
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {; w" |% v! B3 E) X0 u) q* R' C! L
            expires max;
    $ r4 o, ]7 g7 e: a' J- i        access_log off;* \: X0 |' W" S  g( [% e
            try_files $uri =404;2 s. A9 T' e8 f% a
        }) @* U& C. C$ d, b3 I7 S0 @
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    ( w! X9 i5 R: ~. U+ G
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    & O) }6 |  ~8 N+ r4 _浏览器打开你的域名,配置正确的话应该能看到类似如下截图:5 I, D8 `, p7 Z

    / _+ Z8 x& c! N* b9 q, H6 r+ Y0 A9 ~0 P$ c# p4 O" ^: [
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    , T* U6 a* h; }; A 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。6 K1 |) L0 o5 }4 K
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    - ~# H  }. \5 l/ c+ t
    / m4 D! ~6 M- ?8 }! v7 V3 y( O* C4 u+ m
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    $ g. S' `/ D5 o推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。; |) X7 |* D; t* g! S! c; I
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    & f+ n# X( M, ?1 X# C最终网站前端效果图:  n  q/ s1 a" G, T
    1 ]* J9 l$ o9 J) z" ?
    1 p' u$ y+ W8 z' g' u+ k& q# h
    短网址前端效果图后端效果图:; D, n7 ~/ J9 W

    ! g5 ~# u' [' g2 b  \  v" u  a
    6 n; k7 U, t4 C, c9 O短网址后端效果图相对原版颜值高了不少。+ N3 L+ F2 J6 D; }. S3 n( S
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表