扫一扫,微信登陆

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

搜索
查看: 1004|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    ' j" F7 I' J3 Z1 f" N/ F域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:& a7 c' \/ d7 U- D( T* z3 h$ W
    # Debian/Ubuntu系统安装PHP 7.4
    / S: g  Z" E: o0 m6 O1 \3 Z- L& B# m2 Napt install -y lsb-release gnupg2
    4 q: j! d" o5 Q3 D+ Z1 S& Y1 w; z, swget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    2 p$ W4 d) h+ ^3 m3 \/ {' recho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list% L. G9 ]7 ]# G9 o2 f8 d
    apt update" I# h; N# v+ m3 ~, U2 B
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \( x7 C. c- J9 w- n4 r4 J4 A
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick8 i5 c3 X( R% s8 e1 t" c( j
    update-alternatives --set php /usr/bin/php7.4
    * E% A- s) I+ ?* U( B* h0 L( Z5 W3 m# 启动PHP-FPM/ _+ Y/ v! a  a0 x+ |8 K5 Y* M
    systemctl start php7.4-fpm
    + P  i9 f6 r2 a6 _, Z: K接着安装Mysql(MariaDB):1 I' L' G& v/ @0 K8 \" Z. W  X2 u+ S
    # Debian/Ubuntu安装Mariadb) M9 z# R/ R1 D& y. m
    apt install -y mariadb-server# p  h6 K3 Z; c$ J) O5 F
    #CentOS安装Mariadb
    & Y/ G% V5 O2 M. [& Xyum install -y mariadb-server# j. h6 g  A% ?( @4 r
    systemctl enable mariadb0 F1 |# U4 Q& n& |# H. l1 R7 ?1 R
    #启动Mariadb
    " c! [. |+ K3 X( _6 ^0 d9 x- wsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:( z9 C+ v) o) ~
    #CentOS系统安装Nginx
    $ h- c& Y2 M+ A- qyum install -y nginx# I( s0 o( v; r3 ?
    systemctl enable nginx
    4 _' D& B4 J3 p#Debian/Ubuntu安装Nginx4 U# }6 j( q$ Y1 _
    apt install -y nginx9 ]% E7 l3 Z4 M7 j0 J4 I9 W
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
      Z) x5 J, N+ T% K5 w2 Z 部署YOURLS返回目录部署YOURLS的步骤如下:
    8 C& S9 f+ H: d1. 创建YOURLS的数据库用户名和数据库:1 g' n# r# ]( k5 K2 q; d6 z4 L
    # 进入数据库6 a3 J$ V3 C; o4 x; Q1 d. F$ d
    mysql/ Q8 u+ O9 Y+ |
    # 创建用户名,用户名和密码改成你自己的8 ^! i$ o5 Y' T' W/ W! y
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';% p. P7 u7 q( E  ]& b) O0 |
    # 创建数据库,数据库名字改成你自己的4 d9 `! V$ N7 C6 G  g  v
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    2 I  g) Y$ }; K4 }+ @* f# 赋予权限
    $ w/ ]/ k) F! [8 Z; HGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    8 v. w' i5 \/ c) D# 刷新权限
    # b' r& f3 ?+ ~+ g' KFLUSH PRIVILEGES;2. 下载和安装YOURLS:% H6 Q; X+ e- R/ N
    mkdir -p /var/www0 M4 ~2 `$ l/ c4 j: F+ X; I; |4 c
    cd /var/www/
    ; w2 X8 W8 n# R& u& W8 _9 Z* r8 y! Kwget https://github.com/YOURLS/YOURLS/archive/master.zip( Z. S! b8 L' U$ S
    unzip master.zip
    4 G$ \3 h5 ], `" k" qmv YOURLS-master YOURLS
    ! N. ]) G; c' D* c# 修改网站目录权限
    ) }0 m+ _4 N3 I2 Q# Ubuntu/Debian系统; J. e: K' l8 I* d
    chown -R www-data:www-data YOURLS
    3 ?  W" k$ P  k) V* `# CentOS
    ; N/ e2 r" V/ p0 r* P/ P# P% Ichown -R apache:apache YOURLS% L: }7 X! V) M' n/ ~
    cd YOURLS- K! ^9 \9 P2 _+ S( ?  S; u5 ?! m/ l
    cp user/config-sample.php user/config.php3 k% K% l. G2 b7 f3 v4 c1 p: [
    cp sample-public-front-page.txt index.php
    # r+ R9 y1 O: i* v7 ocp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:% k. r: B& @# ~3 M1 l
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    " p  R/ a9 Q( v0 _: w  hdefine( 'YOURLS_DB_PASS', '填写数据库密码' );# A" ~" u: g  G  @! Y1 [
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    6 u$ q- }- `  ?4 r1 b- a( O1 S# 这两行基本不用改
    $ U, F1 x$ E, E* [' Sdefine( 'YOURLS_DB_HOST', 'localhost' );* D2 n& ^: m' I% g  x$ F* D
    define( 'YOURLS_DB_PREFIX', 'yourls_' );8 I- n: n% S4 c- r
    # 填写你的域名,不要加www形式; X% g5 \9 l! ]! M" u
    define( 'YOURLS_SITE', 'http://你的域名' );; m2 g) |4 S* a6 t1 _. v1 S
    # 填写时区,国内是8
    & ?! k9 r& Z1 d% n' e' R1 K0 H+ a$ ~define( 'YOURLS_HOURS_OFFSET', 8 );
    . B% g! E' J6 l: }0 B+ v5 Z# 设置为中文
    3 k$ E6 b& J) h9 d' q# X5 E4 H0 Ndefine( 'YOURLS_LANG', 'zh_CN' );
    # ~& L% z" x2 i. v$ G/** Allow multiple short URLs for a same long URL
    ' R, {+ p  O. O( ?3 r ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)% I( F& O6 H' E6 q  ~7 o  Q8 `, u; b8 ~
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    ; @. E9 O9 P4 U/ |/ s) R  _7 Ddefine( 'YOURLS_UNIQUE_URLS', false );; {& H+ L3 [) h  M
    # 设置私有权限2 J! C- |! u1 P7 B
    define( 'YOURLS_PRIVATE', true );. L. ]  _  m5 i; Z/ E3 ~, ~' ?, k
    4 j* c# ^" @$ q: A3 B. B! d
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );0 [. B+ K( \+ f# g4 V# ^$ ^
    # 后台登录用户名和密码,一行设置一个,请务必修改4 O5 ]! J) S. X- ~
    $yourls_user_passwords = array(
    8 o, Z( G9 \! i7 _8 \        '用户名1' => '密码1',/ k7 o3 p, l6 T8 S& A; g9 s- @
            // 'username2' => 'password2',$ F9 g  W* Y0 X( D! F. B
            // You can have one or more 'login'=>'password' lines6 ?$ \% b4 R/ o9 z8 D
            );
    6 i2 O4 b) L% O7 U/** Debug mode to output some internal information6 q* ?9 @( p6 j. q& M
    ** Default is false for live site. Enable when coding or before submitting a new issue */0 d7 V! K- p* u, L
    define( 'YOURLS_DEBUG', false );
    * d: {- a; R0 @  w2 ]8 a# 网址中允许大些字母填62,否则填36
    , R" T8 p- M! p* \$ y" l0 {define( 'YOURLS_URL_CONVERT', 62 );2 Q8 [# T$ u: e  H& S  \
    /*) D- G4 N" t2 O. f; b
    * 36: generates all lowercase keywords (ie: 13jkm)9 _/ b& |3 Y+ f- b- U
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    ! D2 O' L  j7 v0 _+ q; h * Stick to one setting. It's best not to change after you've started creating links.
    7 S0 y% d1 E, e1 i *// h4 R) h' v8 h  s5 A9 Y6 f2 {
    # 保留的关键字,可自己添加0 L7 L! m3 i4 H% Y" p8 c& s. m
    $yourls_reserved_URL = array(
    ; N* x* |, V$ l6 [' C        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',( t( V  ^; l) B# A  x1 D1 w
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。: b+ `+ ]& E, {* z& C) k3 Y
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容6 t, I0 w6 Y+ i" b# R/ v- w! S
    server {
    4 B, ?  g) F$ [    listen   80;! k5 g9 P! ~+ F* {  j/ V
        server_name 你的域名;
    + _  k1 D! j( E% x* U/ c. w    charset utf-8;9 T" y0 {5 n7 r/ Q
        root "/var/www/YOURLS";
    1 E+ L7 F3 z) n/ o% I" i# X    location / {4 R9 _3 S( W1 L
            index  index.php index.html;+ O) V9 H( Q0 [6 G; L
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    2 J" d4 P9 [0 B. }' K$ o6 a    }
    0 O" l; P% {' b    location ~ ^/\.user\.ini {
    4 D- i6 b+ h$ Q) N6 \$ \            deny all;: B3 R3 \. P& s/ P+ v- f
        }
    & M$ ~% u% C9 s4 J' z  ^  W    location ~ \.php$ {* C6 ^5 K7 Q) @+ K$ t& t
            try_files $uri =404;
    ) y1 t( o, _9 Z$ ^        fastcgi_index index.php;
    , d, [! B, K2 U        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;& o2 B, |. k! y8 i/ T7 C
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;" Y4 A+ N" l) A! u% X: _0 b; @
            include fastcgi_params;9 h+ K. d7 D4 @7 i) X7 m  q
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;! @+ ^  V) j- ^/ ^( u/ i
        }
    ) H" |/ e/ ^4 K3 W/ d, e  u; {    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    $ b1 B+ p. a; g! ?$ j        expires max;: M( U& ~. Y" P" ~
            access_log off;
    % W& O" L" [7 Z; G        try_files $uri =404;% H2 q; c- j& O8 T7 w: w3 `7 N! r3 G
        }4 G; b* }9 }- {' O% @3 \# `: [' U
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书4 v  B1 |( d6 T" l$ @, G
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    ' E+ {& u: f, ?: M8 w" e浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    6 f$ Z5 f# ~7 N" o: S9 a. i5 u) v, j  A  N- A- L3 u- a
    8 z, K2 ^% R4 u8 D/ H1 l* o$ w! F
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    ; q# d$ U$ e6 t. e2 X* Z2 Q8 @ 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    % s9 c: f+ \/ ?; j9 W首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    6 D: L$ D! _, {3 b* ^+ j
    5 Y+ x; y) B! U4 x4 o2 K5 C
    : ^8 P$ ~! R  ?3 |* ]YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    7 A9 O+ a+ q. a3 p+ a) m' K推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。- a# r1 E8 @' c8 w
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    9 D- r# n' L1 y  Q# [最终网站前端效果图:: z, c. Q! t& z3 W

    1 A' O" c) Z) ~; Z4 s
    8 X4 ^0 n6 h. C8 H8 U短网址前端效果图后端效果图:
    & O$ C8 {8 G2 j  p  W$ l# `1 ]" T$ e1 m' M3 o8 u+ ~
    ) X- a: m& ]) s
    短网址后端效果图相对原版颜值高了不少。+ |, N8 k0 }6 P: e
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表