扫一扫,微信登陆

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

搜索
查看: 904|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    ( d8 C* N  i6 ?* K: r/ Q8 G4 ~# P经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。9 Z& s: P# W' Y  F: u, S( U
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。" B0 y( j+ y5 O( P% r! D$ E; X
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    ( w6 C6 z* E! c  ^8 o
    ' }& ?% ^: b: t5 }% o9 G  ?7 U7 l2 o& ]+ d' o4 R3 O5 j
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    7 h! D1 T' Z& F2 q" _# Debian/Ubuntu系统安装PHP 7.4
    ! ^$ {: t- |% x* R6 ]2 ?# N. _$ u/ Y+ |apt install -y lsb-release gnupg2
    ! b7 N6 z0 G- i; J) d& H5 zwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -) ]8 C" [  {  R- A1 ~
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list0 E: k3 @3 x8 m$ O" D
    apt update
    & e2 C3 O3 t, ^  [8 u$ Xapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \  S/ N0 ]( g# L7 g4 {
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick  t/ ^+ r7 Q" Y! ?5 b1 x, E% S
    update-alternatives --set php /usr/bin/php7.4" k, I9 P/ Q+ k  b+ s5 c( I
    # 启动PHP-FPM
    0 Q( S3 |& T7 u$ ^6 W! tsystemctl start php7.4-fpm
    * n8 C5 V4 \5 w7 d! Y6 K( g7 p接着安装Mysql(MariaDB):
    2 k4 h; z! H$ X; N' M+ z+ x1 |! n2 F# Debian/Ubuntu安装Mariadb& @! r' B! @' t' [# u/ A1 `
    apt install -y mariadb-server
    / O1 {/ ~& p: q/ ^/ d8 k1 ]7 D' E#CentOS安装Mariadb' R5 G8 R  g& ]) ?/ @9 v, N% [
    yum install -y mariadb-server* ^, Q2 v9 ~* A+ Q/ O
    systemctl enable mariadb
    / G% x( k- u/ A5 I1 L#启动Mariadb
    - G; G+ ~% k- k# f% J; `systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:3 q) X% y. P) [5 P5 n
    #CentOS系统安装Nginx
    ) y# U  K0 P$ myum install -y nginx
    / h5 Y1 K5 d0 {* ]0 @8 C& Wsystemctl enable nginx
    " g! O! d0 {/ r0 x9 U9 {#Debian/Ubuntu安装Nginx
    1 M  p( y7 G. |2 U$ h' Gapt install -y nginx) p5 e/ n0 X" J
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    , X& g% j) F" C. K, Y' F1 r4 L 部署YOURLS返回目录部署YOURLS的步骤如下:. s0 ]; {4 l3 t6 \6 g; y. @1 d4 S
    1. 创建YOURLS的数据库用户名和数据库:
    ! R) l9 C; Q9 X- ?' `' n3 w4 S# 进入数据库% \' w/ O' C8 N0 Q
    mysql
    # ^. a+ a4 i% z# 创建用户名,用户名和密码改成你自己的' ?- b# R0 I, O& q" k7 n) p1 J3 f9 ?
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';+ V% u2 V& G. S5 C2 H# j! u
    # 创建数据库,数据库名字改成你自己的
    0 _( n, F% n2 T1 LCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;- G0 F' l' I! r% t  F7 I; S; V
    # 赋予权限
    ! U- f( \+ ^( G4 X5 ]+ |1 J# n0 HGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
      u- @6 ]  M; u/ a; q# 刷新权限; v0 N, t9 _) e1 x+ u# z
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:: r- T( n) h8 j
    mkdir -p /var/www6 d1 Z6 l1 y. m/ k8 R# ^
    cd /var/www/9 _: Z1 a4 \$ G. A5 r) h5 d% ~
    wget https://github.com/YOURLS/YOURLS/archive/master.zip8 ^% ~; }/ I$ g* r* L
    unzip master.zip
    / F" m/ v& r# ?$ x$ V/ k" wmv YOURLS-master YOURLS
    8 [. h. j$ h- X6 {, f8 @% f# 修改网站目录权限! i, S" o" O  F) q- I5 O9 |
    # Ubuntu/Debian系统
    9 H1 W& k# G& x/ Echown -R www-data:www-data YOURLS
    4 F( P' h. s) e! b1 s  A# CentOS7 W% \+ T0 G7 X( s6 x) g
    chown -R apache:apache YOURLS
    - M6 w" N( J1 w, xcd YOURLS! D$ U, h2 P; Y& V2 ~
    cp user/config-sample.php user/config.php
    " P' K( D+ [1 Y" G/ M" xcp sample-public-front-page.txt index.php
    * A" U) B0 D( i& {cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:1 {; n4 r; |6 j9 z0 j  ^; A
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    * s6 C, B. P6 q# k0 Q& m' F* e& zdefine( 'YOURLS_DB_PASS', '填写数据库密码' );% P( D1 {0 E2 q
    define( 'YOURLS_DB_NAME', '填写数据库名字' );& ~  C6 W) I; x+ d( A# F
    # 这两行基本不用改
    5 \* j( s2 j* s! A3 Y% T. ?( hdefine( 'YOURLS_DB_HOST', 'localhost' );
    & R& h* p$ y) J( A/ Y* ^+ Edefine( 'YOURLS_DB_PREFIX', 'yourls_' );6 h. W5 L0 E4 D: [# v6 Q% M
    # 填写你的域名,不要加www形式
    5 Y) T. |0 M7 h) ~2 b6 R  q% adefine( 'YOURLS_SITE', 'http://你的域名' );, J6 p( _  a- Z2 F, b
    # 填写时区,国内是8
    , U2 w  p2 F3 ^! k  {2 X. Hdefine( 'YOURLS_HOURS_OFFSET', 8 );
    0 ]& k( q0 M2 }) h# 设置为中文% [; p0 b# P# W5 D$ Z0 Z
    define( 'YOURLS_LANG', 'zh_CN' );! }" V+ p7 e! W. o
    /** Allow multiple short URLs for a same long URL. e3 G% J6 [" D
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)# U: R3 \( O! e! M" ~: T- r
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    ; q4 q. X2 P. S" Vdefine( 'YOURLS_UNIQUE_URLS', false );: L2 b) D# h6 o! ~; @% Y, q* z
    # 设置私有权限& W% t; t8 X4 O. Y8 o# S- X7 J
    define( 'YOURLS_PRIVATE', true );
    # E! Q* p, M" F/ w' b0 c. C
    - Q5 ]7 V5 H- W% C+ B1 v, qdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );; ?) k7 P# g0 y  U" g" ?
    # 后台登录用户名和密码,一行设置一个,请务必修改: l3 E4 i3 g0 T& U
    $yourls_user_passwords = array(
    , M% p& ]) H6 G# [( B6 J+ Z) }        '用户名1' => '密码1',
    0 _1 K) |* F2 B, ?$ _        // 'username2' => 'password2',
    / E6 f8 i' `5 R4 d2 n7 v) Y2 Q        // You can have one or more 'login'=>'password' lines
    2 I7 L9 k5 u; S( Q  G0 ]* t        );
      t  O/ A* Q# E' e; B( D/** Debug mode to output some internal information
    4 y1 `8 k* b+ f, ~/ ] ** Default is false for live site. Enable when coding or before submitting a new issue */- g0 Y. x% q/ H1 z2 c( K. j6 N+ s
    define( 'YOURLS_DEBUG', false );
    , h, T4 I$ e9 X( q# 网址中允许大些字母填62,否则填36% L+ h% X! Y' A
    define( 'YOURLS_URL_CONVERT', 62 );1 w0 i4 d, ?' b
    /*
    % T9 U. e% i2 c# P* P6 l  v * 36: generates all lowercase keywords (ie: 13jkm)
    / X3 s! y3 C6 _- B" g" Z  K * 62: generates mixed case keywords (ie: 13jKm or 13JKm)4 N/ Z' p4 F' G# f6 d( p3 U
    * Stick to one setting. It's best not to change after you've started creating links.
    % p! L$ J7 p1 ^* B */& O1 R6 d# E& J3 r) W# @' D9 u
    # 保留的关键字,可自己添加$ Z1 m- I. Q/ d) F0 V
    $yourls_reserved_URL = array(
    % t4 a( ~6 U: V$ |) |$ F        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',- P6 |6 k* ^- _5 _, ^- H2 ?
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    ' L! T. g  W$ k4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    5 t: `7 h" P, f' J% R, l4 l" Aserver {  q8 l8 s" N, b/ R& O
        listen   80;
    & W' [, Q5 z' E& _3 s0 p    server_name 你的域名;* y1 J; ?* D' s
        charset utf-8;; j. V. V3 W: U9 R( ?
        root "/var/www/YOURLS";
    7 J. n' s: i% A4 U, @    location / {
    $ H# W) }5 D7 _9 F7 Y        index  index.php index.html;
    ; j$ i3 f% q) {5 M* Z# B        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    2 @- ^& [. ^0 J6 a3 ~6 E    }
    , U+ f( K# I4 a' F1 ^& K    location ~ ^/\.user\.ini {; o5 \" L. C6 h3 s# e- A( E
                deny all;
    " t3 a9 I% p) `" H; V3 J/ G    }
    5 x% }# a$ Y" N3 H. n3 x6 x8 `1 F    location ~ \.php$ {/ U: j. {! W; P5 ?0 P) V
            try_files $uri =404;$ i  g! ~6 `! i8 b1 c# |
            fastcgi_index index.php;, E" A( A" o8 {$ Q6 ^+ q( A- x
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    ! H  F& E; X: J( I6 L3 E        fastcgi_pass unix:/run/php/php7.4-fpm.sock;( W6 \1 l* W! T
            include fastcgi_params;
    . d5 w  I; a( B7 `        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;7 X& r, T/ E" Y. ?& I+ A+ b, [0 v( R
        }
    + `; G7 L4 P6 s! 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)$ {
    ! ~8 {+ z) V. w% Q1 u$ f$ q; K        expires max;
    , X* }" ]9 y4 h* F5 \# d        access_log off;7 ~- k( X5 {  J0 s8 z5 ]5 X+ C/ a
            try_files $uri =404;( H2 a' V! T5 q7 r6 r
        }
    ! f% ^8 E/ S) t$ T) V- l}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    6 g6 q6 Z1 E/ v% i
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    9 i; Y) c" o4 @8 o( w1 n. t浏览器打开你的域名,配置正确的话应该能看到类似如下截图:* x7 f$ P* y7 ^9 X" v! T

    8 a# F, E- Y/ C4 I; J
    " a/ B+ V4 j- _, d7 O0 v. BYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。3 p* }" M/ o' ~) B" k8 C4 o$ l
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。5 P, [6 b" ^: E
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:0 L& u; h0 C+ R
    0 M& b9 X7 O0 t! n- ]' M+ j, B6 h

    0 V/ t! K& d8 A7 |% hYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。4 T3 P2 |, n, I/ @" D
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。  N2 V: f8 h1 v  M  a
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    1 y* f! p3 Y% e1 P; C最终网站前端效果图:
    . Q6 \: }' x& c; d
    ! y( m( ~1 M2 n3 }1 ~3 P! p2 e, F0 g+ e6 l
    短网址前端效果图后端效果图:
    5 n* S8 i5 R4 _5 [! W% L
    # u' H) b# ^4 F! b* H! N6 I
    9 k3 [) l9 }+ J/ L短网址后端效果图相对原版颜值高了不少。
    2 I7 i3 G% k! n; B# m 参考返回目录[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号 )
    快速回复 返回顶部 返回列表