扫一扫,微信登陆

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

搜索
查看: 633|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    ( }& g$ S1 G& f0 g6 Y
    + e" F6 O4 k6 `5 Y. C2 \! M域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    6 f$ p/ ^* i3 }. L! ?# Debian/Ubuntu系统安装PHP 7.4
      y5 R/ B* q' v5 Mapt install -y lsb-release gnupg2  Y2 z7 `9 x2 v& i
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    & Z( C6 Q% L) `1 R, y+ Kecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list6 M$ ^" W( q% u6 Y4 F8 m+ y* }  G
    apt update( J0 r# ~; c# y4 G* J1 O
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \* {5 h* U& P: h7 Z( p
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    2 d4 u9 f0 O, M  W7 H* Iupdate-alternatives --set php /usr/bin/php7.4: f: p! z1 g. d. C1 q4 J/ p( R
    # 启动PHP-FPM% W3 l+ w8 X+ {
    systemctl start php7.4-fpm! j, Z3 s+ D3 G3 J$ c
    接着安装Mysql(MariaDB):
    9 O8 K7 e6 l+ Q# n- b# Debian/Ubuntu安装Mariadb% u5 c3 y; B( f% g4 l
    apt install -y mariadb-server
      h! Q4 W1 M1 t8 j- q7 ]3 k#CentOS安装Mariadb
    - y& \8 ^1 Z0 J# ^. Cyum install -y mariadb-server
    ' j" Z1 A) l. V/ psystemctl enable mariadb
    5 y. x3 e& Q6 n#启动Mariadb$ X9 _' Q7 Z7 Z% D7 I' C% x$ W: \
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:4 Z! E6 A. f+ L2 {! H* [
    #CentOS系统安装Nginx
    1 L- [$ s1 o7 D: |. ryum install -y nginx" H' t7 Z& g& u3 O2 D: O2 t+ i
    systemctl enable nginx
    - m5 E' A) T' e/ F' ~4 @/ o#Debian/Ubuntu安装Nginx
    9 ?! V+ \& t" w/ M: rapt install -y nginx
    ' G" N7 K& b2 j" G2 w安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。+ A' v* W( w! d0 w
    部署YOURLS返回目录部署YOURLS的步骤如下:
    5 n6 M/ O; z7 m7 t/ q. g1. 创建YOURLS的数据库用户名和数据库:8 @7 ~' i% f9 e# K
    # 进入数据库! r1 D. x1 h& \8 s
    mysql
    5 K; b' G9 h: b6 f/ q) k# 创建用户名,用户名和密码改成你自己的
    ' G- V* d% N2 v, ~# r3 uCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    - P6 }. s" j' p4 {# 创建数据库,数据库名字改成你自己的' q( n# Q. H3 `6 A8 W. }1 O% \& U$ A
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    0 [6 }$ r2 F- H+ U8 f# 赋予权限1 C! C1 N- F0 B3 v5 J
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';6 W4 v0 ?! M4 }/ K# O9 W) K
    # 刷新权限
    # C. g: b- Y. U) S; i9 V4 y1 n( B! `FLUSH PRIVILEGES;2. 下载和安装YOURLS:6 D, t$ ~7 U# K* Y
    mkdir -p /var/www
    % S% R) |3 `: t6 J9 K: Kcd /var/www/1 X3 B4 D' ?+ ]* Z! {+ T7 d# z
    wget https://github.com/YOURLS/YOURLS/archive/master.zip% d3 o! b. V% @# Y; t
    unzip master.zip/ }3 e7 c9 \* U0 t- u; w! p
    mv YOURLS-master YOURLS
    ; X0 s7 W' s% y) ^: A# 修改网站目录权限$ N6 d; {1 X. D& S
    # Ubuntu/Debian系统
    ) D2 P  ~7 X* Z1 M4 L$ T1 j3 F7 `chown -R www-data:www-data YOURLS
    , X) P& [( Y5 `# CentOS# E* w  v1 _9 E' L& J: h; ]% f
    chown -R apache:apache YOURLS% e. k0 y- K: B; R0 T' C
    cd YOURLS
    / m2 X: i, U+ |cp user/config-sample.php user/config.php- o# V& P" I) _0 o) Z8 c5 v
    cp sample-public-front-page.txt index.php
    9 `% e( @# h" |* ~cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:" @# U% z( x) [/ d4 e
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );* r. I# C$ R; e9 s1 e, A8 ^# N5 i
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ! _7 m6 v, N# L. M1 G4 V% G/ xdefine( 'YOURLS_DB_NAME', '填写数据库名字' );& w2 I) J8 h. ~& x. }/ G5 G3 a
    # 这两行基本不用改: O5 P. r) Q4 s
    define( 'YOURLS_DB_HOST', 'localhost' );$ i$ i5 Y% b6 Y
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    # m) f1 ]5 l  N0 ]1 K# 填写你的域名,不要加www形式8 d# Y& m, p# Q, Z6 T" O
    define( 'YOURLS_SITE', 'http://你的域名' );0 Z  {- n+ d  l* v
    # 填写时区,国内是83 J: r1 }0 T3 S, I7 q& T: T
    define( 'YOURLS_HOURS_OFFSET', 8 );. w/ `/ U- H" g. g0 Y0 G" N
    # 设置为中文
    7 i2 m6 N& W) L+ a) gdefine( 'YOURLS_LANG', 'zh_CN' );
    / [: m" t$ @& z. t- k( D- F; W$ e, Q/** Allow multiple short URLs for a same long URL7 c7 I' p+ I- `2 I- [1 m  e
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    / W9 X5 l/ }2 |7 s ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    2 O4 n8 ^* i( R- T: O: U+ ~5 rdefine( 'YOURLS_UNIQUE_URLS', false );4 L8 _9 S8 a8 h/ M8 a
    # 设置私有权限
    / n% \* c& v& G5 u# p$ Gdefine( 'YOURLS_PRIVATE', true );+ U: B6 F- Z% a6 }  v

    6 @7 {0 Z2 w" l; s6 N9 adefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    1 s+ p1 W! j% A9 M# 后台登录用户名和密码,一行设置一个,请务必修改7 r: {$ l# Q9 L& u+ o
    $yourls_user_passwords = array(
      a3 j5 T) B. G! @        '用户名1' => '密码1',
    . S6 \  U7 E, |        // 'username2' => 'password2',
    # s" e; |( v' N$ G' d6 ^7 \        // You can have one or more 'login'=>'password' lines1 J8 C1 F( m* f; k
            );
    2 ^- @( H3 H9 Y# O- _. O5 r/** Debug mode to output some internal information& Q( \  y' J2 x# S, ~  o3 d
    ** Default is false for live site. Enable when coding or before submitting a new issue */( o" s' Y/ D: n2 O$ Z# i8 C6 x# q" C
    define( 'YOURLS_DEBUG', false );+ x+ K8 u- d: Q7 D7 f* y3 D
    # 网址中允许大些字母填62,否则填369 X' i: D) v( H% R
    define( 'YOURLS_URL_CONVERT', 62 );
      h: ?$ o# X% A9 A1 w$ R5 y* {/*" F, i6 L3 o- N' f) A( l. d
    * 36: generates all lowercase keywords (ie: 13jkm)
    2 u2 k  M( X2 r6 F * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    # l3 O  g6 @6 p4 i# P7 ?# G  U; e * Stick to one setting. It's best not to change after you've started creating links.
    5 `# a/ W/ Q2 | */8 [, @3 @* Z5 y; o6 G4 L8 w
    # 保留的关键字,可自己添加
    ' Y+ ^! e. x% y' B  m$yourls_reserved_URL = array(
    ' D2 [& ?% I1 Z6 v1 w+ X3 ^        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    * j, {& p: H) d# n$ a);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    * y+ T) e# f8 P4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容/ @* K& O" j& |% h/ x
    server {7 }& k: j1 ^7 f# z" g
        listen   80;
    " H, j9 e* J6 J8 h" N    server_name 你的域名;
    ) o2 |( F& U6 [+ r& ?    charset utf-8;
    ! p6 B3 n: v% p* G: }$ ^3 t$ u    root "/var/www/YOURLS";
    * C0 m; g( Z2 j3 b9 j! u7 M+ y    location / {8 ^' j/ a5 c2 t' r8 _% _5 U( k
            index  index.php index.html;+ o$ l  d9 q" \
            try_files $uri $uri/ /yourls-loader.php$is_args$args;, J# a) |' H- Q0 k$ V
        }& q' U* m; }) K5 E+ |
        location ~ ^/\.user\.ini {$ c% V  `: m% j+ F3 H6 O6 }
                deny all;' \9 M6 U; J9 t: h% Z- Q5 m
        }
    : O6 h& @% }# B# j    location ~ \.php$ {# W8 |) e+ d' M6 s; V: d7 V" K
            try_files $uri =404;
    ( s6 M9 R& [7 u  X" B: F/ |3 o! z        fastcgi_index index.php;
    . |4 m' c% |! w, U! w% B% f! r        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;: x: _+ X; q, h% X# V# I) u8 c0 ^# h
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;$ Z9 N/ n! }( X
            include fastcgi_params;
    ( E9 M6 U! |" [; K# H- J' H        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;0 t+ B0 O) d' N+ B- r* m0 ^$ q6 r1 ?
        }' T, n3 s- `+ U+ e
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {& B  R+ q' ~! M& q1 D
            expires max;
    $ J6 Q$ R8 W6 {7 ^8 ^# F        access_log off;7 f! t+ M! M% O1 K7 k
            try_files $uri =404;
    ' _5 L7 p" p( U1 E- C* {5 d2 G    }
    6 o/ a. y. m% s" ~}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书: I8 O0 [: r& G7 p& a6 D+ f
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。) q8 Z7 }0 _: Q- ~0 Q+ S8 d
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:; n- _. @5 `9 B6 G. f

    6 _% Z; _& M. W: W( j
    # p# }1 o2 V# T" sYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。) ^9 x  k* |  `. k* n
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    8 `* y5 g0 r6 v- s& j首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:9 R8 {/ A  L% D% V  r
    $ _' _2 X% z" ]
    . \" x) T, e: [# U$ @$ G8 `/ {
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    0 j0 ]2 o& J8 u9 ^推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    % C* ?* p7 \: d) \+ @6 cYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。  k0 K  j: i$ r: t
    最终网站前端效果图:% z7 n; u( m7 A  g1 r  _" [

    ! t; d( l3 m- L8 B% g+ u0 t% O, O/ K* a+ v
    短网址前端效果图后端效果图:! S/ N. N, m2 J. Z7 d

    / A( c! \& x% J9 x6 }
    * K/ i2 ~! p4 B短网址后端效果图相对原版颜值高了不少。4 f' r4 E0 U; Z( M
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表