扫一扫,微信登陆

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

搜索
查看: 505|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    1 f$ |8 p. R* |/ ^经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    % B; e# o  {1 Y: s& m  {本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    ' u' Z) @0 H$ ?8 }  ?: a 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    5 f- t  r5 \2 U( P2 ?8 x
    ( @0 r0 b3 ^" K* n
    * N0 \' m5 k6 W6 g  T6 U$ i! }域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:) j1 _, J; U9 A$ L: h4 b2 p
    # Debian/Ubuntu系统安装PHP 7.45 Z4 a, N; {9 I/ Y# J
    apt install -y lsb-release gnupg2
    8 g9 O6 F' {* A# {+ jwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    ; s& O" t) c- aecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list8 L/ p4 u. g7 T1 y! K- V$ n
    apt update
    6 U5 ]# p& f4 u% Uapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \: E5 v6 R/ o4 k9 ]# o2 d
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick# f$ v( u9 {: T6 L) R! G
    update-alternatives --set php /usr/bin/php7.4
    4 j  k4 W- T1 n) w6 t8 H( J) N6 z" f# 启动PHP-FPM% x0 ?7 Q5 p8 s4 L4 e! X/ j
    systemctl start php7.4-fpm
    ! p# m* s) R' V: f& [$ E& }$ _接着安装Mysql(MariaDB):8 L; ]& t7 ]0 ~: P3 Y$ @0 C5 ]
    # Debian/Ubuntu安装Mariadb
    # {  j8 h; C. v8 u8 n5 rapt install -y mariadb-server2 W  l8 r; a* F. c/ J$ ?3 a
    #CentOS安装Mariadb
    . p& i2 q' @( c; k+ B$ x  Uyum install -y mariadb-server5 T% v( Y% q" V; N9 q, _# w) O* F
    systemctl enable mariadb
    : U: ]4 s2 B$ M% |) @#启动Mariadb
    / M  k& w. R7 \$ j( u- F. D, C  ^systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:1 k: B. Q+ s+ @) k
    #CentOS系统安装Nginx
    ) D7 H8 t; l% m, b! G2 t; ]yum install -y nginx9 U& N4 C1 M- r$ a' q
    systemctl enable nginx1 _7 S' L3 V* U% c; c
    #Debian/Ubuntu安装Nginx
    2 U* p$ p5 Y& ~2 Z9 C9 rapt install -y nginx. @/ K7 m' Q9 `5 i. V
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    3 Y8 o/ y9 Z, m2 e% O 部署YOURLS返回目录部署YOURLS的步骤如下:
    ! m- a$ @* m( v; t) t7 [1. 创建YOURLS的数据库用户名和数据库:
    ; J) L# [( a, I# o# 进入数据库; R$ @' E3 e" u) H4 m4 u0 B7 L
    mysql0 p0 X" |! O( ]
    # 创建用户名,用户名和密码改成你自己的
    3 g, x. V* c2 \4 u8 r# Y! ?CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    8 A3 o  M& C; p9 s7 a# 创建数据库,数据库名字改成你自己的
    $ k. [0 g/ A. h/ UCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    " U) g& S$ T, P/ \, S# 赋予权限
      M5 `/ g$ t& ~* z, F# dGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';  i5 j. c! B3 j+ A: D" i+ k
    # 刷新权限
    4 t, C1 M' R1 W# r7 t- cFLUSH PRIVILEGES;2. 下载和安装YOURLS:
      V8 e1 o2 i- R4 d7 Y6 D  O  nmkdir -p /var/www* ]6 e6 W% q, h* ?
    cd /var/www/
    : W6 ^5 [% n/ X9 `) ?; z7 ^wget https://github.com/YOURLS/YOURLS/archive/master.zip. c# T- w1 C* _" y0 r0 M4 w3 }
    unzip master.zip
      j* _. r% n: D4 rmv YOURLS-master YOURLS: q6 T0 L: e' n
    # 修改网站目录权限
    ) p) `% b0 h$ i& ~$ ~0 y# Ubuntu/Debian系统
    6 T' ]8 F% a+ p6 ?7 fchown -R www-data:www-data YOURLS, M1 f0 S! k% D9 S" e/ N3 P
    # CentOS9 z3 t6 a& C! f. ]% j1 G0 `
    chown -R apache:apache YOURLS" l/ p& E' k. {9 j
    cd YOURLS, q2 q0 _+ O) r* Z" N0 x" G: |
    cp user/config-sample.php user/config.php/ [# I8 I. g4 ?4 f% S1 R" w, t
    cp sample-public-front-page.txt index.php6 G" P! I$ C, m6 R8 `/ P
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:& K  X  ^' S( _% o, ^! d
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );/ K2 W6 ]" a: e+ u
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    * L1 J/ _; B7 U  h* ?% F: ]' V3 edefine( 'YOURLS_DB_NAME', '填写数据库名字' );
    4 \& {# m; S% u% _: ?# 这两行基本不用改9 ?7 Q6 z% |2 G6 Y) j, A
    define( 'YOURLS_DB_HOST', 'localhost' );. b$ p5 r/ u' k* y, K- `5 G* r
    define( 'YOURLS_DB_PREFIX', 'yourls_' );9 x8 t# ?6 l9 D* F" I
    # 填写你的域名,不要加www形式
    7 s8 E0 {. y8 S5 ^$ L. [define( 'YOURLS_SITE', 'http://你的域名' );& y$ A* G$ u; T" q/ t3 `8 O3 c
    # 填写时区,国内是85 b# j8 n- g" x  [
    define( 'YOURLS_HOURS_OFFSET', 8 );
    % N! T. J# s3 p1 t! _; h# 设置为中文
    : ]  w6 _4 j, Fdefine( 'YOURLS_LANG', 'zh_CN' );  O0 s( [9 {7 L5 [: o, v* ~' u
    /** Allow multiple short URLs for a same long URL# m9 Y7 R) f. i0 S" Y' I1 v
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)0 ]. B9 L/ a' T' J0 P* U5 |
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    # f5 i# w( z  |! n! mdefine( 'YOURLS_UNIQUE_URLS', false );
    2 {& D% O: P& D% ?, D( p6 |# Y# 设置私有权限
    ) q* q  v' L& W4 udefine( 'YOURLS_PRIVATE', true );: O/ X) h' `2 T7 h; |# N* F5 `" t

    9 |+ R" A9 g! Z% P  Xdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );# ]1 L, D! G$ Y
    # 后台登录用户名和密码,一行设置一个,请务必修改
    ( A) J: R& N# R4 f$yourls_user_passwords = array(
    ( _: f+ d, X7 n, \! a        '用户名1' => '密码1',! s$ j1 B: G2 u2 [9 c
            // 'username2' => 'password2',
    % {/ ^6 s3 g+ X0 |. a/ I        // You can have one or more 'login'=>'password' lines
    8 ~, S( p# f- D3 M9 R9 e* {        );  i3 i/ ?' u+ k3 f; C0 h
    /** Debug mode to output some internal information  j- p# Y4 e* f1 R
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    ; R- U& P3 p+ n5 l& Cdefine( 'YOURLS_DEBUG', false );0 L  x3 `: J$ [  _. T+ y
    # 网址中允许大些字母填62,否则填362 d% P. T$ t' @3 x# R, R* n
    define( 'YOURLS_URL_CONVERT', 62 );% _$ Y" Y8 n' [1 X* M2 O
    /*5 V4 h- V& l" ]
    * 36: generates all lowercase keywords (ie: 13jkm)
    & l4 `4 N, B9 S  { * 62: generates mixed case keywords (ie: 13jKm or 13JKm)0 |! l! C! W4 \3 ~
    * Stick to one setting. It's best not to change after you've started creating links.3 U) r7 H- h+ @- U
    */8 p* o! G7 S2 x6 l3 a1 A3 j/ R6 Z
    # 保留的关键字,可自己添加3 y5 s1 O- q5 |; A- G0 a1 i
    $yourls_reserved_URL = array(3 @+ @5 h2 V, r5 X& e$ D
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    5 y. c% K1 W; S; R* \% h$ w);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    9 h  I' R4 ?5 @* O4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    + x2 i) ~- [: v! o4 j, Xserver {. [0 ^9 a# X$ ^$ S" K- x( M
        listen   80;* i* R! _5 }" F& O9 X- w
        server_name 你的域名;
    $ B6 A( h, ~: ]: v% f. q    charset utf-8;
    1 s3 ]/ ^9 R) W$ B4 ]1 i/ M    root "/var/www/YOURLS";7 U3 o0 H3 [9 t  `  x2 p  u# y" n
        location / {
    7 ]6 @9 M% s% h  G& z2 o- D        index  index.php index.html;
    2 J" x3 ?- n* j- B  D7 g5 V        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    " \% o0 d) c; g3 i$ u% ]3 o8 s. B    }; w* z) d8 b2 M. m/ r9 s/ X& D8 g
        location ~ ^/\.user\.ini {/ V6 Y- z/ W& _. v# `0 v, B
                deny all;$ T( \$ y/ z- v4 }: v- E: A
        }' k. b: W3 n  @7 {+ T$ c& Q9 B
        location ~ \.php$ {
    # Z4 L% u! E+ \        try_files $uri =404;" I% a1 a9 F, Z  q4 {9 P
            fastcgi_index index.php;
    ( z. d3 J3 L5 K) ?8 n5 J( e        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;- f+ {- u! m" R$ G% |% M& o! R% d
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;# C# e9 p! }8 X9 c* P
            include fastcgi_params;
    ; l# G# P# |! C% V0 h* q        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;9 Q0 H# r# }' ^/ J% f
        }
    ; E4 U$ F1 P3 k3 M) [  G* n    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    - t) Q  m/ t; p0 J; \        expires max;
    - b) u9 n% Z7 N5 P, ?# H0 G        access_log off;
    2 ?3 H* R. @* `# O# n; e        try_files $uri =404;& b1 Y1 V2 _/ ]0 N9 |( ]% ^4 {- l
        }4 ^- a" N8 S; w) P  ?! ?9 J
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    + [. [% J* E( o: w$ S* M
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。1 a& L- o* z% {- `  \
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:* W, b  ^* j5 J) Z
    + J+ k9 ~- C4 f2 n

      N: ~* H$ p* b. b3 a2 [YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。) |2 q! Q. a. d, [9 @
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    ' ?3 [- }7 Q0 D7 L) r; M. C首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:0 e! q: k6 [7 [& D' h- E; ~; Y# a
    % w4 C' c+ t. b& L8 I6 W1 J

      q& ~% Q) C% _+ b1 }# Y" o/ ?YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    " K  X/ x: x( n4 v( }& Y推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    5 T; I$ o, a6 Y! v' e7 iYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    % e5 l6 N5 v) p% x6 H' _/ H最终网站前端效果图:' L* b+ N: }* C8 W$ F. A# O

    + e4 M# H3 D# E4 @6 X4 }  p) D; U: u) M8 Q$ }) e* M9 K
    短网址前端效果图后端效果图:
    " E" w- ~6 ]$ E" ?3 p4 s: M' l# }  k" m* ]/ D1 f+ W7 h# B4 Q! R
    , g1 k0 t# S' h$ _
    短网址后端效果图相对原版颜值高了不少。, I5 l* e: {/ C, A  B
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表