扫一扫,微信登陆

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

搜索
查看: 938|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    0 Y# E7 E* p8 c* U经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    ' K4 Z" B6 P0 m2 z本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    5 U/ M2 ~# C% I( |  Z1 N 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。. d4 u5 N& R+ k" G: f
    1 l1 N. u8 C, p3 F

    8 F2 [1 u7 Z, e) X4 H, i1 ~, C域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:4 V! J' k% W: t: U
    # Debian/Ubuntu系统安装PHP 7.4+ f! k+ f' v" V% X% P0 H, J
    apt install -y lsb-release gnupg23 [/ X5 r$ d+ v1 l3 i5 d
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    ( Z1 D! M  M% h7 o7 Fecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    + F: u6 N6 M: H0 r- r8 u  j" c8 Zapt update
    / K' J% c( V. T$ k7 ^- M7 `apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \' y6 ?9 U. a0 M
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    ' D- `, G( L5 l: k4 U6 _update-alternatives --set php /usr/bin/php7.4
    4 g4 P% x, s- h. c8 h0 E; j3 m. V# 启动PHP-FPM
    " R8 K) f1 s' D5 o5 Qsystemctl start php7.4-fpm
    ( m0 @( s; e$ Y# |4 u) H( b: r: y接着安装Mysql(MariaDB):6 w" q& l! R9 d( ~
    # Debian/Ubuntu安装Mariadb/ m; X% N" H$ X2 `" _
    apt install -y mariadb-server
    1 _, o9 z, m4 N" g# Y& v7 Q+ T3 b- h( A% c#CentOS安装Mariadb
    3 b6 x% a7 L. o* [8 m3 Iyum install -y mariadb-server
    : e; f) v5 [% N" A. ]+ A: c1 D  k& ssystemctl enable mariadb1 ~3 ~1 c7 j* _# m' ^7 W, B
    #启动Mariadb
    9 X6 H7 w! g# _+ F. ^systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:8 E1 q* I  ?8 N
    #CentOS系统安装Nginx
    " i- Q' U! t' T4 Syum install -y nginx" a& S2 r5 U  w7 n  ^3 O
    systemctl enable nginx1 l* g) w+ z9 H8 E* t8 ~4 o9 b
    #Debian/Ubuntu安装Nginx
    ' P8 l  J1 Z; w- \9 d. K6 ?/ capt install -y nginx8 D. H7 L2 E3 G
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    ; v, Y/ @& X- i2 Q  n% P 部署YOURLS返回目录部署YOURLS的步骤如下:8 O9 J  \$ v8 O: u9 Q. P
    1. 创建YOURLS的数据库用户名和数据库:
    . Z5 C) E/ `: I, {) U# 进入数据库
    / u) j5 K, A$ N/ @mysql
    , V! ?, P7 h2 U' O$ W/ T# 创建用户名,用户名和密码改成你自己的
    3 y- l0 r1 [6 F/ g+ r# JCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    / V7 c( `) H5 C, g1 t  e% z# 创建数据库,数据库名字改成你自己的& f' R9 B6 a1 E
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    : J. X7 \% ?  m, b# 赋予权限
    ) }) o6 M0 q0 G: vGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';# o; b2 H' n! B- o2 y- N% F9 I
    # 刷新权限# t. b* D" c4 A6 Z% ]: q
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:; i; m/ i9 S7 A7 w
    mkdir -p /var/www
    ; l" |( u6 ?/ X. v6 Q8 x* Fcd /var/www/
    6 L1 ]  Q" b, G* f6 X% ^  g* Gwget https://github.com/YOURLS/YOURLS/archive/master.zip
    % e4 x  s' L; ~4 lunzip master.zip
    " ?# f  w& o: g' Q/ u! Qmv YOURLS-master YOURLS9 i' o" [4 Y, j
    # 修改网站目录权限! s4 h5 u6 J, \* a  c$ k. E+ J
    # Ubuntu/Debian系统! H: Q2 c* y% J4 N. A( t
    chown -R www-data:www-data YOURLS
    . n0 Z3 h% s  y# CentOS$ [2 f% K2 j/ K9 B
    chown -R apache:apache YOURLS
    0 V8 m4 Q5 ?; E) H1 U, |: ccd YOURLS4 B* c% F# A8 Q
    cp user/config-sample.php user/config.php
    , v" ^9 [8 L& Y6 z, j" Mcp sample-public-front-page.txt index.php
    8 F2 o2 _/ K7 C! z" V, C, d# j8 h) ]cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    % S, g9 e8 G. ]define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    # d8 |& U2 [( v1 z- b! ~( ?define( 'YOURLS_DB_PASS', '填写数据库密码' );
    ' ~  m& ?; q* gdefine( 'YOURLS_DB_NAME', '填写数据库名字' );1 n4 J, |! ~! O0 Q7 F% P& R
    # 这两行基本不用改. X) i& \* ?3 ?8 }& Z/ P
    define( 'YOURLS_DB_HOST', 'localhost' );
    8 B  j8 b: o6 R3 b- J# ?define( 'YOURLS_DB_PREFIX', 'yourls_' );
    6 L, c- i  @, e$ p# 填写你的域名,不要加www形式6 U  z3 o! E2 s2 p* k
    define( 'YOURLS_SITE', 'http://你的域名' );
    0 }( V6 m. j! i  e; u- Z4 Z) F$ {# 填写时区,国内是8
    % e7 x, M9 u  h7 Idefine( 'YOURLS_HOURS_OFFSET', 8 );5 P: {  s$ B' u! Z! k& @
    # 设置为中文
    " s% E* g) O0 Odefine( 'YOURLS_LANG', 'zh_CN' );
    9 k- d# ~( q& [6 e/** Allow multiple short URLs for a same long URL6 E" f4 a% Q6 L2 i
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)/ a2 p  z1 y2 J
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    , j( p' v# b* ?2 V$ Z$ cdefine( 'YOURLS_UNIQUE_URLS', false );# `; _5 ^9 X! S7 p
    # 设置私有权限
    % j7 {6 {& g  T1 Ddefine( 'YOURLS_PRIVATE', true );
    5 f, y: }( D( K: w: P
    , p0 t, ~# h6 qdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );' {) `- d% K# y0 M- h
    # 后台登录用户名和密码,一行设置一个,请务必修改
    2 t; P$ P+ S7 h) N+ o* b$yourls_user_passwords = array(
    ; \4 X) H0 S5 I$ g4 m        '用户名1' => '密码1',0 g: n8 F/ D* n- M2 y, b
            // 'username2' => 'password2',
    ) d8 O! j$ F) Y7 q# `        // You can have one or more 'login'=>'password' lines" _" U# s% ?7 H+ O9 W' S" y
            );4 a  g0 ~5 d& }' G* L5 j
    /** Debug mode to output some internal information0 Z. n4 S/ d  V; ]- U( a
    ** Default is false for live site. Enable when coding or before submitting a new issue */' M( ~" g5 ~% d/ H' M; K* v
    define( 'YOURLS_DEBUG', false );
    + \- m5 i/ c7 N& C# S# Z$ s# 网址中允许大些字母填62,否则填36
      u1 K  F. Q" X; bdefine( 'YOURLS_URL_CONVERT', 62 );/ _; h! y' A# D) C# s4 J
    /*
    ' f( R8 }2 y1 j0 j! W: f* } * 36: generates all lowercase keywords (ie: 13jkm)  I  k- C" Q+ |, s6 N4 x. M- Y
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)+ x; i& i) w* k( \+ K1 [
    * Stick to one setting. It's best not to change after you've started creating links.
      ~6 L3 S% @2 t: u  [! J */
    7 z4 u9 V& t0 ]4 z  s" G; k5 F# 保留的关键字,可自己添加
    2 f& L4 j: x1 k% ?7 A  f$yourls_reserved_URL = array(3 y7 k. r# U# Z
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',* n# I% P5 P0 {& I3 z; k
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    3 j, i) y, p0 r! g4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    & T  J2 {+ h& q. J3 H' cserver {
    ' K  `3 ]( x  z4 O) V+ ~8 _    listen   80;
    7 |  f0 s6 l* w3 x! r) R    server_name 你的域名;2 [8 T3 E; |6 B# S, W7 M
        charset utf-8;( D+ Y7 N4 y% ~& P* B5 b" X
        root "/var/www/YOURLS";8 x) Z3 d) H, ]4 `, |. F7 e$ o
        location / {% R- c$ P: _8 r
            index  index.php index.html;$ [( w/ G- ^( W: i. ]& L* h
            try_files $uri $uri/ /yourls-loader.php$is_args$args;+ M: _5 y  P* i# {3 y7 [) ~5 v1 Y( C. b
        }; x( _( S* l$ n  t7 Y8 }
        location ~ ^/\.user\.ini {
    - h8 S! U- ?2 r4 {! v            deny all;9 ]1 w% w7 V( W" j
        }
    " m4 Y' ~# ^# B    location ~ \.php$ {
    ! p# ]- D! e- O: @        try_files $uri =404;
    : m$ j1 e. x. E        fastcgi_index index.php;- M# L% y; o- V9 }$ Q
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;* H+ g. f/ v( [3 {. p. f
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;7 F9 d" v! j# u+ I3 G5 F. a3 B
            include fastcgi_params;
    / G0 r, R/ w' |2 ~        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;% e+ {* m/ S0 g9 f
        }. p+ }* q5 U, J8 p* X
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    - \3 g( m  J" ~        expires max;' P  V- \( o1 w. q3 Y
            access_log off;& u$ U; E' x# r. b- E3 w* F( V4 ?& r
            try_files $uri =404;' q3 k4 k; A. }
        }0 F2 [7 n" w; N6 e
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书9 X4 @/ p: G' U' M7 P- ^
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    ( C9 J$ b6 k5 D* \" r9 M" E浏览器打开你的域名,配置正确的话应该能看到类似如下截图:0 \. t( _& B" C

    ' A+ K! a# @! S0 ]+ R* K0 {6 j, t- S* h6 u" B2 y
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。1 k/ o& O6 s) w. K0 I, l* ]  ^1 z" m# ]
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    ( u3 b$ u! h# h4 z: Q% {首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    5 a& R: L7 O8 T% b% a! e) B: e. l' f/ S: A1 O

    " U3 b# P/ G& iYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    5 J/ y4 m4 n0 o4 L推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    + z0 ~! r, L' qYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    $ ]* D7 b3 N! c, y) g# {最终网站前端效果图:! U3 O, u( e- r

    ( X; G) t) z+ V! y+ H4 R
    $ v# i9 c& S. w2 }( B5 @! k短网址前端效果图后端效果图:
    ' _  K* s% w( n8 f2 _/ C6 @& l
    4 u0 \7 [1 ~9 P2 @$ r2 Z) U9 P. D: k+ _, A+ y% ~- s) i7 T
    短网址后端效果图相对原版颜值高了不少。5 o" P2 U( C0 O  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号 )
    快速回复 返回顶部 返回列表