扫一扫,微信登陆

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

搜索
查看: 964|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。  Q" S% P% Y1 h5 J8 J
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    # a& j6 b: O/ G本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    ! b- g( f. _. [. q0 y$ v, z 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    , M# o: |! `. k- s3 @8 ~! M" V3 e4 j5 P; O4 x( d6 |
    ) Y8 P, H4 n* M3 E' q% S
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:0 P) x; `* p, A9 y& H8 j- ^
    # Debian/Ubuntu系统安装PHP 7.4" H2 y4 D6 O. ]9 G. w
    apt install -y lsb-release gnupg2& E) O% I1 R8 B( ~
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    0 X% K: B6 `8 x5 K# J# A# eecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list; \) i$ _  w2 o
    apt update
    0 K# K" w- s/ q, k7 X, H( F- ~apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
      k3 u# ^7 P& l% q' V% B) q php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick$ A2 A, z0 X1 ?4 v* V# h6 b
    update-alternatives --set php /usr/bin/php7.42 }8 b" F7 D- N- M( X- X
    # 启动PHP-FPM  r: m+ ?% R+ f! Y( z# A: ?
    systemctl start php7.4-fpm- c" ?4 ]% u6 [! |" G( I3 u
    接着安装Mysql(MariaDB):$ ?3 q" M5 q5 u: g
    # Debian/Ubuntu安装Mariadb" l: z1 X8 w! Q# q
    apt install -y mariadb-server
    $ L2 x$ L- B* Q2 N0 J#CentOS安装Mariadb9 Q: B6 p$ H4 y* i& @
    yum install -y mariadb-server) s4 G4 O) d7 }
    systemctl enable mariadb; e+ m9 b" ~* P: u! D* e1 M
    #启动Mariadb, v' ]7 X7 W7 J0 h$ G. R; @
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:' N: B* {. A: q; H7 [9 K% K% I
    #CentOS系统安装Nginx, v0 v/ r4 g6 P7 v6 F( c
    yum install -y nginx' @7 H: V: o+ f/ T& r( ]6 Z
    systemctl enable nginx; D0 g6 _& M5 [& S  D7 {% j0 j4 O- p
    #Debian/Ubuntu安装Nginx8 J/ C5 l1 Z0 d- Y  Q% P
    apt install -y nginx
    ( \3 B+ v# I! v2 Z$ e安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。1 \8 c4 a7 d$ Y- I* F' E' {+ j
    部署YOURLS返回目录部署YOURLS的步骤如下:( R5 j; r% m  f+ p  ^
    1. 创建YOURLS的数据库用户名和数据库:6 F/ J8 t$ r8 P3 w
    # 进入数据库
    7 _6 K& p. f9 C' kmysql4 S. M+ S2 Y2 c! w9 g6 K0 s" S
    # 创建用户名,用户名和密码改成你自己的# B2 A( ~, ?) Z0 g; u# D# b4 R+ M
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    0 x  @' @+ Y. T1 T& S$ f# 创建数据库,数据库名字改成你自己的* N6 Y) N: u4 B8 ]5 v6 l
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    4 s7 ?* B; m; E; f; p) b3 A$ E1 F# 赋予权限
    ) ?1 G/ ?- C, C, RGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';2 C. V4 ?9 j( ?! E
    # 刷新权限
    $ C+ m+ |% O- |3 \FLUSH PRIVILEGES;2. 下载和安装YOURLS:- a: N5 d9 Q8 y7 @) ^$ V" {
    mkdir -p /var/www
    " r9 A( r* k+ \4 }: V5 ?  @% T- c% ~cd /var/www/% t" v! X* f2 y
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    % s6 T" w( t0 P& c. l* {unzip master.zip
    8 C: Y- I3 e  ^; h# }mv YOURLS-master YOURLS) s& G* W4 n; ^$ b& y
    # 修改网站目录权限
    5 [! T" [- Q" P4 F# Ubuntu/Debian系统' `6 y$ q, F& d( s" w) D* {6 W) F4 Y
    chown -R www-data:www-data YOURLS. e% W! x2 e# a$ P+ }( p
    # CentOS2 i* c6 Z; ^1 U9 C! B
    chown -R apache:apache YOURLS
    1 [, g6 S" y+ m5 i1 N% V" bcd YOURLS
    3 P. `  g" z2 b  s3 a& A  ]5 Ncp user/config-sample.php user/config.php
    , I" i4 s& h; M5 N, ^# W3 _cp sample-public-front-page.txt index.php, j+ b2 u/ x9 c: R( ?0 k2 V
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:6 z4 V/ Y' s, X" x* ^2 O1 r3 g
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );) u! P2 I% Q  a8 J
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    : n# T+ h8 J7 O- z/ [1 m' y: H: W$ Qdefine( 'YOURLS_DB_NAME', '填写数据库名字' );
    0 n5 g+ ^/ ^4 @7 W2 E( W# 这两行基本不用改
    ! C& C0 ?7 E9 ?* l% odefine( 'YOURLS_DB_HOST', 'localhost' );
    , ?( b* B# Z4 \5 r$ z) Q; Bdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    7 E. r5 v: p1 k- b) D$ ~# 填写你的域名,不要加www形式
    & W& `) q& f, ]8 Jdefine( 'YOURLS_SITE', 'http://你的域名' );8 P+ R+ c# S+ N- V
    # 填写时区,国内是8- r7 ]' \2 m, H9 J# K) V
    define( 'YOURLS_HOURS_OFFSET', 8 );
    ' c; Q' i* U5 J1 a) p( i) ?( D# I# X4 }# 设置为中文
    / M& m9 Y- m1 Sdefine( 'YOURLS_LANG', 'zh_CN' );! l, X' @7 {9 @# I
    /** Allow multiple short URLs for a same long URL
    + w$ S1 Z( l2 g. o4 l1 J& f ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)3 k2 C8 }% ?7 u; B( D: U6 I) M
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */$ |. g+ k; ~! W/ ^. S' r
    define( 'YOURLS_UNIQUE_URLS', false );3 e- {. n/ ?& c
    # 设置私有权限
    + \# T$ j$ q! \" z! P% E2 Idefine( 'YOURLS_PRIVATE', true );4 F0 a8 v7 [3 D; e6 a$ v

    / G/ p+ A( L+ Bdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    : E5 W8 j+ h$ q( d. s# 后台登录用户名和密码,一行设置一个,请务必修改" Z& }- t) i5 t* S2 \1 C
    $yourls_user_passwords = array(, N) W$ @6 D! s
            '用户名1' => '密码1',: Z7 f3 K: ^5 ~- w2 k3 v
            // 'username2' => 'password2',1 }, m& o$ e4 J6 C$ _2 E/ j1 v) \
            // You can have one or more 'login'=>'password' lines* h6 o9 v% _) V& v* G" r: o' U
            );  y$ I2 f% Z& S! f1 G
    /** Debug mode to output some internal information- K' w. A$ [/ P0 R2 ^" R2 W
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    4 e& N4 D& j. E& hdefine( 'YOURLS_DEBUG', false );
    * P# T( e! a  A8 I- P" W5 q* r# 网址中允许大些字母填62,否则填36
    ) g4 a) ~+ z  O- |define( 'YOURLS_URL_CONVERT', 62 );
    . Y+ n/ v/ b8 I/ ~& c2 e. m7 f$ R/*
    " b6 f8 _( E) u! f1 {9 h  { * 36: generates all lowercase keywords (ie: 13jkm)( G: L5 j6 S4 Z! d# p
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    , L* p1 t- v+ Q3 W& d * Stick to one setting. It's best not to change after you've started creating links.
    - G; t# N" R' I- [9 J7 t2 b' t */
    7 }2 I; B, P1 |! O3 f" H# 保留的关键字,可自己添加
    . m, _% A4 W, \" e1 l% U% |9 {$yourls_reserved_URL = array(1 _, i8 O- n1 d; b: _5 Z4 l
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',  l' v; X* a! O* N0 x" Q* ?
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。. |6 R$ Y$ Q; ~* x
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容6 L, B1 H1 j- X' b' J
    server {: }( U8 P9 T$ x4 X7 ^, X( S" b/ }2 O
        listen   80;5 g4 S. z" f9 p' p: c
        server_name 你的域名;
    , w/ E, U6 g' k4 |    charset utf-8;- Q7 I6 x2 w% _" {
        root "/var/www/YOURLS";1 b+ K2 a0 I) _- R  @5 h) j$ A
        location / {- y7 ]* k3 n5 M$ R% X
            index  index.php index.html;/ f2 m  _# l8 K' p4 |7 ~% i6 t, n
            try_files $uri $uri/ /yourls-loader.php$is_args$args;( t0 Z" b! d! h' J" l5 x1 i- ?' }
        }
    9 P7 f# K7 g2 R6 w. [8 w% Z    location ~ ^/\.user\.ini {( O* I. |2 E% A
                deny all;+ S; A9 a; J6 u" e
        }
    * l/ V0 q% }+ B! ?6 A0 j    location ~ \.php$ {
    # H3 X# N+ b4 K8 |3 ?' O        try_files $uri =404;8 H8 F+ r7 ~" o: P& s4 s$ s
            fastcgi_index index.php;
    6 Y3 P( z1 q9 W6 C: d' r        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    7 E" v8 E. t- P# \& A: D+ S4 k        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    1 Q! O6 W! p, W' b. K$ X3 {$ d, A        include fastcgi_params;, U: P+ `1 q- ?" H$ b
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    8 k( H6 }, C, B9 ]$ e    }
    & a* ?7 o1 w' Q; F) G1 y    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    2 E0 a5 J' p5 q        expires max;
    6 m8 }" @. u4 g- i1 q        access_log off;, a: d6 i. m2 h3 M# l' \4 v/ p, F
            try_files $uri =404;/ U. ~* G" ]# E* {' L. ?
        }; l. ~! [1 D. w8 ?. [5 C) i# C5 {
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书' ~3 z  f7 _% B/ G( N) C( r
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。. p% a2 f1 v' b
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    ' ]  H! \3 a$ Y" \
    2 h6 f* s, {& W+ G' C. N% w* Z# `
    ! Z( @( e! B- J6 K8 CYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。- k; \, T; y0 y9 m7 `1 b5 H
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    / T# t. ]. B( j, R) n首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    ; |" e9 L5 z1 O. ?  x+ b
    $ A# s- S# C5 Y8 P/ q: i# H% T( z, B4 {" D1 l+ Z
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。$ V+ L* |6 X. N' F3 y7 D
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。- j& B0 m% \" D* G
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    ) V( m& v( V2 f- V  H' I* l最终网站前端效果图:
    ' i+ c1 D6 e) f# D5 G& N9 H% \- B+ j* l2 z& m& q$ e# ~) Y

    6 j) D, Q  e9 p* x  K! s" Y短网址前端效果图后端效果图:
    0 Y8 }$ E& \5 N1 K% r
    - b1 G7 ]7 V+ T" b- \0 Z% O2 v. f7 Z7 m) T5 i# O
    短网址后端效果图相对原版颜值高了不少。
    * l# T0 Y! b* Z! S5 ~+ ^ 参考返回目录[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号 )
    快速回复 返回顶部 返回列表