扫一扫,微信登陆

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

搜索
查看: 734|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    0 }2 t4 p7 h# \9 B2 ^& }8 E+ c经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。7 ?# m2 q( X7 p  m( e2 t
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    " s) t6 g- u! s; y4 T" } 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。8 e' p* h- O) Q' k
    / s+ y. T; A9 F3 C9 N% }( e
    4 X0 B+ |" ]0 Z2 ~. E+ Z
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:1 W7 R+ i9 V  L( B8 |
    # Debian/Ubuntu系统安装PHP 7.4
    ! J5 J( d0 U, V+ Mapt install -y lsb-release gnupg2* R7 r3 G0 v; N" I0 K% a
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    ; {1 [, g3 }6 }; M8 qecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    & P' c' o0 o) G0 F1 T8 p$ sapt update* {7 {# r: w  c7 V# P8 d2 S( _5 Q
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    , p" {# `; K& K. V, y php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick% @5 J- a8 ]/ k& x1 y6 @* v: {
    update-alternatives --set php /usr/bin/php7.4+ w: s! a- @0 k
    # 启动PHP-FPM
    8 W. X  `# q' h: P$ Isystemctl start php7.4-fpm
    $ x9 W$ n- t% B1 [# p( `4 Q接着安装Mysql(MariaDB):
    9 L9 y' h: E+ k( W1 t5 f* M  R# Debian/Ubuntu安装Mariadb$ |8 k! d5 W* l. B! `% H1 O2 G
    apt install -y mariadb-server
    / {% l: d; i# q4 j#CentOS安装Mariadb
    $ B* M9 @& W! t% w. Ayum install -y mariadb-server
    " p: m0 z9 R& u. Hsystemctl enable mariadb8 W6 j$ g8 w9 q
    #启动Mariadb
    0 r# y3 _! u, n: e5 F) R1 y) P/ qsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    6 t; j" T# O  z% y#CentOS系统安装Nginx2 g8 q* W4 W$ u' M: ~( Z9 L
    yum install -y nginx7 a0 v7 r' o; s3 M' q  B; z2 o& {
    systemctl enable nginx0 e6 b& D2 [. A3 N: z8 B
    #Debian/Ubuntu安装Nginx4 j2 J9 Y! w6 L8 v, `) Q
    apt install -y nginx* I; l* R3 t/ |6 z2 \
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。2 e/ J+ z/ y* U6 k# t* X; F8 e$ t
    部署YOURLS返回目录部署YOURLS的步骤如下:
    . N8 e* s. E) l" D* N5 u1. 创建YOURLS的数据库用户名和数据库:
    1 d: q# @* {; O5 W* N- C# 进入数据库% L$ A2 ~3 v- v- g& N
    mysql, q) \! I  Y/ p% C8 ]  q
    # 创建用户名,用户名和密码改成你自己的
    3 }; L) g1 z- {: m' O+ VCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    2 y9 {, l+ A3 [$ C, a- e# 创建数据库,数据库名字改成你自己的
    ! i. [9 k) o  E7 \- yCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;7 v' e( P8 d9 ~( |$ L
    # 赋予权限; v; J& A; y2 G. Q8 f. q; Y
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    3 y% I! N+ N6 S$ ^1 F! K" o8 k  z# 刷新权限- h! P% l# ~7 v$ \- _( d& v  @1 p* z
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:1 L# ]: p+ K6 a9 A" `) Y
    mkdir -p /var/www
    - t/ [1 w6 w" h7 I8 f+ p1 C+ ^cd /var/www/
    * j( O. J; F( K5 L! Bwget https://github.com/YOURLS/YOURLS/archive/master.zip
    " y0 z( O2 w, Eunzip master.zip
    9 C( A) }: G; H/ H$ }9 ~mv YOURLS-master YOURLS
    ' g! e# {$ b( ^9 v' J) P3 ^# 修改网站目录权限3 r% t7 [. u  ]! L; q4 v
    # Ubuntu/Debian系统& u; \6 t7 I7 l1 a
    chown -R www-data:www-data YOURLS; a7 V" M8 [$ x* x) z. e# ]
    # CentOS
    & W3 G0 @1 m2 _0 K; {chown -R apache:apache YOURLS
    ) z* o) b# x5 d- \- z# pcd YOURLS
    * r$ ]: a; P- ^7 k# jcp user/config-sample.php user/config.php& X( E' l+ E3 W5 z3 @" G( ~
    cp sample-public-front-page.txt index.php- x0 c. Y3 ^. N$ [8 [5 p6 w
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:) \" k+ E$ \7 V' T/ ^( y3 Q0 a
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );) R2 W5 a0 S6 ?3 }
    define( 'YOURLS_DB_PASS', '填写数据库密码' );+ g) {6 h; w: @) D# I5 r0 T
    define( 'YOURLS_DB_NAME', '填写数据库名字' );  g, p  x8 ]% K7 _1 j0 a$ `
    # 这两行基本不用改
    / r. V# X" A8 a- Edefine( 'YOURLS_DB_HOST', 'localhost' );
    # d: k$ @! z* J$ e) cdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    ! ^! T# b  J2 U3 v% S% b5 n# 填写你的域名,不要加www形式
    7 }& X0 r  R- ~9 K5 z) U* `' K; d( adefine( 'YOURLS_SITE', 'http://你的域名' );
    0 ^& B9 N! w- q- }4 H" _# 填写时区,国内是86 \2 ?7 q$ t9 V9 ~, S1 N( [
    define( 'YOURLS_HOURS_OFFSET', 8 );0 J! U( \' |9 }& U+ W- M9 i) S
    # 设置为中文- V, p4 ~4 R, G
    define( 'YOURLS_LANG', 'zh_CN' );6 B4 l2 e7 @9 U
    /** Allow multiple short URLs for a same long URL
    $ C) m# c! \8 d  t) F" f# g ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    . l/ O2 ?0 f& L# T) E1 C: N3 N ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    ; F5 z& u( b2 {% k# @5 Mdefine( 'YOURLS_UNIQUE_URLS', false );. G+ G0 q- u% w6 J# _
    # 设置私有权限
    , b0 y! h  K- i- F( a6 s9 kdefine( 'YOURLS_PRIVATE', true );
    ' G, ?3 {- T! s. z+ w( \5 a7 B) o9 B( J$ t' j( }
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    5 Q/ }+ U: q$ _7 Q& U7 u# 后台登录用户名和密码,一行设置一个,请务必修改
    / Z- C; Q; o* M& O5 y$yourls_user_passwords = array(
    6 r2 X' Y9 j+ J% B- i        '用户名1' => '密码1',
    ' O/ ^4 P) u7 O2 r3 |0 u3 D        // 'username2' => 'password2',' }+ I# V2 ]: j1 H- a$ o
            // You can have one or more 'login'=>'password' lines
    ( j, k, e$ z7 d- k' I+ p* e, c" v        );2 r; H( t' U( L( i( Z2 D
    /** Debug mode to output some internal information
    + G3 F6 U5 I/ r ** Default is false for live site. Enable when coding or before submitting a new issue */
    ; `1 B! v( y' v; \8 Odefine( 'YOURLS_DEBUG', false );3 ^4 y& S( c0 u
    # 网址中允许大些字母填62,否则填36
      C! C4 m/ `2 C3 R* ?0 `define( 'YOURLS_URL_CONVERT', 62 );: P- L. T. Z$ Z* n) ]
    /*2 Y+ T$ J% e- ~( {
    * 36: generates all lowercase keywords (ie: 13jkm)$ ]4 g7 J( j* Z% e+ p
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)- V) G$ X+ X* U; F! c
    * Stick to one setting. It's best not to change after you've started creating links.
    4 C: U) g4 s7 m */. N- g5 R4 H% {& t7 m' I# R
    # 保留的关键字,可自己添加
    9 Y) v, d/ R  B2 N6 x% H9 d% F$yourls_reserved_URL = array(
    # j( `& M: u! x0 b0 }& Z        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    1 j+ T; j0 h, X6 J5 q);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    ) j7 M: J- g1 }' h6 E4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容' Y3 X: Y% {& o1 n  N
    server {, y2 R$ P  A0 }! n& d- C
        listen   80;
    2 M: ^0 O8 F* T4 \2 U    server_name 你的域名;# I# `( ]$ C# W9 w5 X
        charset utf-8;6 I  G* R) L( [* [! O+ l
        root "/var/www/YOURLS";  I& {2 Q/ r8 i$ `. l* b( ?0 n
        location / {
    - d. C. }% x; K& f6 z& I- r        index  index.php index.html;+ K0 M; i& r8 g& H
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    + _8 j7 g9 H# P    }: m9 A! w9 A  S& k( q
        location ~ ^/\.user\.ini {
    2 N; [, t4 I. B0 a% w5 T            deny all;. `( Q$ q/ R; Z  ?/ K0 t+ u" X8 S
        }5 c4 V) J0 G, o! J, U% z3 @% y
        location ~ \.php$ {
    % o6 l, R- F7 B6 o6 H        try_files $uri =404;
      h8 L! y; ?: E8 ?        fastcgi_index index.php;! H$ h1 i; v, h
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    . b% A5 p7 C3 f' S        fastcgi_pass unix:/run/php/php7.4-fpm.sock;6 e& @3 @( y4 w8 A6 Y. u' L' y1 r
            include fastcgi_params;  W3 l$ b7 ]' t3 V& a& o
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    7 o; G) a' v. T    }. A. p; i# j; K  @- o
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {& a/ b8 E7 T% @5 r0 g, N8 y
            expires max;
    & }* F; b2 W! H6 F9 i8 ]/ [        access_log off;
    - S" {* C3 U  P3 z3 z( ~! W) \3 R- p        try_files $uri =404;) g, t7 ?- x% M6 K8 Q* c  Z  C# }
        }8 I; F0 K: m: W8 g
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    3 P* {  o+ Q7 X4 f' }
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。& I4 J2 F8 l7 Q
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:& N  U% Z4 ^7 s
    0 m, ?5 c' ?/ P/ A7 X
    ! a# [, p6 Y7 }1 b: {4 I  r, C
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    2 d5 w( ~4 D$ i8 S/ Z$ U 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    - u* L& |/ X+ F; G首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:. k0 x! y/ D5 F: t! }3 U' Y" s
    " j! |  W" v# S- [) `% S
    1 R" i" t& f$ O# {" K. {. U
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    ( z: r7 P! {/ k' m) E推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    ! k2 ~& x7 n" L9 t  Q$ A- n* lYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。# H; ^/ N) ~  G
    最终网站前端效果图:
    5 u% @  a1 t' L) q
      S$ K0 s1 T' ?% y5 X7 h! x
    2 G6 j* ^1 G5 w3 u2 F, d$ K% I短网址前端效果图后端效果图:3 Y( O1 L- h. t* K8 s2 B9 g
    9 B- y0 ^  C. U5 r! M. u- ?$ j

    / ?) n- J. C5 G& l1 P短网址后端效果图相对原版颜值高了不少。
    ' k9 k! ~/ B/ Y* v9 j. q 参考返回目录[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号 )
    快速回复 返回顶部 返回列表