扫一扫,微信登陆

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

搜索
查看: 540|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    / S2 v$ O* a3 P9 y/ Q: Y: S0 p经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。) Q4 L; l2 N2 o0 r
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    ) X% E' F1 ]8 f8 G" n, ?% @ 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    3 M/ D$ ~$ r8 M% B6 I" i3 K9 L6 r, Q
    1 B5 p2 a) a: S. H$ L, E% |; A
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:  C. S/ M; _: M$ ?, {
    # Debian/Ubuntu系统安装PHP 7.4
    0 s' y# J0 N+ J) @4 ]apt install -y lsb-release gnupg2- Y0 z, {# p& c$ x2 R
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    # W" h4 K7 T6 z$ |1 jecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    & }4 _) M% H+ \) h# rapt update
    3 o4 x4 m" a  wapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \" Q/ s* X) x: p* ^9 u
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    4 `( x% i% J. Z0 `update-alternatives --set php /usr/bin/php7.4
    8 Q; x. U! ]) W+ Z- _, f  H# 启动PHP-FPM
    0 u* P6 d- h% v0 Isystemctl start php7.4-fpm
    " u: T2 J5 J: x2 B) @7 C4 K接着安装Mysql(MariaDB):! P. ?+ a* o. @; z( J2 o( [# Z. O
    # Debian/Ubuntu安装Mariadb
    ; C, B2 V% y# f+ C  \. R, D% @! |apt install -y mariadb-server
    9 ]6 z* ~& G" ~" z7 U#CentOS安装Mariadb# x, U/ |3 z. @. |: F- u
    yum install -y mariadb-server$ r  Z! x" |3 W  l' ]
    systemctl enable mariadb2 {4 _! a8 w3 C0 A& Q
    #启动Mariadb; `# s' N/ i: l0 R0 f
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:4 _: R8 C' F- E+ _8 N" C
    #CentOS系统安装Nginx+ [3 D+ s3 ]# K
    yum install -y nginx  y3 b; n2 G2 @% d* N- ^( k* W
    systemctl enable nginx
    . j" S$ n$ k5 m) [* B  c* N#Debian/Ubuntu安装Nginx
      O5 w3 _, a* v: z3 Eapt install -y nginx1 r8 E$ s( ^% e0 G
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    - y% x" `1 K( `3 Q9 B) Q 部署YOURLS返回目录部署YOURLS的步骤如下:0 n# A% @; Y5 a+ y$ v
    1. 创建YOURLS的数据库用户名和数据库:
    * G" c# t% @( Y! k/ j3 ?# 进入数据库7 ?( q4 y& L$ k0 Z
    mysql! [- I/ z. |8 l4 n3 e7 j
    # 创建用户名,用户名和密码改成你自己的& ^: x# F) t2 H, m
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    : i) @' m- I3 @# J# g% r) Q# 创建数据库,数据库名字改成你自己的' |, ^1 D- ^4 e$ i5 S
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;. [+ R3 B0 N2 a: I0 h1 b; O  d1 t. ~" e
    # 赋予权限5 t/ h: z. O7 r* u
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';3 r. j+ L5 h' \( v( a: n1 n
    # 刷新权限
    ( n1 T2 G8 R+ {FLUSH PRIVILEGES;2. 下载和安装YOURLS:1 d2 }! A0 P/ c) X
    mkdir -p /var/www8 |2 g; t" e6 s: `
    cd /var/www/) C1 T" D+ _) v; j
    wget https://github.com/YOURLS/YOURLS/archive/master.zip' e4 p, l6 g5 \% W5 ]4 j( n& O
    unzip master.zip
    . ]: t9 T9 [6 C/ j& amv YOURLS-master YOURLS' @0 G$ k+ V& q
    # 修改网站目录权限% j' U5 I! J. x: \
    # Ubuntu/Debian系统8 Q7 F- u6 m3 c6 d
    chown -R www-data:www-data YOURLS$ [1 b4 e; z/ J/ \
    # CentOS
    2 Z- e- H$ R6 `$ ^6 Qchown -R apache:apache YOURLS
    1 D0 N( O4 [  ?9 ?- p0 Pcd YOURLS6 {1 }% L* z, h2 ]
    cp user/config-sample.php user/config.php
    " y9 o6 e/ c8 F+ Y5 p% Gcp sample-public-front-page.txt index.php" Y' c! X4 u  _5 i/ W5 O0 M
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    : a5 B7 j; J" S; v) |define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    2 {" Z# b  R; M% Rdefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    0 B0 H4 _7 {- u6 ^9 Udefine( 'YOURLS_DB_NAME', '填写数据库名字' );; ]6 _+ ?' U* Y, ^! U5 T- o  v) z
    # 这两行基本不用改
    . Y1 ^0 k0 l- _  w8 i) n  }define( 'YOURLS_DB_HOST', 'localhost' );3 X& y3 H/ G1 W9 F# h8 B* ~1 W
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    5 `4 \. f4 D, L! t. X  |# 填写你的域名,不要加www形式& v; R$ i8 ~$ L% D, C. v
    define( 'YOURLS_SITE', 'http://你的域名' );
    ' g- H7 n! x: r) o2 p# 填写时区,国内是85 y* Q* Z: j3 t) Q. g6 j
    define( 'YOURLS_HOURS_OFFSET', 8 );
    5 f4 l5 F+ a; G; @) ]# 设置为中文( e2 M: X. k9 h5 y) Q% K; m
    define( 'YOURLS_LANG', 'zh_CN' );
      Z: B( [! O; v8 E) ?/** Allow multiple short URLs for a same long URL" O/ H. e6 D0 r4 _4 K/ C
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    4 l/ k% {8 V  D7 b, Y/ n0 x ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    % U2 J, Q+ ~- {1 x4 Ddefine( 'YOURLS_UNIQUE_URLS', false );
    ( z1 X# ]& i; O$ u8 O  f# 设置私有权限
    7 h1 U( K- A8 \" b  vdefine( 'YOURLS_PRIVATE', true );5 U" M) X7 p0 t# u' u* E3 r

    # j9 W1 Z3 e8 n3 o# Ndefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    3 U1 d2 @, v2 y4 x/ S1 I$ c# 后台登录用户名和密码,一行设置一个,请务必修改0 t: y/ \3 Y6 }$ M+ w
    $yourls_user_passwords = array(5 `8 n6 r. a' D' N6 N: t7 P3 j
            '用户名1' => '密码1',# Q' |( I% _& O% D2 t/ Y" e
            // 'username2' => 'password2'," q$ N6 |+ u! ?9 v
            // You can have one or more 'login'=>'password' lines
    0 v2 ^& f$ B6 Z5 t        );
    + }/ q+ H' j& E4 L0 o0 |' I9 T# Z/** Debug mode to output some internal information5 `7 `) w- T' e% c3 s4 u) _' w
    ** Default is false for live site. Enable when coding or before submitting a new issue */# I: {* a3 y$ }9 n1 o
    define( 'YOURLS_DEBUG', false );
    # u. [; V7 D3 q- N2 j# 网址中允许大些字母填62,否则填36$ ~7 p' a* [7 `2 W7 |
    define( 'YOURLS_URL_CONVERT', 62 );
    # F: }' m+ ]' O/*. z- z: h# Z4 M
    * 36: generates all lowercase keywords (ie: 13jkm)* s* |$ @- F- j/ U* z# K* l
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm), i3 G2 Q9 D% o9 }$ C
    * Stick to one setting. It's best not to change after you've started creating links.) O" t  ?& d$ r* D' C: x
    */9 C, p5 \! Q: d( u: M; {$ l7 u2 |1 u4 V
    # 保留的关键字,可自己添加) `7 [  x5 J4 J& g! a6 f9 e
    $yourls_reserved_URL = array(
    2 B8 m/ ~/ A) I  Z: ~        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    4 f- y$ i0 B, e8 x2 D);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    1 H5 r4 s: X/ Q% O! o1 _) Z! T4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容. s$ e; A1 H+ V
    server {
    " L) y5 [+ B! B6 h    listen   80;* t& G. L  m3 e1 k  G; w/ I
        server_name 你的域名;5 ~8 T( V3 W% J/ S
        charset utf-8;% C: v( e* m, M8 y/ d
        root "/var/www/YOURLS";
    9 u/ Q0 k% A1 r/ k$ j    location / {+ F: t- S6 c2 p6 Y0 y8 o* }* `
            index  index.php index.html;
    ) [1 i% A& s/ x( @$ z: z+ _        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    . J0 p2 j+ u' h    }% K$ g5 S0 z8 R- m' i/ g
        location ~ ^/\.user\.ini {' W1 f! i' J7 I
                deny all;
    ) ]) R, [2 ~/ `    }
    4 N/ ~0 }8 m" e; f& N    location ~ \.php$ {
    $ h! h/ ^) T9 E" Z8 D  s# ?3 V  {7 k        try_files $uri =404;( n# p0 d- C3 {3 Y# d
            fastcgi_index index.php;
    9 J& }* O, ^- b: B/ {! U        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    7 O8 p' }; X0 n        fastcgi_pass unix:/run/php/php7.4-fpm.sock;1 A: i7 U5 [% U! N4 Z+ H
            include fastcgi_params;
    3 i% E3 z( F9 q' K        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    2 h& b8 Y' I" z8 t    }
    ' g1 D" o+ F# x8 `    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    5 y8 G) w( w6 Y6 D0 e8 _        expires max;
    0 [; _, \7 o. }; S- L        access_log off;; R; j8 x/ h: ?3 [$ @' a8 Z- u
            try_files $uri =404;
    ) S' E5 N3 S& C8 e, J9 M    }
    ) `9 x8 e; K; c}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书. M  h' r3 E* ~5 y# _
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    & L5 S' D) g0 D; R$ b% t4 ^浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    / E" Z$ ?6 D2 z' g
    3 j, S% E" d/ ~1 r6 k' c6 ?4 p7 p  ?
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    6 U( n- T3 h) k' _ 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    % N! i# P" I' n/ z& n% @首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:8 x! `) c$ J, I5 U, e$ e1 E2 V$ O' a
    1 N7 X; Z/ s2 \- @
    6 h; d- r. L* S2 W
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。+ U6 n+ |9 Q! w. s
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    . Q$ N3 U' S* z- E8 x0 sYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。( ^) q4 q6 U8 P9 G1 _6 z4 ~
    最终网站前端效果图:
    / a8 J+ b  o' \1 h2 u( Q
    * u! v6 [8 ?" v* J- @" L3 h1 _" H8 v+ q/ |) I) d+ k9 `! ]
    短网址前端效果图后端效果图:0 V; ?% a  A1 ?

    . B/ L3 X6 S; M3 J7 a% y& ]1 n5 G3 o/ M4 t3 G
    短网址后端效果图相对原版颜值高了不少。& K& |" t; I9 b0 ?. O/ s0 e3 o
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表