扫一扫,微信登陆

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

搜索
查看: 272|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    2 ^# F( v8 }; y$ r6 u/ A经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。7 Z  K7 z+ P. c/ X' f
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。4 w# \# ^* K4 q+ q1 X9 h1 Q( u% F
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    - x% s% Z/ \7 @: X
    * {& _4 e2 R$ {( g
    8 t. E) _& j1 Y8 c8 {  Q域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    * n. v. q8 X" j  ?# Debian/Ubuntu系统安装PHP 7.46 j5 ^- Q& J+ n% r1 d4 J  x- o
    apt install -y lsb-release gnupg2/ ?* N5 U& {  v% k, |: `$ l& r
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    9 ?4 {  e) O: X6 n6 S( X) x+ Z7 Gecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list/ Y7 W8 @4 }3 S0 _9 B
    apt update4 e1 P# E% N6 ]; i  F# X. _! V
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \+ K& R/ |* @. d
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick( g! @# `" l' z; m
    update-alternatives --set php /usr/bin/php7.4* ?' O  D! |. a! X+ u4 k5 F1 m
    # 启动PHP-FPM1 @+ p8 V! i3 V7 U* j1 i* _
    systemctl start php7.4-fpm3 u% X1 J$ h  ]+ Q8 S. |# }
    接着安装Mysql(MariaDB):
    " w: A1 N7 x/ v$ W: k. k$ S+ M) h# Debian/Ubuntu安装Mariadb
    3 }* @3 k5 E1 G5 {/ Papt install -y mariadb-server
    ' a3 k* H! {% u) Y#CentOS安装Mariadb
    ; R+ k4 w4 c7 u6 ~! ?) gyum install -y mariadb-server5 \3 v- t0 \# V7 N! x
    systemctl enable mariadb
    4 n, U- _0 ]0 j#启动Mariadb# s8 K' H  B- [) O
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:+ r4 C) y" x; W0 s" B: M# K' p
    #CentOS系统安装Nginx2 }- X) K2 Y# H
    yum install -y nginx
    ; B9 q/ T1 M/ f- `! @& [7 W7 V2 |systemctl enable nginx
    4 D4 R: g7 s5 y" s& \+ C  h+ G#Debian/Ubuntu安装Nginx/ |( q7 C- k6 f2 I+ i3 y8 U, ?
    apt install -y nginx) I2 Q  v% ~4 r0 O
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    & j+ c* F5 t* l: s 部署YOURLS返回目录部署YOURLS的步骤如下:  F0 k* B" ^3 b7 a8 f( o2 |
    1. 创建YOURLS的数据库用户名和数据库:% g: q8 G! A5 E0 `' \6 j+ r
    # 进入数据库
    & D6 }/ l- [; U) }2 V8 p# @9 J4 gmysql
    9 l( t3 f7 F4 \5 }, y# 创建用户名,用户名和密码改成你自己的
    ) Y; J& y9 |8 D: A* W  QCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    / v* `( L3 J* ^4 Y4 m7 _( {( ^# 创建数据库,数据库名字改成你自己的
    9 [/ X! |$ n! X  w8 cCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    5 p$ k4 Z& e6 w" S# 赋予权限
    4 w8 W; {- N$ ~6 d! ?3 C' r6 c. lGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';- h) y- @( l8 u$ H7 C9 C8 N
    # 刷新权限+ j% ]' @9 b8 e9 @* R% ^% ~( b& E
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
    4 d' v0 l) `' V! Hmkdir -p /var/www9 Z8 Q; }' T, V7 [6 m8 }
    cd /var/www/
    ' O; p. x- v& ?0 l7 ?+ N0 Bwget https://github.com/YOURLS/YOURLS/archive/master.zip
    1 M# N' C: l# q" U% `: v$ \/ d6 u6 bunzip master.zip$ m8 q- r' F# ~$ r4 J: r1 l; D2 e
    mv YOURLS-master YOURLS, y' F/ {$ M# g2 X4 J/ f
    # 修改网站目录权限; B3 i0 v  Z* {9 A6 b7 M9 m- j: R3 B
    # Ubuntu/Debian系统
    9 z7 p9 |2 O1 Achown -R www-data:www-data YOURLS
    $ `5 |- ?) G' u4 g# CentOS( s/ O+ P8 `+ o4 V. L% v
    chown -R apache:apache YOURLS
    7 f4 m; H% C% C$ w" L+ {1 @6 tcd YOURLS* r/ Z! P0 `! e+ O0 o- ?1 H$ W) g
    cp user/config-sample.php user/config.php5 B" Q" J+ [5 _
    cp sample-public-front-page.txt index.php
    # O* A/ P9 K- ^7 S& {, O& `4 Ucp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:1 @0 z3 t" p" u5 N+ P2 H
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );( r; S& l& o8 P8 R5 t  `
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ( r( T0 o0 y2 g: K9 |define( 'YOURLS_DB_NAME', '填写数据库名字' );
    & m9 Z3 |: B- }9 M* c, Y& Q# 这两行基本不用改$ d- B  @2 e$ L/ i& C' I
    define( 'YOURLS_DB_HOST', 'localhost' );
    7 x# k3 O2 f& ]' o0 @' ydefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    8 l; k. ^3 L2 F2 O" T0 \; y# 填写你的域名,不要加www形式
    3 f5 X" _# H8 z% @2 |2 Y0 Gdefine( 'YOURLS_SITE', 'http://你的域名' );
    ( g* a' U" _) t0 B0 g5 v# 填写时区,国内是88 ]; P3 w6 E$ M/ Y  O) l
    define( 'YOURLS_HOURS_OFFSET', 8 );
    ' B4 O7 ]1 H( H/ D# 设置为中文4 J9 M; f- M  J* z- W0 F9 J- D
    define( 'YOURLS_LANG', 'zh_CN' );+ L$ b, A+ @0 T# K7 V' b' W
    /** Allow multiple short URLs for a same long URL/ k$ f7 A. w  X. V, e0 Y) t( y
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    3 p: F; g! Q( D$ W5 p ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    ! o1 [6 q+ ]" q% adefine( 'YOURLS_UNIQUE_URLS', false );
    & |& Y6 m0 @, @% m+ ~' x# 设置私有权限
    - r# L/ p1 ~4 vdefine( 'YOURLS_PRIVATE', true );: i. @! |3 g7 M

    & @$ _' @) X% p* Tdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );* D. ]" C* H; C+ O+ i" S) o- `& \2 m
    # 后台登录用户名和密码,一行设置一个,请务必修改8 _& t+ j% \, d, h. Y; w& l+ `+ A
    $yourls_user_passwords = array(
      `  y- C( k0 s3 j; C        '用户名1' => '密码1',  z3 F# F8 j4 _! R0 U
            // 'username2' => 'password2',
    & P: q" E; d& J4 v1 O& O        // You can have one or more 'login'=>'password' lines$ O0 |! N2 [' }) ~' P0 Y
            );) Y  Q2 b3 r, b! y" K% n! s" E
    /** Debug mode to output some internal information
    # n0 a6 n9 H# g9 S1 `, r2 Z ** Default is false for live site. Enable when coding or before submitting a new issue */
    1 q% C9 j6 P% G3 o# N: Z+ K! sdefine( 'YOURLS_DEBUG', false );
      b* w+ `- P$ ~# Q# 网址中允许大些字母填62,否则填36  @8 C& C1 b  O
    define( 'YOURLS_URL_CONVERT', 62 );, R5 C! K. t: [' W2 ]5 Q  v8 h
    /*, O2 d! P8 [6 ?0 \# p
    * 36: generates all lowercase keywords (ie: 13jkm)
    + u: E8 h8 m& W1 m2 T * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    , x7 ]0 t3 `. {1 g * Stick to one setting. It's best not to change after you've started creating links.
    8 ]! Y3 W& H- C& ?+ T */; d8 j' X  e- M
    # 保留的关键字,可自己添加' c% l5 K$ @; l. |
    $yourls_reserved_URL = array(- s+ k  Q5 ~) N
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',; \) O3 y/ o2 a" {* t2 L9 G2 G% m" H; g
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。# a' {" K( I- F2 u( t. ^
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    $ ^- s- [6 `0 Cserver {5 \* n1 F) Y$ H# m5 ]  m/ z
        listen   80;! Y/ h2 \( s4 w  U
        server_name 你的域名;; Z5 I* f! ^, P3 i8 v
        charset utf-8;
    # V& M) Z7 J1 y2 K    root "/var/www/YOURLS";6 N; J# H1 K" P6 E8 f
        location / {7 _% Y  w: u+ U: \/ i
            index  index.php index.html;- T  V  \& R* N( K$ S1 P
            try_files $uri $uri/ /yourls-loader.php$is_args$args;9 X: R7 q% M& }4 R8 {$ U; H
        }
    2 `2 X" y: E. f0 u) g+ S    location ~ ^/\.user\.ini {
    ' |. W& s! R# w0 R' g            deny all;) w0 i5 l9 \* Y1 P( U
        }) [# X+ |- t3 L# m* u, D
        location ~ \.php$ {. p* r' J$ |9 ?8 d0 k0 q. t
            try_files $uri =404;% {5 p2 \$ X* F% ~; f/ w! H
            fastcgi_index index.php;
    % _" J$ O3 l! P        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;2 D$ C* B% a9 m3 B5 Z2 ^# Z- F
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    ; |$ [: {3 }4 u2 i8 q; y( a. I) o        include fastcgi_params;
    . U/ X# G/ N1 }) s0 a" G* O6 {        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  M+ m" p6 D! M' H: B* A5 U  t( u  q
        }" T* f" m! n# d# i5 P
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    9 J* d! J2 t+ N- p* t        expires max;
    : n1 E" [# q" y" k6 J1 ?        access_log off;
    1 N( p! ?# e8 x+ U- J$ Y        try_files $uri =404;: X. O' K2 N+ ^- l5 D
        }4 G9 F5 I) u0 m; B) g
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    - E/ h: U% Q8 U1 B" i0 `
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。2 Q# j' @! k. }7 Q$ o
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    " K& R/ E8 ~/ M9 R6 W
    ' F( h2 K. K7 B1 M. B- o5 o: u1 v) j* D8 d" m2 q* U( \$ k- @/ L
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    ! ]) D& `1 h9 _! ?" \ 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。7 @  y, P  O& V* _" M3 N& R
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:. }' H7 c, k, B9 N1 C7 Y$ v
    $ n: e$ m; k( u. _( |1 h; ?2 Z

    ( `$ M, T2 H+ S; C$ ]YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。# x9 i/ r' }  {) `
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。# j) x( t' c* J
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    . V1 ^! [1 i( z% X6 n最终网站前端效果图:
    & F9 c; y7 X% T4 Y% d- [$ w0 u$ V  Q( i4 _2 a+ \  H# d

    , ~! q5 i! ?6 w% F7 _/ I, N( H. A短网址前端效果图后端效果图:
    % c/ p5 p  X+ F8 U1 O9 r: i& s8 m& n' B' U/ T2 D

    5 Y- G5 z0 n; r+ p4 `短网址后端效果图相对原版颜值高了不少。
    ) F* N/ L/ |4 \, S! ]0 h5 A! s 参考返回目录[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号 )
    快速回复 返回顶部 返回列表