扫一扫,微信登陆

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

搜索
查看: 851|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。% D/ j! Q2 s% E/ q8 `- E
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。( n* c* A. G0 ?$ N
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。" c9 b' X/ w( }* m
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    , l3 R8 z. E+ n1 }
    - v; Q: f* Z  J8 Q3 C0 L, f5 Q
    ; @6 H; t7 u0 j; g' E( R/ {) b域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    ) H! x4 I$ b' I3 o( _# Debian/Ubuntu系统安装PHP 7.4
    4 W9 ]* R: n: F+ n4 G# Gapt install -y lsb-release gnupg2/ t* J, u# o2 D
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
      F; B$ B, M* _" L- cecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    + F+ G1 E  s4 V) V* fapt update
    : S! a; ?3 t! M& D8 Fapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \& k- l  R  ]6 j8 ^
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    + _; @# v1 R$ m) q7 e; d, Mupdate-alternatives --set php /usr/bin/php7.4$ R2 N! a4 q7 `* X/ A" B' n
    # 启动PHP-FPM
    - k9 R5 _& q7 Q+ ?systemctl start php7.4-fpm+ T% K$ I* _& h2 r9 t
    接着安装Mysql(MariaDB):6 P+ s; j" ^  s% L% G9 Q
    # Debian/Ubuntu安装Mariadb/ Z( J& d: i  D" t7 a7 S5 Z( U( d
    apt install -y mariadb-server
    % A3 k2 c7 {) ]3 u#CentOS安装Mariadb# u3 ~' f7 v. T" [2 T; r: _
    yum install -y mariadb-server4 d& ?/ c' K/ C5 J' |) n
    systemctl enable mariadb
    + {, o' y  S$ a) a#启动Mariadb0 x. s3 y# f  ^6 I% U
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    . Q( r4 `1 _( h+ |  J6 G#CentOS系统安装Nginx7 v$ n. M5 k# z  c) a
    yum install -y nginx
    ; T# f# [( V2 F1 O* ]: X1 Xsystemctl enable nginx
    % c$ K! U5 \5 A: l; h7 y) Y  e9 e#Debian/Ubuntu安装Nginx
    ) w- v' \, H5 d# T# V2 v$ d8 Japt install -y nginx
    1 d7 R8 ?) x4 u+ Z安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    , \5 W* `; [8 g% r5 Z 部署YOURLS返回目录部署YOURLS的步骤如下:
    3 f4 _% n7 e, h1 V3 Z8 J1. 创建YOURLS的数据库用户名和数据库:
    . a' ?+ S0 z0 s* d, e# 进入数据库
    : e) z8 o! e& Q# _5 r5 umysql/ f# ]' Z7 e; N5 G* v7 }5 [. |! R
    # 创建用户名,用户名和密码改成你自己的( N; W1 r: [+ m* m( I0 e
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    4 _2 y8 m& F! c/ V& m# 创建数据库,数据库名字改成你自己的
    ! K) V6 u: w% H1 OCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;0 {4 v7 w0 G! o' U4 D# O9 v
    # 赋予权限; ^8 E2 X7 Y; f# X, O( T
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    9 Z/ l6 O! T# Z* c# 刷新权限0 `% O! ?% W1 ^8 X
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:3 {6 z" y# L: m# z" Z6 Q
    mkdir -p /var/www
    8 U- a! b& k% l8 ucd /var/www/
    : l6 L# V4 m% O! Q. ^wget https://github.com/YOURLS/YOURLS/archive/master.zip; r6 k4 h1 O/ r9 G- M8 J" U
    unzip master.zip& U, ~( a3 ?2 s1 \
    mv YOURLS-master YOURLS
    4 H$ \+ A/ D( y: \! L" b6 r* r# 修改网站目录权限
    8 |8 |1 H( L' k  K/ o9 S# Ubuntu/Debian系统! U; ^5 ]" @" p( P
    chown -R www-data:www-data YOURLS
    0 Y* o( S& T% l0 b# CentOS
    " p: m/ B( ^" K9 p! kchown -R apache:apache YOURLS
    6 \) E% C8 e& `* ~) k* l; c* N* mcd YOURLS! H9 Y/ u) P  q7 G7 ?. J5 q' [
    cp user/config-sample.php user/config.php+ Q8 j  \' A8 m; j6 k' O
    cp sample-public-front-page.txt index.php0 k! `- g4 q. k$ ^2 A/ a
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    9 ^- W) R, ~1 h+ d' a4 y4 j9 z' |define( 'YOURLS_DB_USER', '填写你的数据库用户名' );( {( c0 ?) |8 _* J$ ?/ J1 l  ]3 A6 N: C
    define( 'YOURLS_DB_PASS', '填写数据库密码' );! y# T" r0 `$ _& m9 q
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    4 c4 W# l5 o0 U* R% r! e) y! X+ {% u& G# 这两行基本不用改
    * B$ w* @. x1 v: K; Fdefine( 'YOURLS_DB_HOST', 'localhost' );
    6 m+ j! Y5 A/ S+ u5 |' V; s% `. d1 Wdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    & U6 B! U# i0 P: a+ b! x$ e: F: O# 填写你的域名,不要加www形式. l3 ]( P/ q2 Q0 W+ u. Y' H2 |
    define( 'YOURLS_SITE', 'http://你的域名' );
    / {  c; I9 [5 @4 N/ W0 L' \& |# 填写时区,国内是8
      W5 P; b; |+ k) gdefine( 'YOURLS_HOURS_OFFSET', 8 );
    ( N  n4 X, ]% z' B/ L# 设置为中文
    7 i0 |  W1 ]4 L! jdefine( 'YOURLS_LANG', 'zh_CN' );
    2 x! ^" i( j  o& Z  [8 H/** Allow multiple short URLs for a same long URL
    4 n  L' W& K( m( k2 z; H/ ?; J. [ ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)/ k( f, b5 v( X) E7 W
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    6 d% B6 h. T9 c4 y' Q4 `/ gdefine( 'YOURLS_UNIQUE_URLS', false );2 }  i+ u% W6 ?; u% Z$ o
    # 设置私有权限& _& O- v; B) m5 R+ z
    define( 'YOURLS_PRIVATE', true );
    : @3 Q2 |' r3 ^& t' O! b; U; G5 w
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
      i- r& f: z7 c- m( |4 V% D' Y4 k# 后台登录用户名和密码,一行设置一个,请务必修改. r0 B9 q0 D+ c  O) w# }' A& D4 m
    $yourls_user_passwords = array(7 ~* E  b5 @) \& B, @2 X9 V
            '用户名1' => '密码1',& j( `: p9 ?- `3 v! x  o
            // 'username2' => 'password2',
    ' I7 p- x3 N% q1 Y" p& {        // You can have one or more 'login'=>'password' lines3 [& i$ N3 W9 Q
            );
    0 O# h0 f8 @2 J' J6 c1 a) a( L/** Debug mode to output some internal information
    ; @7 x0 \  b  G3 {1 O ** Default is false for live site. Enable when coding or before submitting a new issue */
    ( D" O! ^  k3 _' |5 R# P7 A  `define( 'YOURLS_DEBUG', false );
    1 Y9 b4 O8 k, p0 ]# 网址中允许大些字母填62,否则填366 U; o& @: h& k! t
    define( 'YOURLS_URL_CONVERT', 62 );
    & t% }2 z' G* {1 W8 e# z7 d/*
    1 z2 B5 ^5 }( R, b8 ?+ X1 I * 36: generates all lowercase keywords (ie: 13jkm)9 \: R$ [( r6 X
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)* j7 R2 D* {9 s! s( o) m
    * Stick to one setting. It's best not to change after you've started creating links.2 n5 s$ a2 R, e
    */
    # K4 U8 G8 z" [3 h! H& A7 x# 保留的关键字,可自己添加
    / h) M9 W6 k) |1 K% e$yourls_reserved_URL = array(
    # m: ]2 j# W& {8 }! S; |        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',! _" T# m: I# p6 v5 N
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。# c/ m; y* f' E* X0 ?0 v
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容) }* W9 K) w3 s! I. Y' a8 ^7 C
    server {
    $ `# w" g6 o- `. p0 e" {    listen   80;
    9 U9 \* e" o+ C& n; d9 O    server_name 你的域名;
    3 `( H. i2 o2 v& c& {/ d    charset utf-8;- @: X* c0 L- F
        root "/var/www/YOURLS";1 _) D2 `8 B+ B
        location / {
    + p' a( g$ P7 C6 W) c3 s        index  index.php index.html;
    / g# T! i7 s8 q( Q        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    , l: U' W4 ^( B! }6 E    }
      I$ f; @* z9 J, D, u1 l    location ~ ^/\.user\.ini {
    , b7 c5 v! L2 v# H: b            deny all;
    5 s) e8 w; |9 v* H% ]    }
    ) }. o) d; Z9 Z* y$ M+ Z    location ~ \.php$ {+ H- S6 E$ U: E2 M7 g8 i
            try_files $uri =404;* h2 l' N9 r4 [
            fastcgi_index index.php;
    5 d5 x! e2 D+ m        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;1 I' I8 ~& G! R& f3 C
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    & ^" F' c5 X, m" ]7 r        include fastcgi_params;
      u) ]1 }2 E3 ?        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      ]; U, v: W1 O1 R1 [, z% f    }# W: I8 d2 y( l' K
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {8 `6 ^. A" L3 K! T1 K( }
            expires max;
    8 B- U2 m$ P) F& U* h" M        access_log off;
    3 A% G: @; q( j; i  v4 Y* Z# |+ N; }        try_files $uri =404;- S( e2 I1 z6 j, K1 A/ K
        }
    & b+ P/ K/ `+ C# c1 @' k. A! ^& z}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    ! B' d; ~2 S( `/ B
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。& @/ s# \3 c* r2 u
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:$ H2 h, F0 C( z. s2 E: O

    6 f2 I& ]% [4 ?" E% B( [* p& W, n5 f# w8 A& V1 I
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    7 z  m3 v0 x8 U6 m. g 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。- p/ Y1 {/ Q) q# z
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:- Y6 z. }* E8 r8 Q2 L% U. U( T4 {, i

    , B0 }1 r; c7 r1 o" o
    8 a2 \! N/ I+ V# K7 _6 o$ ZYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    / C% ]" \" E  d推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。" |1 R  b1 c& C7 l
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。) P2 L0 c5 _/ }7 ^; `' V& _# P
    最终网站前端效果图:
    / ~5 |9 Y. J( i5 K3 ?& }# Z( y) _/ i0 e& T! Z8 T- b
    0 e3 b" z% P; Z' l" s
    短网址前端效果图后端效果图:) W' o/ l; ~5 w2 o

    5 H7 M) }) _$ x% s" O- o" T* {
    & g2 f3 U9 U6 V$ C' r/ x短网址后端效果图相对原版颜值高了不少。% I/ E% B- _" B7 z* T
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表