扫一扫,微信登陆

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

搜索
查看: 618|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。1 ~5 C1 H( B: i7 N& q
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    / a! k$ I1 ]8 q; T; L7 G# R* t" i本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    ' [: `) O$ s! O* S: p* T 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    $ a; p" Q6 Z0 z" r: X7 P' I# j% e* b: ?6 v6 p

    , _$ z7 L9 k4 I  \域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:2 Z9 X; F, e$ G0 t3 J
    # Debian/Ubuntu系统安装PHP 7.4
    / y3 Z9 b, ~- {8 ~& ~7 kapt install -y lsb-release gnupg24 H0 t- j; ?; }+ P" @% r  t6 L1 Q
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -2 k# K% E. ]: W: F
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list  C: i+ i1 X" Y1 ?2 l+ i
    apt update
    $ o8 P  Z2 a6 v4 N( x) Yapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    - F+ r/ y. ]' L php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    ) f; j+ \* W$ N( Q& Jupdate-alternatives --set php /usr/bin/php7.4# ^+ F3 l* q) u8 }4 N) k4 H$ Q% \0 q
    # 启动PHP-FPM
    , l+ |5 Y" Y% ~/ n7 |0 O/ t; ysystemctl start php7.4-fpm
    ) M* J+ k4 C# L0 P2 |4 V! Q/ w$ o接着安装Mysql(MariaDB):
    . @' }- w1 @' B0 v# Debian/Ubuntu安装Mariadb
    & g/ W  L* \/ H. h, v( ~apt install -y mariadb-server
    & u+ Z2 t0 P6 e+ N3 a#CentOS安装Mariadb
    # i% r6 H% h+ q, e0 ?0 ~0 q& Wyum install -y mariadb-server- p4 ~* M* ~% H0 h+ u, ]
    systemctl enable mariadb
    8 V! J3 b# q) z- a- j5 n+ i#启动Mariadb
    ' d$ x3 m3 v5 r# f1 N; L5 Msystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:% P4 O/ a% {; w) k, e' u% [1 `
    #CentOS系统安装Nginx) D  t+ H' P5 ]. _$ S/ m
    yum install -y nginx
    9 c& p2 u: g# T4 h8 p% b0 {systemctl enable nginx
    % x$ d; A* I- k/ z' Y1 l0 L#Debian/Ubuntu安装Nginx! ^$ T% b1 M0 Z
    apt install -y nginx' W+ b$ G6 ?/ x: H, c3 t
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。8 e# A+ k8 P2 Y+ N
    部署YOURLS返回目录部署YOURLS的步骤如下:
    8 K( U& O  z. h+ q1. 创建YOURLS的数据库用户名和数据库:# {! o5 [. k# p7 S+ I4 @& U
    # 进入数据库# A7 ?) P3 r4 @* S
    mysql
    " _' m  O- x& r$ \( W# 创建用户名,用户名和密码改成你自己的$ i9 b4 ]) i9 O9 |& A+ z) ?; L% u
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    % Q1 V& G7 }3 [' X# 创建数据库,数据库名字改成你自己的  m; Y) h5 p0 L$ E' n! {
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;1 f; j3 u- n1 J5 N; ~
    # 赋予权限
    ; V5 }* F: }; W) cGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';; Q, M7 R/ R$ a4 i* g7 i3 L
    # 刷新权限* X' ?3 y) w9 p9 B9 l! I) l+ A
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:5 V  b* e) h$ q- d, o( t/ n
    mkdir -p /var/www
    $ a+ k) [2 t( ]4 pcd /var/www// g/ [0 d2 h& r' D
    wget https://github.com/YOURLS/YOURLS/archive/master.zip6 x. T( R7 l1 Z/ T& f
    unzip master.zip* r3 p8 b" t; E
    mv YOURLS-master YOURLS
    + I+ ?- h8 H# ?  o- x! f# 修改网站目录权限8 U: s8 ^9 U" b. j: e) h. d1 L
    # Ubuntu/Debian系统  z, K, E, u2 l3 e
    chown -R www-data:www-data YOURLS
    7 J) h. z( ^+ f+ M! ^# CentOS) z3 p' w, c# l! i. J
    chown -R apache:apache YOURLS. \) Q8 M3 J1 u% G( r7 f# C
    cd YOURLS; w+ c. g* \; D# v
    cp user/config-sample.php user/config.php
    2 n: c% L2 O3 K+ w% {% Z* \cp sample-public-front-page.txt index.php
    # a4 ~3 }% _1 Fcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    & h, s- p$ Q7 H; ^. a: B  q& f. tdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );4 @2 {; T8 m/ p
    define( 'YOURLS_DB_PASS', '填写数据库密码' );$ O- G) R' r3 F
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    / A' X$ J9 o% ]4 Q: F# 这两行基本不用改
    ; }9 N+ {7 S) N) X( `9 V# @define( 'YOURLS_DB_HOST', 'localhost' );
    * }; F( Z1 D4 K" G- Z3 p& Bdefine( 'YOURLS_DB_PREFIX', 'yourls_' );2 E3 ^3 z$ \2 W& V
    # 填写你的域名,不要加www形式
    4 O) [5 u, ~, ]5 A7 jdefine( 'YOURLS_SITE', 'http://你的域名' );7 g; v. y% p, [/ }/ S1 z
    # 填写时区,国内是8
    ' X, ]0 ]+ f6 _# v( T/ x" edefine( 'YOURLS_HOURS_OFFSET', 8 );2 w/ F& o& p+ o6 I
    # 设置为中文
    . r6 F" W( Z* x9 B6 j6 l% K) ?define( 'YOURLS_LANG', 'zh_CN' );- ]& q7 u% V5 I# u  V
    /** Allow multiple short URLs for a same long URL
    0 X- [3 F  q4 g: g ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)5 N; v+ N9 O2 c) [  Q7 [
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    % n: y2 v5 Q! O/ A) sdefine( 'YOURLS_UNIQUE_URLS', false );. {6 H. \( F5 [+ w0 d! Y5 X3 v9 w9 U
    # 设置私有权限
    , ^9 U/ w2 y/ A  gdefine( 'YOURLS_PRIVATE', true );4 o* I9 T0 T( b, }

    + g5 Q2 P2 e/ C; i, F+ n, T/ h1 `define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );; h4 N/ J8 Q# V4 a/ g- u0 f
    # 后台登录用户名和密码,一行设置一个,请务必修改3 Z1 ^2 x3 d* ^6 @$ x2 {! A" A
    $yourls_user_passwords = array(, Z$ E) T( W* F+ W7 e- p
            '用户名1' => '密码1',8 l: T5 a8 J3 y1 c4 o4 n; |; w. B
            // 'username2' => 'password2',
    9 @* ?/ G& p% j0 j/ J& T        // You can have one or more 'login'=>'password' lines# ?$ @% ~/ E% q% n5 d
            );
    * L+ y$ f5 e1 S7 o1 Z+ U) J/** Debug mode to output some internal information
    : v& ^; s9 q4 v6 ]  r ** Default is false for live site. Enable when coding or before submitting a new issue */
    : z1 I9 V9 s# o/ \define( 'YOURLS_DEBUG', false );0 n  H# s2 d8 K/ P/ D# v6 I! a
    # 网址中允许大些字母填62,否则填36
    3 `+ m9 [# Z. O* Q9 w8 S( b% X) Udefine( 'YOURLS_URL_CONVERT', 62 );; N% q  Z5 P* @8 V
    /*
    / C2 o5 y! V% W * 36: generates all lowercase keywords (ie: 13jkm)7 Z: e" Y5 w0 a( v4 L! L. J
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)+ ~, d) Q$ J& i, }4 D2 h
    * Stick to one setting. It's best not to change after you've started creating links.
    4 B& E- A. y/ z3 r) | */6 d9 N5 W! N7 I& o. l
    # 保留的关键字,可自己添加
    5 E5 P2 L  f6 m: `4 c4 j$yourls_reserved_URL = array(
    2 v  c/ H+ j: n2 y/ b# p        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',6 b) r1 c5 O0 \3 ^% H/ M
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    9 Z1 r4 p, ]- J% O( K7 n4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    5 m: f& T- ]+ t: K% l  |8 X: Qserver {! j! a. ?5 M5 q9 D2 A% S' ^- D
        listen   80;8 K% \* ~/ ]1 O0 V$ K
        server_name 你的域名;- }, d' O  Z: U' _3 r
        charset utf-8;/ n( d. R, G- Y+ ~; F
        root "/var/www/YOURLS";
    / ?! P! Q2 W, \  j" f( |" [    location / {
    1 T& X& R/ u3 b1 f) ^5 X5 {4 b" v        index  index.php index.html;3 b( g3 D0 Y1 Z* P* I
            try_files $uri $uri/ /yourls-loader.php$is_args$args;2 E. Q/ q" C; ?* D. e7 r8 f3 i
        }
    ' F/ N* ]# q4 a3 \    location ~ ^/\.user\.ini {8 z) P& O' x0 S
                deny all;0 m% ~# \  Q4 o# C* X/ O9 U0 F
        }' k7 h4 @4 z( p7 n% v5 R9 j! X- E
        location ~ \.php$ {
    3 v5 `+ s3 G" `- x$ q' u  `        try_files $uri =404;8 k% ]9 R% \+ X8 {. f
            fastcgi_index index.php;) ~. p  G7 _& `  X+ J3 L
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;& T4 R8 D. o6 E" j; m
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;$ x0 N0 c( B' s0 }
            include fastcgi_params;  X- D- \4 c" R$ g
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    6 z& M' v, r+ Z. h% j    }
    ( D2 Y5 u8 d; c! m: N8 }$ z' A, V    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    5 V" r* ]7 B- b8 J) p& i. N) q- K3 H        expires max;
    ; B- t8 P0 O+ [3 Y5 i0 U        access_log off;
    ' Z' v. W* i2 D4 Y% v. d1 B) L6 [        try_files $uri =404;
    ; @9 ]8 X7 l! ?; F$ i0 P1 i( Q    }4 \' D# U( E# h# F" x7 S* r0 |
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    : R2 M: e4 v" p* \
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。* X, \0 i/ s& M, U8 [# T/ `" T( L
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    " S( m) X* ]! e1 |+ y2 q' ?; d) l7 W3 J( N6 S  w- k% ^: ?0 q- I1 [
    / @" X; E" b8 `3 l( F4 w& A% C3 y
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。5 T) o: L& V9 W9 s0 [" Y" \
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。' W. T6 r- P; @. b: \
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:/ a+ p' T; }- `0 z  w9 |6 b
    6 n' P) s$ `9 h

    ! e" l5 }4 S- F# ]" A9 b) m0 `YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。3 H; ^0 p" g: f, h% c
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    ) x0 u0 ?1 e- a/ e3 @  pYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    # r$ w( I# F  P/ V8 B9 k5 s5 y. Z最终网站前端效果图:, T' g0 I5 X) B& c. q

    2 c  k% ^( F0 Z+ ]7 A0 u/ A: M$ d7 Y
    短网址前端效果图后端效果图:6 U( W' b. B, k3 @. c6 E: Z

    8 m; E; j! k) A' C+ V  F4 C* U: ^' M5 z/ A: E. H( \' h
    短网址后端效果图相对原版颜值高了不少。% }2 T6 M2 P/ @* V3 i. P, u2 U4 C. `
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表