扫一扫,微信登陆

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

搜索
查看: 1016|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    0 k  @) ]% c: N3 \! D- P, l经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    # J2 g1 K0 [/ F! u! y/ J; n) _本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。2 n: L9 w  b2 a' _9 e+ S, g, L
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
      u: T( N3 Z9 D! |5 p& k. O5 `1 U
    4 f# Z1 k: y# l( m1 ~8 j2 G$ Y* G* i6 g: Z9 f
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    0 R$ ]* F8 x1 R# Debian/Ubuntu系统安装PHP 7.41 a% F7 R: o) z% H: }4 V
    apt install -y lsb-release gnupg2) O! k4 b: @0 M& }
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -/ A$ B- O$ X$ w" Y/ I; _: K
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list2 `+ x; X" b  u" A1 S; v
    apt update
    1 n% Y. O% w4 K# }: O9 \! k4 }apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    9 H! u: W3 L# `, H1 O) ~ php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    3 M+ f' V( N; M+ _. N$ Aupdate-alternatives --set php /usr/bin/php7.44 Z5 s- D4 c# F- ^5 j! Z
    # 启动PHP-FPM( z3 F3 x% t, ~0 R6 }; I& J* ^
    systemctl start php7.4-fpm& C: _- L& z# f+ `- Q( z
    接着安装Mysql(MariaDB):
    ) b- J3 z. ~2 ?# Debian/Ubuntu安装Mariadb
    4 g" p9 ?1 A- d# `7 k7 s) Sapt install -y mariadb-server
    4 @6 ?3 F0 a  m# c- f- h9 j#CentOS安装Mariadb  V1 ~* E8 n9 b# j. t; o. U0 i
    yum install -y mariadb-server- d  b- n& M, g, e* r
    systemctl enable mariadb4 J* p" b' h  R/ Y/ f' h- r
    #启动Mariadb5 h  g+ z* X: z- k# a0 T
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    : Q3 Y2 W: ?) J5 Q# j* _; a#CentOS系统安装Nginx
    0 W: g; L( P& L2 Nyum install -y nginx* h' L( }: x! b3 d# ^
    systemctl enable nginx
    $ [0 [4 Q: ^0 n#Debian/Ubuntu安装Nginx2 ]/ n) v( E# Z) H, y  w+ M5 i
    apt install -y nginx
    ; w& T+ R: v' E$ B安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    3 o# q* M3 M2 X. _. D 部署YOURLS返回目录部署YOURLS的步骤如下:
    7 N+ D. \! l/ d1. 创建YOURLS的数据库用户名和数据库:$ x* M6 _7 }6 R8 y
    # 进入数据库# s/ ?, V0 }/ m  h$ e6 ?$ `
    mysql. A1 [5 q! |- ?3 ^+ \. `1 l7 ?
    # 创建用户名,用户名和密码改成你自己的# ]& O; e8 c% G  O) R/ o
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    - y* ^* ~7 R# u/ o  |* v# 创建数据库,数据库名字改成你自己的
    ! g  w/ o! {1 O/ _* G. iCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    0 H, Y! X; w+ [1 U5 t# 赋予权限
    . C0 c$ P' t$ E0 CGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    . \1 h$ x  D) y. s4 ]1 |# 刷新权限( |, l; w8 f# W) s7 n( j
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
      `) b1 o9 I, u+ O# ^+ y/ |, M7 y, Omkdir -p /var/www$ h5 J- R' \% M! p0 w+ ^! m/ I
    cd /var/www/
    ( a1 [5 I8 d- d) ~9 I+ dwget https://github.com/YOURLS/YOURLS/archive/master.zip0 z( J8 @; c* X( J# g) m' b
    unzip master.zip
    4 y! I$ l4 [7 @; D$ a- i' B, \5 Jmv YOURLS-master YOURLS
    7 b! p+ `. j0 M+ S% X# 修改网站目录权限
    ; X4 D2 Q$ q+ u8 X# Ubuntu/Debian系统- Y5 P% R0 v# _
    chown -R www-data:www-data YOURLS
    $ U: l3 D( s1 Z( S# CentOS
    ! \, ?6 b: _# c. achown -R apache:apache YOURLS
    + [/ ]5 F2 I+ l" |cd YOURLS0 H  n* F- _5 |) b0 h# U
    cp user/config-sample.php user/config.php
    . \2 ]! ^1 O; M! F' Ncp sample-public-front-page.txt index.php
    - L( M# n9 B1 ^! ^/ t: s6 E' d- e6 scp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
      i; F4 U2 R0 ~( Zdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    " s6 M1 A$ R) C, H4 L- Rdefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    / W" T! Y' v' _' |, a2 }9 u3 R" kdefine( 'YOURLS_DB_NAME', '填写数据库名字' );2 u5 z# D- _* _( n7 W, o  V
    # 这两行基本不用改
    , v0 P% S$ N9 {0 H1 Adefine( 'YOURLS_DB_HOST', 'localhost' );
      H2 Z, ]7 d% ~6 {5 T6 Jdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    & m  Q1 ~$ @" r: m5 w9 x# 填写你的域名,不要加www形式
    , J6 Z1 ?+ C$ v* q7 W8 Ldefine( 'YOURLS_SITE', 'http://你的域名' );- j7 V0 M8 N$ C7 [" n) e, ~4 s
    # 填写时区,国内是8
    & K# T7 q4 W) S- Zdefine( 'YOURLS_HOURS_OFFSET', 8 );# B0 @9 Q. n+ F$ t  P- B2 q% t( i( i
    # 设置为中文
    % v( Q) _4 d# U5 m0 f8 g% q7 odefine( 'YOURLS_LANG', 'zh_CN' );
    ) A/ T. X: D2 S7 s/** Allow multiple short URLs for a same long URL, I" R% d2 |5 x2 Q* p" E4 ^
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)7 h0 p) a! T- R3 s  C$ ^7 M
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
      k) S1 B% z  C1 w" C' z3 s) Hdefine( 'YOURLS_UNIQUE_URLS', false );* S" |" Y6 ?: i( r0 R
    # 设置私有权限8 Q) F9 u1 X) I0 X4 E/ e
    define( 'YOURLS_PRIVATE', true );9 M6 N2 ?, j- Z. k8 g

    * i5 B: e6 U# A6 Jdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    0 W" E- @* y' M" x0 a# 后台登录用户名和密码,一行设置一个,请务必修改
    # g( g. ]+ x# X+ Q3 D+ u# z, T( n! i9 T$yourls_user_passwords = array(
    ( ~6 K- Z+ ?- U1 h        '用户名1' => '密码1',
    & W' f# H7 G4 j9 j3 h$ `: z        // 'username2' => 'password2',
    ( G3 ^& g& o7 w, e& k; v% t        // You can have one or more 'login'=>'password' lines2 i; F" i9 |8 Y% C$ O& G, O
            );2 I1 u+ D' [6 A$ v! o% {; y
    /** Debug mode to output some internal information
      z$ W* o. P: x ** Default is false for live site. Enable when coding or before submitting a new issue */
    6 n9 x2 B0 w4 ^  f% p' v* Edefine( 'YOURLS_DEBUG', false );. j2 c2 t% h# a2 M+ ]
    # 网址中允许大些字母填62,否则填36
    9 M1 R; t1 @6 {/ Ndefine( 'YOURLS_URL_CONVERT', 62 );
    2 f6 v# F7 _4 ^& G! h/*
    0 ]$ E% {0 \2 N/ m * 36: generates all lowercase keywords (ie: 13jkm)/ P, q! d8 P- O* H& N
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    / J! N' s- J$ q4 q5 H- p * Stick to one setting. It's best not to change after you've started creating links.: x0 L3 e( R# q. r) D+ O
    */
    * @) o/ `) F; r* d. E& s+ I# 保留的关键字,可自己添加
    4 E9 u3 B% R7 S6 \$yourls_reserved_URL = array(; B8 `1 A* a6 T0 s/ V1 E$ R
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',% X7 D) j, O  {% f& G/ r( z6 p. u
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    + q% ?5 _: K  {' g( L4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容+ }0 p8 e9 B# D4 ?- e
    server {7 w7 L, `$ k- u, [3 |
        listen   80;: |, p4 `4 @7 r" @
        server_name 你的域名;& x' G! l( ]- @! h& B% s3 o
        charset utf-8;$ e7 H, O9 ]; a7 ~' n7 m0 G
        root "/var/www/YOURLS";
    + Y: x- j1 s- W0 P" \5 n6 M4 U    location / {5 a1 I& k) i/ q: X! n
            index  index.php index.html;; L' W; t' i8 c7 a0 ]1 d( q9 z
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    / e0 T% N+ h& I  G. I( ~    }
    6 W7 K# O( J9 t+ ^: c8 f    location ~ ^/\.user\.ini {0 [1 [) L1 l5 [5 S" ^* l
                deny all;; r+ N& c. l. `6 [! Y% G% D
        }
    & o3 k: m' Y" c$ h8 k% c+ |# s5 Q    location ~ \.php$ {$ @; j1 p  Y5 J+ H7 j; ~3 d  {& `2 G
            try_files $uri =404;! _* p/ a! Z+ Z. N" N5 L  u! x4 ]
            fastcgi_index index.php;3 A2 L' M9 H8 c6 U) D& f7 D
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    . u# w( f, b+ z$ W& \5 M. L        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    " ?9 l- A  F8 o. g: @        include fastcgi_params;4 Z" M+ o4 F; \' g; R! F
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;, x; Y3 x" E- T5 u$ s1 \0 }
        }" [) Q" }: {, }. Z+ Y& I, n
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    0 E7 D8 ]- w. U. J0 e        expires max;' Z% M2 o/ S% W5 O
            access_log off;- J3 ~( v( O4 x6 J3 v5 A
            try_files $uri =404;
    + S9 Q. \0 \8 H2 L  t3 G    }
    4 S0 H+ M) M3 w2 }}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    % [/ o+ x8 {0 J" \; y$ X1 t
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。+ p% j4 W5 H! e& q  ]: e; E
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:6 f2 U: E" J8 c7 B) L7 l

    2 \; f, k6 H: {% Z! t8 w4 f2 b5 ]( M/ @$ I7 W7 I5 b, r! }0 D
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。2 C  z# X4 c9 b7 B. G5 A
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    ) `3 \6 A6 L$ ]6 X: {首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:, y$ N% Z+ T7 }( ^) Z' \
    % ~2 T# A" L" \/ M

    5 }3 r3 R; s7 x9 w" \YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。, S& a1 s* {8 E* R
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。  q0 r$ R  E/ s3 {' v. O# U
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。: Q8 A: A1 U  U3 x) W9 G
    最终网站前端效果图:
    ; F+ V' B( F( [1 u3 Q
    5 A; ~1 s* M% P6 k/ ~
    , g- m  J$ P2 {% u6 {' ~短网址前端效果图后端效果图:# O0 G" l/ B5 L+ ~

    4 L  q* u& ]4 j6 z9 K. O9 h7 I. I! e/ K8 j) \
    短网址后端效果图相对原版颜值高了不少。
    . N6 F* M+ P2 D 参考返回目录[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号 )
    快速回复 返回顶部 返回列表