扫一扫,微信登陆

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

搜索
查看: 555|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。! P9 N* Z) h: S8 v, G4 u
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    ( F8 L5 e% n) @5 d2 ^4 a2 `本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。1 S, B  w& l& R; h, w8 {) w
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。5 h$ |( v- P) y5 {! S6 N' d
    . Y5 x1 \8 E8 O6 C( [  ~
      X' X' m! z% S0 d! F2 u
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:3 H1 Q- w, y$ G( @+ s9 g% o+ P$ z
    # Debian/Ubuntu系统安装PHP 7.4
    # [- k% a" n3 I5 S  |. c& [apt install -y lsb-release gnupg2. Y: n7 q* |! C' F5 K
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -6 U- a' V0 G- v
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    9 u! y& Z$ x' @& Aapt update
    ; @1 _% L9 h- ^9 O8 o9 W2 ^apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \' O7 g6 r2 v$ G) J! ?, S+ ]
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick& Z( I8 Z' o  \. F
    update-alternatives --set php /usr/bin/php7.4
    2 s; E8 U3 u3 v# 启动PHP-FPM
    , I% d) Z, z: k6 ~! h+ w) o6 G1 Y) |systemctl start php7.4-fpm
    & ^' @5 d! F; y. ]* Z8 R* H接着安装Mysql(MariaDB):8 N" ^8 S9 P; ]- X+ |& P+ D
    # Debian/Ubuntu安装Mariadb
    5 @, @+ ]! a6 c. }$ t/ _0 K5 _apt install -y mariadb-server
    " C" V1 ^6 d% n; u0 S% U#CentOS安装Mariadb/ d- |2 K" [6 q
    yum install -y mariadb-server8 i7 O5 O3 l' U
    systemctl enable mariadb
    $ J& x+ y) F) k8 Y$ {; s#启动Mariadb  V- W% i* I3 ?0 p6 W
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    ' e: g7 w: O- g! P" e8 i  N#CentOS系统安装Nginx  L# B  I+ _% A+ J6 Q6 s
    yum install -y nginx
    ! I( w  {: M* k7 [" E* Ysystemctl enable nginx
    ( ?4 X# c" Q3 y. U- D" w4 z& }; N% h6 L#Debian/Ubuntu安装Nginx0 M) _1 V! K' q1 ]6 x) J& V6 c
    apt install -y nginx7 t, G0 ]; u- m- Z* Y+ |# @( v
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    : Z4 R; @$ B9 H8 D3 T2 t 部署YOURLS返回目录部署YOURLS的步骤如下:
    1 R( _6 s. s7 d5 C' x4 r5 J) E1. 创建YOURLS的数据库用户名和数据库:
    - l) N" x3 [% I/ m; |" x# 进入数据库1 e; H5 F3 I) }& L) w# K
    mysql( E, d! H& x+ |. v
    # 创建用户名,用户名和密码改成你自己的
    , J( x+ u# v; `- Y0 Q7 b. d% pCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    ! ]0 D; u& S+ v0 h# D. p# 创建数据库,数据库名字改成你自己的$ T' v  O4 U  j$ N
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    8 u) Y9 {5 _$ T2 ~3 _0 d" t# 赋予权限+ b/ E, M% `! e6 p
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';, p( a, A& v. f- t  l
    # 刷新权限- |# g' e5 C' p! |* ^; U
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
    " N. q+ t/ `( q& n& P( b$ Fmkdir -p /var/www4 s6 j' R4 g  C3 p+ v& p' E1 E
    cd /var/www/' T0 {7 }+ q2 |2 p6 ?
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    * [/ }* G6 M0 F) w" i9 punzip master.zip
    5 T) [1 K  W5 U' Imv YOURLS-master YOURLS  w) J" M5 g( c3 k& F1 J
    # 修改网站目录权限
    ! _$ d7 u8 J0 q* W- e& O# u5 J: Y# Ubuntu/Debian系统
    9 _  N  F7 w  d. i+ P/ U2 F& _chown -R www-data:www-data YOURLS
    . i+ l  [! r$ W. J, d# v' }% r. E) P/ Y# CentOS
    . \3 v8 O/ w$ O5 w$ _7 U& `chown -R apache:apache YOURLS
    : j8 t1 s; W1 I) j# Ycd YOURLS; |. h" _. c' Z" |% w
    cp user/config-sample.php user/config.php
    ' S& L$ X% O/ v. Tcp sample-public-front-page.txt index.php
    " Q8 I! n. w) a# x; Y' H- R3 ocp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    . W7 [: L  k/ ?$ xdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );2 A1 q3 ~) v0 T9 G
    define( 'YOURLS_DB_PASS', '填写数据库密码' );8 R2 J4 ?% k: i
    define( 'YOURLS_DB_NAME', '填写数据库名字' );' c+ P$ v) ?2 l! g: h4 V; c
    # 这两行基本不用改
    # [' s* Y0 x, A8 P- Ydefine( 'YOURLS_DB_HOST', 'localhost' );
    $ F+ V- c  G$ K5 a7 ]) m+ Tdefine( 'YOURLS_DB_PREFIX', 'yourls_' );$ Z: q/ f0 B2 K* w2 v5 F* M
    # 填写你的域名,不要加www形式
    : W! r) j  h( K$ W& Sdefine( 'YOURLS_SITE', 'http://你的域名' );3 L& I( E0 v) k1 t
    # 填写时区,国内是86 U+ T6 y3 [6 @8 {4 O0 n
    define( 'YOURLS_HOURS_OFFSET', 8 );
    : Y; S: h% D. N) P  M# 设置为中文
    # \# u% B+ a8 u; G$ R$ i0 Fdefine( 'YOURLS_LANG', 'zh_CN' );3 q0 P9 v( }. T, u: D
    /** Allow multiple short URLs for a same long URL
    5 P$ ?* ~. R+ s  M/ L ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    / Z# u/ |. |: I! l9 n2 D1 ` ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */9 s4 b6 D: K& r8 c9 {9 g4 E2 R  g6 W+ n
    define( 'YOURLS_UNIQUE_URLS', false );
    6 x; x$ u+ P1 S) ~# 设置私有权限5 W$ E& T! g) v) m
    define( 'YOURLS_PRIVATE', true );* @' B; C1 X' k9 C1 i$ f# @" R
    ; s1 @. N7 I, X! t, ]& \: ^
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );+ r; v/ s9 D& t5 g* T- u! r" P9 }
    # 后台登录用户名和密码,一行设置一个,请务必修改
    8 d4 {* n2 K/ G7 `6 M! U$yourls_user_passwords = array(! S3 g& N7 ~+ e/ d  @' o
            '用户名1' => '密码1',
    4 s' O' k7 y% e" F- I        // 'username2' => 'password2',4 e7 E: t1 {, B, z, n
            // You can have one or more 'login'=>'password' lines. V+ Y6 h1 n2 I' p, P, d5 u1 c* l
            );6 F- F3 v% r& p( m
    /** Debug mode to output some internal information$ T+ w; G6 R3 a, P0 |
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    - ?! v6 A, O4 l& J4 Qdefine( 'YOURLS_DEBUG', false );
      r& s+ A0 f) \1 U# 网址中允许大些字母填62,否则填36* \) j7 U- ^* Z
    define( 'YOURLS_URL_CONVERT', 62 );$ |: j0 ~$ |: Z9 T5 p6 \$ H
    /*% f" g% X# P  Z+ v" B) {! F
    * 36: generates all lowercase keywords (ie: 13jkm), N$ \, k8 G. B8 ?5 H+ r
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    # A3 `! ~$ @$ @, ~# E% Z * Stick to one setting. It's best not to change after you've started creating links.1 l; C* U* Z, G, z+ N" y: t
    */! ^" k3 l! N+ @
    # 保留的关键字,可自己添加
    5 w, @" c  _( x& ?2 Q/ Q$yourls_reserved_URL = array(
    . [7 x7 d3 ^# H2 z$ V        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    . g4 h- G$ L' D! }; @);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。0 i7 U4 a( q: F
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容. t0 N; I6 Y3 y: _: g* t# Q  J
    server {$ v& |; Q6 S" Y9 F* w9 D
        listen   80;
    % c  c, q2 d7 [    server_name 你的域名;
    ! [6 M' h  F- q6 A$ c! q: {& A    charset utf-8;
    . X; v. s9 @: k- m, m8 f    root "/var/www/YOURLS";
    % i0 K. ~4 N8 j9 |1 ~8 j1 i  r2 M    location / {+ x% D$ {5 `5 g1 I) f; Y! X0 L/ M
            index  index.php index.html;
    % G" }  ~3 w, m8 f2 z# {) v        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    & _/ E4 U* G  u$ x9 g5 h  _" o  {    }. `' @* u! K. z5 z! v; J7 c2 H
        location ~ ^/\.user\.ini {
    + A- ~/ t8 _. G2 }5 y$ [            deny all;
    8 H1 Q3 q5 e; @# v/ L: @& e6 P. `    }
    . Y3 L6 M' e5 o, m& c    location ~ \.php$ {7 v+ h/ ]; w6 O% y9 \4 h5 X
            try_files $uri =404;1 Q/ b, }  J8 y
            fastcgi_index index.php;
    , C& l: {/ {& T' N) L) Y6 j        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    & d, q/ i$ I1 d$ W6 s        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
      L5 g' E( J" t: @3 |$ z        include fastcgi_params;: g) ?9 v% B5 z4 o
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    " s  Y# I0 u' a8 Q* ~8 I    }
    ! x' t/ c/ c. a0 b4 n; {# A% A    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    / [+ c/ g, K$ f        expires max;
    7 n! \6 l1 H, J: D# q1 C        access_log off;
    $ m, S8 \3 ~3 Q( ]! u        try_files $uri =404;7 w- [- G! ~3 o/ p& W
        }4 E4 `' v& `) c  @/ ]: C
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    / T% ?8 T2 M4 ?( K6 J
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    ) w8 t- H- K. B  i) W/ C浏览器打开你的域名,配置正确的话应该能看到类似如下截图:3 U7 T9 w) }) F+ j- R2 K
    ; i7 k# Y; ^# z
    3 k7 y$ k3 K( l
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。- [0 U! `6 Z+ ?3 O
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    9 g( A- j: a) J4 ]/ o. q首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    3 C# S: ^  `0 T( @
    $ E5 y* j0 |0 q9 v6 h4 w; x  _* ^) W9 q* q$ q) j) ?% y9 ]9 {
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。9 I+ O) T7 T4 |( F1 i
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    ) ]& U5 H% c+ _3 W) iYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。3 j6 p" ]1 c1 h( S: ]1 u
    最终网站前端效果图:2 O5 P1 `3 `2 f7 w9 s, F

    4 k9 ^* {/ ~0 o
    0 g' `/ A* ~* ]短网址前端效果图后端效果图:; j' d8 {( a- R" ], h% |: A/ N9 i
    * R; }# \# n( \3 S. F) [( A( m

    / J# ~6 i# N: S8 [+ q  b短网址后端效果图相对原版颜值高了不少。( V; M( |* ?( D0 s" f, @
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表