请选择 进入手机版 | 继续访问电脑版

扫一扫,微信登陆

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

搜索
查看: 1007|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。+ H4 C$ H1 w3 h
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    8 ~/ S2 X' F3 X% w本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。5 c4 o2 a0 H! [, u. A* H
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    1 `9 d4 ]  q( G# t0 Y* Q, I* t5 m$ m. i7 Z8 W9 _! N
      N! N2 R+ Q1 \# @
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:0 J7 `1 X; W6 `8 Z
    # Debian/Ubuntu系统安装PHP 7.46 D8 _9 w1 U; X# ?
    apt install -y lsb-release gnupg2
    * i$ s, \* k3 L) \* d/ P. Q. Xwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    9 r- h' E$ Y/ d3 }1 Z3 [3 Fecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list& M' {4 r" L/ F$ l7 V
    apt update$ y, G' ?7 u1 w9 {
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \: I' \( a# l) }( F4 b8 m" V5 ^
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    1 s2 H% Q$ Y' i/ g; R$ f& _update-alternatives --set php /usr/bin/php7.4
    ' X: b8 n8 B# e/ Z' s0 H, R# 启动PHP-FPM! C' C. C% w6 y0 x
    systemctl start php7.4-fpm
    - @% ]# J, m9 \2 |接着安装Mysql(MariaDB):
    - f4 D* v) F; Y' U" t# Debian/Ubuntu安装Mariadb0 B- p% N, t/ H& `! V4 [- A
    apt install -y mariadb-server" ~; ?4 Z% N% }
    #CentOS安装Mariadb
    # c* D$ c- {3 J0 k" w; c5 H2 ]$ F3 dyum install -y mariadb-server
    " q' u: N$ w2 \systemctl enable mariadb* x7 w5 ^9 ?' F; S
    #启动Mariadb
      g, b" l; J( @  B, S0 c% m# N' lsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:! e& r& g! b9 V( k+ L% ^1 m
    #CentOS系统安装Nginx
    / i6 [" H# y  M0 @+ lyum install -y nginx( @  K; L: R4 y, u& p
    systemctl enable nginx
    ; g' D$ K, \, @: m; l0 L#Debian/Ubuntu安装Nginx: m$ F# b3 P" G; d5 i; p
    apt install -y nginx+ M: ?7 G' q% f$ \4 d
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    # U" y# c) e( Y  B7 q 部署YOURLS返回目录部署YOURLS的步骤如下:$ `& K7 h- {. |
    1. 创建YOURLS的数据库用户名和数据库:6 Y, ]$ X) L0 p: o- ]2 [3 R
    # 进入数据库9 l) d8 ?6 F  ^8 ~
    mysql
    . N" y$ g9 E7 \- X+ L, G# 创建用户名,用户名和密码改成你自己的6 Z0 U: [" D1 a; R9 `9 N
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';, s4 J" W: T9 ]; L3 |$ i
    # 创建数据库,数据库名字改成你自己的3 e4 I- y, f- _% P1 t7 Q+ J3 P
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    6 M- |+ m  s+ z( g8 d( n# 赋予权限1 j( X5 ]# Y0 E5 M
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    + F& l+ C( H! M  X9 ^+ |/ z9 V# 刷新权限
    2 \/ s- F  }( qFLUSH PRIVILEGES;2. 下载和安装YOURLS:: B5 E6 u) J0 ]3 q; I# j
    mkdir -p /var/www+ F8 N/ b; ?' `5 A" L; i- y6 r
    cd /var/www/
    0 a7 `% e, ?; [) K, Z  Rwget https://github.com/YOURLS/YOURLS/archive/master.zip
    6 q1 W& C# C6 K  funzip master.zip
    ( d6 V0 A( S" \1 x: Q5 \9 y  Nmv YOURLS-master YOURLS
    ; T8 [: P  s( [  ~# 修改网站目录权限3 c9 ?* M+ o: A* y% u. w
    # Ubuntu/Debian系统
    ! E* M2 Y$ Q* y& [! @chown -R www-data:www-data YOURLS
    : k8 q! j; e% c3 a) E# a# CentOS
    ) M7 L5 n+ L0 pchown -R apache:apache YOURLS
    # R# `' x; P/ d5 u/ Pcd YOURLS- L1 S' K6 V" D# Q! L8 F
    cp user/config-sample.php user/config.php
    0 y" z* H: V% |+ \cp sample-public-front-page.txt index.php4 t. D% d: E) d$ o" r0 V
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:3 }8 J/ \3 p+ g- J
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );1 x, g! e% E! f' O/ S$ O3 Y' _6 D
    define( 'YOURLS_DB_PASS', '填写数据库密码' );* e0 I. g5 r4 ?. i6 z0 J7 Q
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    3 t/ I4 b  F8 q, G" V0 _, j# 这两行基本不用改3 U" l; G1 d( ~8 |) b
    define( 'YOURLS_DB_HOST', 'localhost' );
    ' D, j. S, t3 r* M8 N6 N* M0 _define( 'YOURLS_DB_PREFIX', 'yourls_' );" k& J% u, ^% h! K
    # 填写你的域名,不要加www形式
    $ U  D+ h) ?2 a, N1 F! ?, L% @9 gdefine( 'YOURLS_SITE', 'http://你的域名' );
    " K8 h) h0 }+ o- Z3 ^  H$ k8 J. u# 填写时区,国内是8% W( l  {  t1 X
    define( 'YOURLS_HOURS_OFFSET', 8 );
    6 f3 y5 P1 Y6 p3 Y5 G6 q# 设置为中文7 v9 E1 o2 I0 p7 _
    define( 'YOURLS_LANG', 'zh_CN' );. |/ b+ k/ k. j3 ^; \7 k+ t
    /** Allow multiple short URLs for a same long URL  c; B. k$ E. R& Q
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    ; [" o2 Y9 e- r: d3 m. \ ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    8 E: ^4 Y( l7 Fdefine( 'YOURLS_UNIQUE_URLS', false );
    ! |, `6 @8 x* [' n( Y: |$ y# 设置私有权限- ]1 T; e5 W$ a# T, O2 K$ E7 e
    define( 'YOURLS_PRIVATE', true );
    4 w) E# r( Q& C; ]
    8 f) |8 u, l4 h; ?- W; Zdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );1 Z5 J  k& h! l4 |
    # 后台登录用户名和密码,一行设置一个,请务必修改
    2 t2 B  @  z) s! |  K$yourls_user_passwords = array(
    6 \3 N% w! B/ v0 h        '用户名1' => '密码1',+ b+ d8 `" i0 t- i- P+ B" [( Q
            // 'username2' => 'password2',
    2 o9 Q8 P0 z) z0 u' A( [        // You can have one or more 'login'=>'password' lines& \% ~1 q2 c7 Z" h- o5 S/ ~
            );$ t# _# ]( W# `# N
    /** Debug mode to output some internal information
    # x$ z  S& I9 P- u* C) c+ @ ** Default is false for live site. Enable when coding or before submitting a new issue */: d/ D( J/ p4 }5 J2 }# g
    define( 'YOURLS_DEBUG', false );- z+ x4 x0 C8 J
    # 网址中允许大些字母填62,否则填36
    $ t' D' \) n3 o' W9 Tdefine( 'YOURLS_URL_CONVERT', 62 );5 }) B: d" g! F2 V& f" E2 F9 Z: x4 O
    /*
    1 {6 W+ `9 p% k9 Q& `# g# v# ^( x * 36: generates all lowercase keywords (ie: 13jkm)+ S9 w# a! Z) p: e; o. W9 {
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)' }# `: q& c/ {3 [' |( I9 e  p
    * Stick to one setting. It's best not to change after you've started creating links.$ [5 q4 `' T: n: `8 w
    */
    ) {  l  T( y+ y+ D# 保留的关键字,可自己添加
    4 n' L. l/ I6 f8 W7 [7 Y: A$yourls_reserved_URL = array(
    % J% T2 a6 U0 @3 x) w& X4 p* h        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    % g: [! ~% v3 b0 `, E% k! });接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    , N% s% H: a' o# v1 N+ L4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容7 w2 ]0 `" u2 a) ]
    server {# o3 _1 d, Q  G, M# a
        listen   80;
    $ F  E0 _' o, l$ r$ V+ a' f    server_name 你的域名;7 u" r# O+ b7 c7 Q, S# ?9 b: Y7 ?( k. o
        charset utf-8;  B1 }+ e5 |* a  o/ C% J+ o  e2 b
        root "/var/www/YOURLS";0 R! P( b2 I1 \; \
        location / {
    * [! F% F2 {! Z: n+ ?! \        index  index.php index.html;
    ; ^. @3 w& Z4 n$ p1 y8 i) Y6 d2 O$ f        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    . }4 S/ G9 x6 g/ l/ T    }
    2 ^4 e3 A- O# ]    location ~ ^/\.user\.ini {4 x. c" m8 E& d1 @3 F1 d+ d
                deny all;
    1 q* N, P0 v3 B( l2 [4 g    }3 ~) a, s3 ~7 e
        location ~ \.php$ {, w* F+ ~/ A! O, y( t
            try_files $uri =404;* b1 v. S9 [% W' Z) Q2 @
            fastcgi_index index.php;
    ' K: C1 W2 \) k# |9 \3 f        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;: z; J: S3 M/ i, U
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    - P7 S8 w) W/ t! Q: a7 Y4 b1 i        include fastcgi_params;
    ! K0 t' r" D! D' V# g  h( o* N        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;, j0 B9 P( ^1 `' \7 K" h
        }( X2 @( F0 M* g2 v+ m# a; D7 K
        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, G3 _( n' }: o        expires max;
    ( A- b' h; O" P; P( Y( E& n9 r7 y        access_log off;
    7 C% a! O* X1 ^8 }0 h0 b        try_files $uri =404;
    ! u0 g' {- U/ @0 i4 I0 k; y) I    }
    4 A7 M5 A+ }) m* t}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书% e0 E) m, X1 w1 H
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。( ?% c* m7 |* [+ A
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:# ^, N. m' ~. c. d; c

    ; y$ T) {) G4 v1 X$ [8 D4 q6 [7 ^( C" o3 n0 [. O6 W1 a! H
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。+ E5 U; r2 e1 o7 o' F# {+ R5 \
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    5 `1 i2 `/ g" E" j首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    $ Z& ?) d# v, j* f: q* S$ m% f  u& \! |3 a% ]6 z

    ! V8 h; b: K5 m3 aYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。. K" D) G) v5 |: R
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    , q1 J4 Z. m/ PYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。) I, R: t: }+ y1 ?
    最终网站前端效果图:
    ; ]* B" F5 ^/ T& |0 C1 p" H. W% v- E' A" n% E
    , {9 x  a) N( A, l2 z- c  W: U  D0 w
    短网址前端效果图后端效果图:5 I/ g4 ]: v7 {

    8 g' g7 P( W+ P7 Z7 r/ i
    " e+ i' l" t& q短网址后端效果图相对原版颜值高了不少。% [. _4 y$ g: J( A- N3 ^
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表