扫一扫,微信登陆

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

搜索
查看: 434|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    , C! [  Z, `3 W3 C! p经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。$ e1 k/ ?0 _. t
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    $ ~! y8 T. E- ^. v; a4 x 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    / G2 Y5 W& L3 w* \
    ' y  ~- a1 p2 f+ C0 g5 [
    - |3 }, E: o2 N' ~域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    ; s+ {- O: n. W9 H% O4 X& {; ^# Debian/Ubuntu系统安装PHP 7.41 o0 c( r5 ^: o% _  r8 m7 L. g
    apt install -y lsb-release gnupg2
    - {% e5 \, @0 o2 S8 L9 lwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -8 S' ?$ O, s6 }. j7 K! G
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list' S1 Q5 v( E0 a* K3 c
    apt update
    % @1 \* `  `% f& l! o8 E- \apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    1 r/ N. n, l4 W0 {5 n php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick9 T" z3 I2 \9 \6 Y: p. g
    update-alternatives --set php /usr/bin/php7.45 |; ?' ^/ A% y/ E
    # 启动PHP-FPM
    9 N; ~5 L9 P9 _( \8 hsystemctl start php7.4-fpm
    5 L! g8 g1 o8 ^1 E: }+ B接着安装Mysql(MariaDB):
    3 Z) I3 Y! o+ M# P: u  `# Debian/Ubuntu安装Mariadb5 c  N0 g& H# h
    apt install -y mariadb-server+ L# ?5 w( T. b3 ?3 k9 Y
    #CentOS安装Mariadb' p9 |) b5 {, `  ~8 |
    yum install -y mariadb-server  r- R% L2 A* v
    systemctl enable mariadb& H* g2 S9 \  O3 q9 v
    #启动Mariadb- v2 h% [! C. O1 H
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    9 X& j: \8 C$ F2 a" F#CentOS系统安装Nginx! ~: l5 Y: ^8 O% @! V2 `3 r
    yum install -y nginx
    % r8 Y# c) l: j, c9 Bsystemctl enable nginx4 @% k% @- z7 V8 v
    #Debian/Ubuntu安装Nginx1 N9 _* [0 }, b
    apt install -y nginx, `% @' G+ V: f1 K* f
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。9 \  N6 N$ e6 O7 p0 W$ u
    部署YOURLS返回目录部署YOURLS的步骤如下:
    ; T/ j+ P! f9 s1. 创建YOURLS的数据库用户名和数据库:9 O: m) ]/ d7 ~
    # 进入数据库& I& G; w* T* V
    mysql* u& z& j; ~' W
    # 创建用户名,用户名和密码改成你自己的
    5 }$ J1 w; U# n" P4 Y: dCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    , l% I: q. p& ]/ q) I# f- Q  f# 创建数据库,数据库名字改成你自己的
    1 X4 @3 u, b7 e3 w1 m5 L( s; [  dCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;, m( L6 @9 V* A0 x1 m
    # 赋予权限; ^" z6 @& E% F: `3 ~! H0 K
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    . f* j" F# }2 f( d% }: e0 }6 R! Z; V# 刷新权限9 S+ w6 W# ?1 |, L5 s) u" Z9 k
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
    ' v9 H1 Z+ [( o5 [7 P( {  P& Omkdir -p /var/www
    . J8 o  i' z8 q, Ecd /var/www/
    : B0 `- S& R( g+ P% W9 mwget https://github.com/YOURLS/YOURLS/archive/master.zip6 P9 \' c* @5 t
    unzip master.zip
    $ z( }2 W$ f  ^7 k3 g+ ]mv YOURLS-master YOURLS- M8 f6 i2 U1 y. ]4 j( G) `
    # 修改网站目录权限
    7 Q' L2 t2 i$ Z2 l( Y7 F& X# Ubuntu/Debian系统
    7 G2 R' P& q& J; |1 x8 Nchown -R www-data:www-data YOURLS
    * @5 A0 z/ C0 \9 w0 U" a2 b1 u# CentOS
    3 V0 G9 t* q) }5 ^/ G3 k+ w5 Z! z8 Hchown -R apache:apache YOURLS
    2 E) |: `( T2 H* F3 H) v4 Bcd YOURLS
    - o. i0 q, P/ b) F! Fcp user/config-sample.php user/config.php
    , ]) E/ c: w. V+ ^cp sample-public-front-page.txt index.php/ _. z$ x. N3 ~$ ?
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    0 F* g; j( B" ^1 c; n* g3 zdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );. p* `! `2 c% `! \7 y  o: J0 K
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    , \' C. F4 y& }- d, Idefine( 'YOURLS_DB_NAME', '填写数据库名字' );/ r+ K0 R' b! f  L$ \: A
    # 这两行基本不用改
    # {4 }3 T* }, D2 J  i" `/ Zdefine( 'YOURLS_DB_HOST', 'localhost' );
      {9 r. N" j  R1 r- rdefine( 'YOURLS_DB_PREFIX', 'yourls_' );1 z4 A& t  ~7 L1 P% i$ k% m
    # 填写你的域名,不要加www形式
    # U6 z! {% {0 g) Bdefine( 'YOURLS_SITE', 'http://你的域名' );
    " k$ Y- o+ r. J! r' q# 填写时区,国内是8  ^* V. m3 e7 O; X( ~2 ~
    define( 'YOURLS_HOURS_OFFSET', 8 );
    8 ~% _% ]' @5 z; W4 p3 Y; X# 设置为中文
    9 @, p8 h( ?5 q; Q) B  a3 e9 wdefine( 'YOURLS_LANG', 'zh_CN' );
    + y: x( f# }* u& d4 G. e/** Allow multiple short URLs for a same long URL
    ; q8 @) G( [4 ^- k) H: P ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    1 l9 F6 r7 x0 o# F  X/ s ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */- W' \. Z0 H% T  J4 C
    define( 'YOURLS_UNIQUE_URLS', false );# S5 ~* E; M: o3 I% a, O
    # 设置私有权限7 f/ m$ O. e$ R
    define( 'YOURLS_PRIVATE', true );
    - V; a, q: s6 C. S  Y. c7 ]0 W2 Y
    ( p# O9 ~7 V1 K+ S# V2 [define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );; \/ k+ [0 t0 C1 ]
    # 后台登录用户名和密码,一行设置一个,请务必修改1 x! o9 P3 I7 C) g' j" L& V
    $yourls_user_passwords = array(4 o7 Q/ Y8 w* ~" z5 r
            '用户名1' => '密码1',
    : O: l* v1 f) J, X* f  B+ x        // 'username2' => 'password2',
    8 {; ~) ^7 i+ \: q2 O        // You can have one or more 'login'=>'password' lines
    , R4 ^; M( K& `1 C. l/ c$ f        );" i" ^' e' c0 c7 F% t
    /** Debug mode to output some internal information& U9 S: k8 u. C0 K6 @
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    " }3 n$ F" S7 Y- ~2 ]1 S' ], \3 ^define( 'YOURLS_DEBUG', false );
    + D& x* a: ]4 P2 b2 B# 网址中允许大些字母填62,否则填36$ j* w& S  {: p( j* \+ K
    define( 'YOURLS_URL_CONVERT', 62 );
    7 ~" J# J" p& C; J9 |: a4 N) V/*
    ) c  L) N. g& S2 q * 36: generates all lowercase keywords (ie: 13jkm). C! W! o- ^( u) R1 N
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    ) N! o3 f8 Y: D * Stick to one setting. It's best not to change after you've started creating links.
    + r, C8 w$ \% ]. f; G4 a0 }9 c */
    * U- V- }1 K: C- u, u. `! g) ~# 保留的关键字,可自己添加: e- E. S7 L. H% M; W& E' n
    $yourls_reserved_URL = array(- o! L; [9 X9 ^4 \0 V2 F( w) Z# U
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    & f$ u' L; R$ m0 P);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    2 H! v" {  E  ^* v7 b# K4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    4 P+ I. ]' ~' b0 V( Qserver {" d7 a5 X: e8 c% ], p7 n8 J
        listen   80;
    / \& N) z7 J5 W6 w( B8 B    server_name 你的域名;- l' w: b6 g6 w$ t
        charset utf-8;
    5 b* ?& ^6 c& K1 p; S    root "/var/www/YOURLS";* ]1 x. d- ^; o9 e8 Q7 `: P
        location / {
    9 K$ o8 a/ M* L: R8 f! l9 J' n0 o        index  index.php index.html;
    1 u% N) V# t+ f+ u        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    - x7 Z& _  y+ I1 R0 s    }
    / \& s' @9 @4 a: w1 c9 O. t    location ~ ^/\.user\.ini {
    4 w) i; L2 Z  Y            deny all;: ^! K0 Q3 x$ P* `, [& ~! b
        }- ]7 K0 E2 g3 u4 N1 I
        location ~ \.php$ {$ [* J5 `& r! \6 I" Q5 h5 r
            try_files $uri =404;5 l0 y2 M& g) z
            fastcgi_index index.php;  Z# Z! R: v/ e* l
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    7 q* L- f& k6 n$ V" n! ?        fastcgi_pass unix:/run/php/php7.4-fpm.sock;; {- e+ Q# N6 A) u4 Y
            include fastcgi_params;4 x* b( x- W; {% `) H: o
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      e) V3 S  h. }& a8 ^. D7 G) H    }5 {+ e# e! `6 [  T9 E7 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)$ {; K  P+ [8 j+ \/ K1 b9 J- N5 D
            expires max;' w3 c2 n7 v' ]- r
            access_log off;$ p1 ~& `, s! P8 ]( g$ Z' G; [
            try_files $uri =404;
    0 I7 Z5 b% H# A; Z, p' Y+ {) ~    }
      X7 ~0 q* h! O; O}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书: `0 l+ _+ b- P4 E+ ~
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。/ z0 V4 W) t& V2 K4 h
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    7 Y! K- N8 S8 P4 b$ c
    ) ^% j# Y8 T' b: n# Q* t6 H! |% f2 f% A+ F3 ?
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    " q, H- a! D& a% i 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    % b( M7 o3 }9 {2 s首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:( y. q4 P+ o+ }8 R' ~
    $ Y, k/ ?( E, S* g( z, R! ?
    ( `) v0 f, G" V0 \# ~$ K4 c
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。# v7 i& f& A- ^, F, t9 M
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。3 {. c: x- ]7 n
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    ' |. {7 U8 X/ \0 d最终网站前端效果图:+ d! e; C, D2 T1 k# z

    ; [1 [. r- c. \1 A' d- t  c& W1 R% Q3 v! V. E5 y
    短网址前端效果图后端效果图:5 i6 l9 {9 i6 `4 M$ h! K' {9 X8 P

    ; \8 M- g9 f$ i) V- N* `$ N" Y4 u! z% w! C
    短网址后端效果图相对原版颜值高了不少。
    9 {9 U" |/ U  N 参考返回目录[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号 )
    快速回复 返回顶部 返回列表