扫一扫,微信登陆

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

搜索
查看: 369|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    ' Y! W! L( T# c3 I2 M( b/ I. A: G) b经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    6 S! V, g; U- S1 A! ^本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。4 T3 ?- y" v5 U- V
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    5 |8 o* t  w& W$ V6 R* ^6 A- `5 N& I* `* w$ h1 z
    * K  q6 e" Y4 I9 q4 x# ]
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:! ^) @, Y$ G& ^
    # Debian/Ubuntu系统安装PHP 7.4; Z! y" M; T# o7 p7 n  i8 t7 v1 A
    apt install -y lsb-release gnupg21 D/ l0 m; }1 L) u  ]
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    $ H$ I, X) Y# ~/ r  U- cecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    ! u3 p7 p1 F9 c* Lapt update
    ( j% S/ H- {' N+ p9 L' W) ?apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    % C8 v3 u6 U7 {4 x php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    " ?6 @% \& }3 `8 A% v( X9 Xupdate-alternatives --set php /usr/bin/php7.4
    2 U% d) b) _) ]# e. x% f( W1 u8 p$ F# 启动PHP-FPM4 [( }& e; S3 |, d& _* V/ ?" H
    systemctl start php7.4-fpm
    9 J# X9 |: ^- {5 @! c; Q, _. W接着安装Mysql(MariaDB):
    % N- Q' q" k$ ^, ]" a# Debian/Ubuntu安装Mariadb% D% K4 [& O. {5 v
    apt install -y mariadb-server" C2 F! B( t9 Z( u* k
    #CentOS安装Mariadb
    ) @9 C5 d! O, m9 I8 _yum install -y mariadb-server
    , K0 d# V+ o# N, asystemctl enable mariadb
    8 ]. u( m' A% v5 `0 |. \#启动Mariadb& P  T" i4 d' k* X/ n
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    # P4 e  a7 t" k7 H2 W7 I* C#CentOS系统安装Nginx% Y/ ^6 F/ J1 M' |% g
    yum install -y nginx
    9 k& ^8 r) z. {6 q" xsystemctl enable nginx# u$ m+ u. m( ~
    #Debian/Ubuntu安装Nginx" ^9 j, W+ y2 ]; H8 M" T$ m0 t
    apt install -y nginx
    * n) z1 n! S& s5 B安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。" m; N% k# e: l& m! x3 h
    部署YOURLS返回目录部署YOURLS的步骤如下:
    - ~/ X) v) k3 K! ]1 Z$ g" r1. 创建YOURLS的数据库用户名和数据库:5 x. i, X+ z$ |
    # 进入数据库
    0 i  }) [- _0 d, _2 \) U2 y: Tmysql: |' e2 P4 x' G- t/ H8 P
    # 创建用户名,用户名和密码改成你自己的
    7 K7 D% K; u* M9 i; qCREATE USER 用户名@'%' IDENTIFIED BY '密码';9 ~) X6 i. w% N! t& O
    # 创建数据库,数据库名字改成你自己的
    ( Y' X! k: v, z8 [/ x  F6 mCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    & }' {! f( O9 J4 q/ \4 O# 赋予权限' A" Z$ \1 i* c. F& d  Y+ [
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    ) ?" y# k  {- q. N, r# 刷新权限
    2 m; F( a/ C3 t* E2 F; ^+ CFLUSH PRIVILEGES;2. 下载和安装YOURLS:) u" w0 M- E  @, _: e6 ^3 L
    mkdir -p /var/www
    ( {) E/ `: `5 r$ ycd /var/www/- z; L' \$ N" n  s" k+ t! b
    wget https://github.com/YOURLS/YOURLS/archive/master.zip: N3 `. u" [) T; b* Y: E
    unzip master.zip
    3 [' W9 I$ L# g2 ^mv YOURLS-master YOURLS
    4 O  J% K5 q# v; ~3 L1 }# 修改网站目录权限/ t4 k: M! |1 F6 C
    # Ubuntu/Debian系统
    1 ?8 k4 e& j  p+ vchown -R www-data:www-data YOURLS. i# b! H* }/ l0 z3 U! t
    # CentOS
    0 Y; f3 I3 D  N3 P6 c* f7 schown -R apache:apache YOURLS# n8 b0 [7 B  `6 i
    cd YOURLS# W6 e. ^; x3 K, t
    cp user/config-sample.php user/config.php
    8 }6 R& c, G6 Y4 m" Qcp sample-public-front-page.txt index.php. I  q# ?" W; Z5 t4 }& h: \+ g& {8 N7 G
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:8 R6 @9 ?- e% R  P9 T' O
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );. [, _7 _9 T) o8 d, A- n
    define( 'YOURLS_DB_PASS', '填写数据库密码' );! h) K. e5 E2 }7 S6 I% c
    define( 'YOURLS_DB_NAME', '填写数据库名字' );1 {2 [; |  ^9 e+ g0 `; P
    # 这两行基本不用改$ y, z: ~* W7 {: B- z: h& _( r
    define( 'YOURLS_DB_HOST', 'localhost' );1 B/ q9 t% a1 e8 K- }+ l1 y
    define( 'YOURLS_DB_PREFIX', 'yourls_' );1 s$ l7 w1 D% @4 S; C) W! i8 I9 t
    # 填写你的域名,不要加www形式
    / Z1 ~' e% v1 ydefine( 'YOURLS_SITE', 'http://你的域名' );; q( U0 B+ T, O0 j4 V4 o" o. y% ]
    # 填写时区,国内是8
    8 b9 t; |2 v9 v7 rdefine( 'YOURLS_HOURS_OFFSET', 8 );" x% N* F& l- p8 t7 q( V
    # 设置为中文, ?: _$ Y* `/ N+ D; x7 Z( y: \
    define( 'YOURLS_LANG', 'zh_CN' );& D! ~- m. F! ]# n" h5 X6 ]4 V
    /** Allow multiple short URLs for a same long URL+ G$ e& V$ V! B# v! f' Q) S
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)  E/ |+ T# S# H+ A
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    5 u9 _2 K* r- J1 ?/ @9 Y$ zdefine( 'YOURLS_UNIQUE_URLS', false );
    7 P( Z$ ]. p, p+ f& @% S# 设置私有权限
    , k: H3 s: Z1 F9 w" g' r4 Ldefine( 'YOURLS_PRIVATE', true );
    # x# r, f& W  p$ k9 P$ z
    ; T% E6 Y+ z3 x  U6 F. Bdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    # j7 H  u  i$ W- R4 k! ^# 后台登录用户名和密码,一行设置一个,请务必修改
    6 w/ `; L, u( l8 H3 K6 X( b$yourls_user_passwords = array(: @0 v! c1 X& Z& r5 H6 Q
            '用户名1' => '密码1',
    & E6 ~* i7 u1 D8 K' a        // 'username2' => 'password2',, A( U2 \( S7 o5 z$ i1 |) F3 I
            // You can have one or more 'login'=>'password' lines
    ( w$ Z- J! [( a2 @& W; U1 X% \        );
    3 I! i1 ^0 M% b# w/** Debug mode to output some internal information! J' B/ }6 t5 s0 v& d. |  {$ L
    ** Default is false for live site. Enable when coding or before submitting a new issue */2 N$ |6 G9 e. n& w8 H) s
    define( 'YOURLS_DEBUG', false );; Q; ?1 V; @1 u6 Z. _: j
    # 网址中允许大些字母填62,否则填367 q. o6 s) `6 C
    define( 'YOURLS_URL_CONVERT', 62 );
    : B5 t6 O6 w. c/ _8 g" H+ n/*
    , L. `/ J7 G% C * 36: generates all lowercase keywords (ie: 13jkm)
    ) x) K. Y. x0 G7 W( M * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    9 K- c3 i8 o$ x9 j4 r * Stick to one setting. It's best not to change after you've started creating links.
    . o( ]  H1 O7 q( U( L. T */( {8 y2 v$ J/ `2 V  y/ o
    # 保留的关键字,可自己添加
    ' d2 m  E  Y( f$yourls_reserved_URL = array(: d; Y- e% v- f$ {9 ]
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',$ m  {$ K& N: P" _6 c
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。! m$ J3 _  R8 _4 i  _# O+ J3 x
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容! l1 t! D5 l- e2 Y
    server {
    ) `! s, U) R4 }! {$ O, C1 H! A# u    listen   80;
    ! a2 S. s* F+ b$ c% W8 r7 m5 b    server_name 你的域名;7 _6 F. ^% N+ X# t. I2 K
        charset utf-8;
    0 X1 L; e0 _! m5 w4 e( s& W# ?    root "/var/www/YOURLS";9 b% T. o: }1 \- X, ~) `; T
        location / {- i4 O, G+ W' d8 T! M* X) l
            index  index.php index.html;
    1 n! l/ R( i$ B2 ~        try_files $uri $uri/ /yourls-loader.php$is_args$args;
      ]! |5 c2 S7 W% n, _8 B/ x! j    }9 {6 ~0 _* W8 |8 m
        location ~ ^/\.user\.ini {
    8 i# m8 y/ V0 ]            deny all;& a' K. w# k# M
        }
    8 }& {- O& g& |7 b+ H. s    location ~ \.php$ {
    1 B7 ?' L3 v3 o% A        try_files $uri =404;
    2 d0 _6 B3 ?* E9 |        fastcgi_index index.php;
    ! U$ M2 W/ x( L$ }7 @: o        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    5 \' u& \' [6 L% \3 K' o: V        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
      C5 b+ q( R- n) o* t        include fastcgi_params;) S9 I! \' J/ a$ v2 M; m
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;* N! o! w/ X9 L
        }
    / B& R" c) j9 R    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 P2 O4 g6 M! T! h2 `7 X; k
            expires max;" I- x% {* Y. P/ n# ?$ h3 W% g8 c# W
            access_log off;
    6 r  q8 }: I0 Q4 b        try_files $uri =404;
    $ x9 r4 `2 m) O    }$ f* L0 ?9 I$ M4 i: c% q0 t! U$ @
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书8 t" U- R3 \  ^$ i+ M0 w
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    " t0 d+ c# U8 N; s4 g+ S浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    : r4 \! c6 @* s5 |4 o, b3 w$ G) @) H' f
    ( d* V* r. r; f, R) C
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。' x5 ^6 U8 g) s- k1 x. n
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    & a8 J' v" }* j/ o  p首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:! X* b# z! D0 P) R2 B3 l
    % [$ `7 U' @8 \
    1 b7 v8 j9 u9 z; d5 U  `
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。1 B# J/ ~% N* t% C/ ]
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    ' B: m2 e9 h9 J% ^3 CYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。3 U! Z5 M5 _  |# G3 J
    最终网站前端效果图:( m3 U1 `% `" W1 n  t
      E% ?" r1 M$ Q

    ; A! V7 J4 C7 r' D0 @. l短网址前端效果图后端效果图:) x: }+ w2 e1 m( E
      V. E0 |; u* N. p1 w1 ]0 g
    - q3 A( v( `" r8 i2 P) ^4 \
    短网址后端效果图相对原版颜值高了不少。8 i; n9 H( L' z
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表