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

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

5万

积分

0

好友

1万

主题
发表于 2022-9-11 21:04:53 | 查看: 1327| 回复: 0
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。4 a" N( k: ^0 ?7 S" a0 g
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。" N9 t& P2 A  K: a1 D' Z, f
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    " Z6 j4 Z8 d( G! _ 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。$ S( Q2 ~6 Z: ^7 `$ g+ H5 i

    2 _% K. c" @# B8 F' }% H' h, U2 o: I1 J  N. e2 g# P7 G
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:: f7 _5 J0 G6 o2 q
    # Debian/Ubuntu系统安装PHP 7.47 d2 V$ |" D- ]2 @0 a0 ^
    apt install -y lsb-release gnupg2
    5 z5 m0 [5 ^, L% o! Wwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    4 ]8 _( [# y( c1 }echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list2 \3 b/ r' F+ Y+ r$ U
    apt update
    / w! D, T- e( D% rapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    2 q' J" G! z$ Q$ C/ Q9 W* X php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick$ W0 Z: b. f6 Z! x7 R
    update-alternatives --set php /usr/bin/php7.46 `" T* t. g6 E# l- @# }$ l9 x6 q& _& y% h
    # 启动PHP-FPM2 K- A  _2 I" ?9 ~* O
    systemctl start php7.4-fpm9 f3 a1 w( O( \8 p, x+ m
    接着安装Mysql(MariaDB):
    7 r" s- o! G( {# Debian/Ubuntu安装Mariadb
    % \! s  H- J8 l" Vapt install -y mariadb-server
    ( k  ]: ]2 n+ I* ~#CentOS安装Mariadb) \: H; ^: y  I$ i* o9 V' {$ q
    yum install -y mariadb-server- P  [0 z+ N9 F  {. ]9 K
    systemctl enable mariadb/ ^9 A7 f+ h1 i; Z/ b
    #启动Mariadb
    / D( L# t/ K4 Z" D1 Z4 N. Q/ Msystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    ( e4 D7 M' [) e( y5 f5 K% _#CentOS系统安装Nginx
    2 {4 p) K0 z1 @6 j2 a+ x5 Xyum install -y nginx8 [8 n: f( @) }; K  l  p
    systemctl enable nginx
    7 [. Z# \8 a0 q/ e0 Y9 I#Debian/Ubuntu安装Nginx
    ! L. w/ @# U. S1 O& `2 Oapt install -y nginx
    0 r9 e* G, x) R& p" ?安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。& T" k/ c6 Q/ f6 ^
    部署YOURLS返回目录部署YOURLS的步骤如下:/ Z7 `) {+ z- L' M. }& D2 r
    1. 创建YOURLS的数据库用户名和数据库:- P$ Q. j, `' Y, F6 \5 I0 L
    # 进入数据库
    * ?- k: j& ^; @mysql
    ! Y+ f/ q# A# m* _+ K" S# 创建用户名,用户名和密码改成你自己的# C3 N' K# K# q1 @9 ~
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    ) D- `7 j5 h5 J3 @( R# 创建数据库,数据库名字改成你自己的8 {$ |5 Y: ~7 J; E( p
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;. M  j7 X6 J2 E% T3 c# T0 ?
    # 赋予权限
    - S  c6 ~1 d- r' Y( s7 m+ P) cGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';: \# @0 s6 l/ Q2 y6 t: q* x4 @
    # 刷新权限7 `+ [$ |4 s# g0 V( v
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:% ~, l: `: f1 g9 R: c$ ~8 |! k* K
    mkdir -p /var/www/ e- u: Y! v& z/ ~
    cd /var/www/
    1 x2 ^) h, y, x, q& g' jwget https://github.com/YOURLS/YOURLS/archive/master.zip  U- K1 M; ^' @! l
    unzip master.zip1 g" C) A0 U2 v# A
    mv YOURLS-master YOURLS( B& o3 W4 A7 \7 E5 h
    # 修改网站目录权限  q5 j6 b* S/ b& o1 M' ~2 I8 N
    # Ubuntu/Debian系统, [8 H0 X: v1 {* i/ z+ @3 \
    chown -R www-data:www-data YOURLS
    " L  Z% T- w. B* |' O- a# CentOS: |9 u5 g( b: Z. l' D3 e
    chown -R apache:apache YOURLS
    5 z2 V3 Z2 u0 s8 e0 Pcd YOURLS8 y5 n3 }& |' V2 }
    cp user/config-sample.php user/config.php
    : P2 o7 v6 _' bcp sample-public-front-page.txt index.php
    & ]  j7 u% Y) Q5 l7 ^* n+ s; ^+ kcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    $ ^7 h; @- H7 `. U$ B& ~0 gdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    $ U3 `4 }7 c4 @6 L# x5 ^+ R) xdefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    9 I* _, i+ j8 {( fdefine( 'YOURLS_DB_NAME', '填写数据库名字' );
    ; r9 v; J. q6 W! f# 这两行基本不用改7 @- V2 J  y4 E: a3 ~8 X7 t" i
    define( 'YOURLS_DB_HOST', 'localhost' );
    2 t1 I0 ^, z/ |define( 'YOURLS_DB_PREFIX', 'yourls_' );
    # l, {& h# x5 V. V; Q# 填写你的域名,不要加www形式/ r' o" v' B) A* q/ O' C
    define( 'YOURLS_SITE', 'http://你的域名' );
    , i% t, X, \$ @3 h; G. H- k- q# 填写时区,国内是8
    4 i! \4 \! a, t6 _9 Zdefine( 'YOURLS_HOURS_OFFSET', 8 );
    0 B  b9 i$ d! W7 D# 设置为中文: [+ w) y2 {1 k6 s% A
    define( 'YOURLS_LANG', 'zh_CN' );
    ' Z0 t8 S6 D( x1 m" F0 C# Q+ h. b/** Allow multiple short URLs for a same long URL4 H0 ^7 D2 d( z
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    : X3 K' M; O: y ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */3 r4 X0 n, {! {
    define( 'YOURLS_UNIQUE_URLS', false );
    1 S$ l8 {# g1 r" Y2 E# 设置私有权限7 L* t- R6 }7 Q3 h9 U
    define( 'YOURLS_PRIVATE', true );; ?3 G( K1 L- ~) l  P
    : C4 u3 V: s# \3 x1 W7 {
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );) o' C% \/ J3 A
    # 后台登录用户名和密码,一行设置一个,请务必修改
    , `# }# r7 w) I( a$yourls_user_passwords = array(! {' p- e; H4 d7 r$ s% m4 n4 o7 u
            '用户名1' => '密码1',
    * p. [) V' K( m/ w% Q        // 'username2' => 'password2',
    1 M9 v2 M/ ~3 b* N1 k* u        // You can have one or more 'login'=>'password' lines4 n9 N( f8 u- Z7 ?# S+ ?
            );
    ) ^$ F$ B& c2 r; ~5 G' m3 R- ?/** Debug mode to output some internal information
    % y6 w$ i/ O) H ** Default is false for live site. Enable when coding or before submitting a new issue */
    2 M+ o: B, Z5 y# d* bdefine( 'YOURLS_DEBUG', false );" b9 u: i8 k4 f  Y! {4 J9 W' R
    # 网址中允许大些字母填62,否则填36  I" Y5 S* \+ `6 K" |. [" j: c
    define( 'YOURLS_URL_CONVERT', 62 );
    . L: }) f: W4 R/ Y, T/*
    ! C* c4 \7 n- E: D/ O * 36: generates all lowercase keywords (ie: 13jkm)$ v& T/ ~5 A  Y+ u
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    / ^/ D0 c9 x+ q/ e$ i6 ] * Stick to one setting. It's best not to change after you've started creating links.7 e& u# `' h% }# Z) C: d
    */
    & \- s9 l: f  _% u& w2 @# 保留的关键字,可自己添加( h. Y" p  ^& A
    $yourls_reserved_URL = array(
    + O  j, g# q- i1 U3 p5 J0 B        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',% B/ R+ S" ^- _! D0 V: C  `
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。: S3 K) I% ^7 ~" H9 K7 p* x; l4 _
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容3 {8 Q# {) C7 l8 u% }
    server {
    " |7 r8 z. G- L& I! Q6 q! R    listen   80;
    4 k' k" H7 v1 z5 G! X, R. e    server_name 你的域名;* x8 \3 V0 L% v. H* p% P6 G  P
        charset utf-8;2 y" @8 O: |7 Z. I
        root "/var/www/YOURLS";+ @, |9 q& X# M- K9 j9 a' q
        location / {; y: R0 U( P" Q7 z+ G# @6 f6 B
            index  index.php index.html;* |' e! c% q% u$ H" [  C: ]
            try_files $uri $uri/ /yourls-loader.php$is_args$args;0 t* d) ]' \& Q7 d. g+ [( h  F" O
        }& c8 ~* t1 u1 T# H  Q
        location ~ ^/\.user\.ini {) J7 A- X- A8 y8 w
                deny all;
    7 A4 W7 @4 d5 F6 [& }    }
    # B, Q9 Y- N' [# P5 m" \    location ~ \.php$ {, {7 ?0 x; H5 E
            try_files $uri =404;& v# V: t# Q. `! C. N! w
            fastcgi_index index.php;0 W- s6 B0 k  s/ S6 r' b9 M
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    & T% r. K" l7 e$ v; s        fastcgi_pass unix:/run/php/php7.4-fpm.sock;0 s8 W  b( w! U
            include fastcgi_params;- i6 K) V1 X# }* r$ ]* S
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    : c3 I' a8 |1 _9 i1 ?+ `    }0 m, y0 C: G4 I$ ?
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    & S+ I: o' N% z2 y2 f        expires max;, s$ R- `$ l- k- a. d
            access_log off;
    2 ]; |2 T- ?9 [* H  f  l$ o        try_files $uri =404;! o' k, X4 }$ v& G
        }4 d! l$ H0 r( b# `0 p( t5 r
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    ' l( }: R& n6 o/ j5 f) J
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。+ Y1 o& v4 {: F0 W; r
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:9 F# C( P) P& F1 E

    % n! W4 [9 ^6 a, M  C  Y( ^0 k3 y! \" M# ~9 z. D
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。" `! Z! b  z. p& Y
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。8 a% l" j. N: _8 k( q1 x
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    0 _! q! j$ j) ]. M. ^( I9 n& l( r5 g* E- j+ c

    / ^9 @; v' t% C' hYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    7 x3 n6 \2 R% X推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。, m- }+ a8 k4 t# h3 S3 o$ a* p( q
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    ; L* p! X+ U  N9 p- w最终网站前端效果图:
    ( ?. E: w$ a, q0 L6 W
    2 ~  g8 n: l) E: z
    % j3 x% E: l( h+ m) V短网址前端效果图后端效果图:
    6 J: X: Z7 `2 q( I) z% d% x
    1 ?: v% I# g( g8 c  h; ^3 K0 f( x1 Y6 D1 e" K) B$ F
    短网址后端效果图相对原版颜值高了不少。
    ( c! d. w+ W8 ~) h; K 参考返回目录[ol]
  • YOURLS
  • Awesome YOURLS[/ol]AD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(5)
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    收藏回复 显示全部楼层 道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    QQ|Archiver|手机版|小黑屋|青浦海洋数码电脑城 ( 沪ICP备18024137号 )

    GMT+8, 2026-11-7 00:10 , Processed in 0.830924 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表