扫一扫,微信登陆

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

搜索
查看: 949|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    % F+ E7 G. F( e  i, w7 ^7 |5 n3 q0 [9 }* v6 O& h! l1 @
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:' D$ Y# O- ^" L0 A6 b5 i. p
    # Debian/Ubuntu系统安装PHP 7.4% j' x+ X, A2 h: B4 y) O) e( z7 d
    apt install -y lsb-release gnupg2
    % c5 q7 L/ `2 @) qwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    2 t; g  h* M5 {* qecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list, F% \8 S9 Z6 X& T+ h8 @
    apt update9 q0 P4 q, L" C6 H: @, W
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \" ]9 o- G# y; m: z% }& y
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick- ~# A; K2 M$ C6 ^
    update-alternatives --set php /usr/bin/php7.4! I1 c# Y& Q+ w. b1 l& `
    # 启动PHP-FPM
    . G  I+ `7 i0 s5 R  Osystemctl start php7.4-fpm) @4 ~  i4 J4 J( A0 Q# q
    接着安装Mysql(MariaDB):
    - K1 v" b1 y* `& K% \' C- ^# Debian/Ubuntu安装Mariadb% z. F. Q# b0 b# }
    apt install -y mariadb-server
    3 ?0 r* |  A! T- Y2 ?#CentOS安装Mariadb1 J( d. x1 q7 }1 B- k! Y* ?8 S
    yum install -y mariadb-server
    ' j* Y- K" |7 ?" h, Q8 |systemctl enable mariadb
    7 Q" ~  U) v# \0 k#启动Mariadb& F* ?1 N( I& G; B. D
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:* q, B/ o+ W" \
    #CentOS系统安装Nginx
    " w1 f0 N) w4 B- D# A- @" Kyum install -y nginx; x; e8 e9 Y& K5 s
    systemctl enable nginx3 @0 \2 r" N# O/ J  V/ b
    #Debian/Ubuntu安装Nginx6 g/ a8 d$ h' Q2 n% n( ^0 ~) y
    apt install -y nginx& M- g) g4 h! B3 n* m4 c- O
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。2 r! D3 m' U. P; ^" G6 a
    部署YOURLS返回目录部署YOURLS的步骤如下:
    " w7 K2 L+ b" Y1. 创建YOURLS的数据库用户名和数据库:, I) f+ A+ h8 M5 y, G5 R! H
    # 进入数据库0 {" l' I6 f- ], {; H
    mysql" f) f* l1 Z0 P. r. b
    # 创建用户名,用户名和密码改成你自己的* }5 M0 x8 v. o! q+ X$ ^+ R
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    " J) u9 R* S; M4 c. \# 创建数据库,数据库名字改成你自己的2 C: \+ \8 d1 y& `6 T
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;% |& z; V  Q: q
    # 赋予权限' K5 E& _5 c/ N' q
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    , z+ g& J. L4 H2 `0 Z2 S' Q0 r# L# 刷新权限. f) Z$ J$ ?  P0 o- R
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:! t  Y" S: ]# U6 L' }$ W5 d4 k  G
    mkdir -p /var/www
    + c! `/ k( p8 L1 f' [3 y0 \cd /var/www/! q$ ]: k, O) @! o- x1 P3 ]7 m
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    % V4 M! ]$ B& i6 w& [; Y! aunzip master.zip; K. p% s& U: [+ }
    mv YOURLS-master YOURLS
    5 U" C' E& l- [' ~# c- [# 修改网站目录权限; {& @0 {* l7 m  c
    # Ubuntu/Debian系统& n( o3 }9 {' w+ c/ E
    chown -R www-data:www-data YOURLS+ V  N% _- q- S# T! D2 O; i" Q9 Y7 E: `
    # CentOS
    ; o; g! N' P5 x5 E6 `  U* Echown -R apache:apache YOURLS
    1 P' |# L3 P1 W3 T. }; ]( z2 T' z! `cd YOURLS
    3 e+ \% e. k& H' k, N. Z* icp user/config-sample.php user/config.php
    " e$ w3 ~; c6 X5 T  y$ tcp sample-public-front-page.txt index.php
    4 G+ ]" s3 _! N7 fcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    ( I+ H0 t0 C5 H6 s- d$ wdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    2 J" D2 y( Z& o: g3 }define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ( |( f+ @3 f% T4 ^" o: o* ?define( 'YOURLS_DB_NAME', '填写数据库名字' );
    ! S6 m8 m2 M+ Z2 o4 R1 p+ z3 `# 这两行基本不用改; \1 N( ]# r$ y
    define( 'YOURLS_DB_HOST', 'localhost' );% P8 v- Y% a' a8 r  X0 R
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    9 q: T/ c5 u# Z# e# 填写你的域名,不要加www形式9 l/ W. ~9 y9 I  x
    define( 'YOURLS_SITE', 'http://你的域名' );
    8 F1 E# l/ \2 a% i8 Y$ m# 填写时区,国内是8+ M$ x2 }1 e0 H; p' s# N
    define( 'YOURLS_HOURS_OFFSET', 8 );* j$ M' l5 U" H( O( [
    # 设置为中文6 O& ]- D$ I% j/ J- R! U
    define( 'YOURLS_LANG', 'zh_CN' );7 k( M7 ~! x  S" r+ m! V! Q& M
    /** Allow multiple short URLs for a same long URL
    3 n3 P! e# F) O. f4 g ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)) g- [, I0 Y# H
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    : T3 Y  Z& m. s5 V3 f# X5 kdefine( 'YOURLS_UNIQUE_URLS', false );
    , T8 W* ^5 `! v0 C. k( N5 m8 k$ r# 设置私有权限
    3 a0 Y+ a$ B# Z0 U- hdefine( 'YOURLS_PRIVATE', true );
      c9 ]/ W! D8 t7 B
    1 o& y8 q! C) K" F1 Sdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );& ]* t; |9 g0 r+ D+ f) w
    # 后台登录用户名和密码,一行设置一个,请务必修改
    / x( j' P- b+ B/ N8 k# M$yourls_user_passwords = array(
    3 _0 z: ?( b4 i" z. J6 Q        '用户名1' => '密码1',: M1 ^/ {$ [1 j& a8 q, v% u8 q
            // 'username2' => 'password2',2 n: d8 r0 X3 l8 _
            // You can have one or more 'login'=>'password' lines0 @0 g% v' J& V
            );4 t# s6 i; M5 F2 M8 n4 S6 Y
    /** Debug mode to output some internal information  B$ ]' a) Y8 V# Y; E, u3 `
    ** Default is false for live site. Enable when coding or before submitting a new issue */) V: W8 E% C" E8 Z- l5 e
    define( 'YOURLS_DEBUG', false );
    ( e# R. P: H, z8 T  Z  Q9 f# 网址中允许大些字母填62,否则填36
    " [& y( J: y! G. ldefine( 'YOURLS_URL_CONVERT', 62 );
    1 N' N9 V3 b4 u7 t/*
    - k2 M" @4 {/ ?6 G$ G * 36: generates all lowercase keywords (ie: 13jkm)3 B# v9 Q: o* w. v4 |
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm); ~( J7 Y, ~& g8 g8 U' j2 x/ ?
    * Stick to one setting. It's best not to change after you've started creating links.) r- h& g3 F( i
    */
    ; A( E1 l. Y/ m$ G# 保留的关键字,可自己添加3 |$ y* G. G* y: ~
    $yourls_reserved_URL = array(
    % y* N: t/ O+ S) ?. _5 z" F        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    : Y2 s; r4 V- m$ E1 n) S8 W1 {);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。4 D3 b4 G1 M1 A5 t
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容  t$ b. l! ?/ O) N1 b7 ]
    server {8 `* K' m; H, s% x
        listen   80;- D% z. \% [& ~( D( {2 `
        server_name 你的域名;* O2 M2 ^' B/ P( }' B" N  I
        charset utf-8;
    5 H7 i/ U+ w/ w! j$ c9 X% Z    root "/var/www/YOURLS";% `8 j6 q/ {/ w
        location / {$ \! X7 m2 W" u  u% V8 ^% @
            index  index.php index.html;
    6 {9 ~* I- o! ]9 x, [& ~( e6 n6 \        try_files $uri $uri/ /yourls-loader.php$is_args$args;0 r$ [( d: i' w5 U% K! L3 o
        }
    : f9 n8 @9 G  z, k! V) e    location ~ ^/\.user\.ini {
    ' j, J% F  g0 z- o/ T            deny all;
    + X4 r& O. J8 j( x    }+ O8 X5 C# R6 y& l
        location ~ \.php$ {
    # c& o- m5 I9 {! `, f3 v' {; B" s$ F        try_files $uri =404;
    + [; m( i) F  m, {$ G+ U8 l; U8 \* L        fastcgi_index index.php;
    + B  p& P9 O6 P0 ~8 f' L3 A) t+ q: `        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;" k9 F3 X$ N$ x8 [1 E( Z
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    5 f" q9 o5 @. {0 b: b7 D/ s% r8 g        include fastcgi_params;
    7 u3 n; Y' M; j' ]$ E/ y        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;% K! F* H  r+ K& q2 Y
        }0 U4 n+ X1 y" W. L
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {) J/ I* w* @+ M2 ~- i1 {7 N# \3 X2 ]" ?1 N
            expires max;% z* k7 F. U+ t; w
            access_log off;% V. Z) }- u( D. k& ~, Z
            try_files $uri =404;; k1 A3 h/ d0 k. u* A% x$ }( E9 S
        }6 s7 P) U5 ^# \, X  s% P' X
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    9 s9 v8 `. n: W4 v- ~
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。$ R  G  ~; Q4 y% Y3 T/ K
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    6 l# |! j6 Y/ H6 @5 d4 k- ^4 s) Y
    1 c  d$ Z. a+ G0 ?5 Y* m. K2 f
    # J5 ]/ J7 I$ @$ ^0 M$ N3 o: k9 _YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    ! E' a1 {. N3 S. S- Q2 M& | 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    3 S2 g( Z- _3 Z. e; E! U& n$ Y# A首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    , Y2 |" s# n% B: m( c9 ?! G0 {1 v( X' q9 `: _/ t2 a' M9 I1 d! W! a

    5 D, y. N1 S, U( D; b! aYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。! _0 `/ L/ \) v' Y
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。; G7 D! a  a: F1 \$ a" [! U" U
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    7 P" D6 T) v4 R- Z2 W最终网站前端效果图:# G, I" J1 D" k

      S; ^' q) ~6 i/ H5 p
      v% }' o% A. a) `9 j9 e短网址前端效果图后端效果图:
    7 b) |) D* z- h
    # n) G/ c  ~& R1 Q" p4 p
    ' r! A1 l2 G+ M0 |1 ?2 _短网址后端效果图相对原版颜值高了不少。
      y; o& K3 X3 m; J' n3 x6 L, V 参考返回目录[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号 )
    快速回复 返回顶部 返回列表