扫一扫,微信登陆

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

搜索
查看: 368|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    ! E; |- J9 f7 b5 G$ [& d+ z+ L1 d: C: v9 @- i* l1 i7 G5 k
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    & C5 K2 b, W% S6 S' _$ n, `# Debian/Ubuntu系统安装PHP 7.4
    8 r$ K7 ~* v, o3 Rapt install -y lsb-release gnupg2
    9 @0 Q' W; _, u5 I; }3 [1 v. ^/ Kwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -4 M7 k+ I6 L$ W, N2 r) g
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    $ U6 r; M+ V0 Z. y6 P" i2 I) F2 Aapt update9 H* p4 w6 V# b7 a, i- b: y2 S
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    ; T0 J0 k3 @, a# l6 t) P php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    ( I0 n5 `! w6 d& n. Q% h' Uupdate-alternatives --set php /usr/bin/php7.44 \4 S" Y6 R" m( U
    # 启动PHP-FPM2 X% O8 z# ]9 |
    systemctl start php7.4-fpm: n) {2 f* X. `/ A4 h5 H
    接着安装Mysql(MariaDB):) p8 N. z$ |3 @$ }* i: V. G
    # Debian/Ubuntu安装Mariadb4 V$ `- e( y4 U  U
    apt install -y mariadb-server0 L! q! f2 _9 v# b0 i
    #CentOS安装Mariadb$ H, S6 w, R9 X
    yum install -y mariadb-server
    % r2 S4 n8 J4 b: xsystemctl enable mariadb
      H- O, R3 M$ x& j3 T- i# x2 o6 t#启动Mariadb9 k9 N3 e5 q$ J$ i. k' T- |- r
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    + x! g' S* b5 h#CentOS系统安装Nginx1 I# i6 d- {* q1 T
    yum install -y nginx
    - v" O$ c. `! [, xsystemctl enable nginx
    8 L! L7 V5 M( x$ N$ P) V/ u#Debian/Ubuntu安装Nginx
    # K# X% ~+ g' p7 m8 X; Wapt install -y nginx
    " z7 A# Q% F; J1 `安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    % h- t- G' a* @% Q 部署YOURLS返回目录部署YOURLS的步骤如下:
    $ q$ G: C. \" w' E1. 创建YOURLS的数据库用户名和数据库:
      u! g- ]3 {) F3 E" Y# 进入数据库  F3 ~9 C$ l& Y0 q/ s/ B  V
    mysql
    8 ~: ?, u* b0 {- F6 h+ [# 创建用户名,用户名和密码改成你自己的8 u' _4 ^& Z7 \
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';* {* L, e! n8 |) S$ z9 A
    # 创建数据库,数据库名字改成你自己的
    9 Y. L. ^! k6 s- f8 @# R/ lCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    ! g) x% |  _) R4 W6 v, Z# 赋予权限
    0 w2 B3 ?) w5 D7 AGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    % H1 w* W" p* N6 t8 {* T) Q# 刷新权限. n. r9 O& |/ ]% v; B- C. Z7 L
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:5 K0 I/ J) S+ M8 }) E' T
    mkdir -p /var/www$ K( Q& f1 c* f& `
    cd /var/www/
    . |' t! D" E6 |% Y( hwget https://github.com/YOURLS/YOURLS/archive/master.zip
    . P% W" m0 a# g) m+ i/ Funzip master.zip1 y; X  w  v0 n9 w( K
    mv YOURLS-master YOURLS
    ; ~" i9 {. A8 c" o! f/ e; H; ?( g# 修改网站目录权限+ }" u# g- M% S# K+ @- U4 Z
    # Ubuntu/Debian系统8 q2 t1 |! X  c
    chown -R www-data:www-data YOURLS( F7 Y' f& |' D, s# d9 X! J
    # CentOS& U. G7 ~+ i( @2 R4 k" S& b( |9 v: |& U
    chown -R apache:apache YOURLS% N$ d+ l7 t1 d6 ~
    cd YOURLS
    9 ~# p  {+ V4 x- q8 Xcp user/config-sample.php user/config.php3 Z5 S  \$ h9 e% S
    cp sample-public-front-page.txt index.php
    , I% R3 d- @- L) C% R' icp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:* m$ y- M* u2 J8 ]
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    : s( m4 @3 V4 p5 Udefine( 'YOURLS_DB_PASS', '填写数据库密码' );
    7 |$ m6 h7 k" v( Ldefine( 'YOURLS_DB_NAME', '填写数据库名字' );4 W  q7 R* b7 A5 z& E/ g' O
    # 这两行基本不用改- `9 O" _0 O0 V$ ^
    define( 'YOURLS_DB_HOST', 'localhost' );0 D6 {. B- e# N8 a0 g" v
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    2 }  \+ Z1 @0 W# 填写你的域名,不要加www形式" [4 Q% w; W2 V$ m
    define( 'YOURLS_SITE', 'http://你的域名' );
    5 d. \" E/ h5 ~: |. s# 填写时区,国内是8
    . ~: [+ W  [/ J- f+ \% adefine( 'YOURLS_HOURS_OFFSET', 8 );
    # j% r* z; B8 N! x% l) ~' v* \# 设置为中文
    # t9 I5 n+ _" f% l2 l7 Jdefine( 'YOURLS_LANG', 'zh_CN' );
    2 \' ^( K# u4 x/** Allow multiple short URLs for a same long URL
    0 u) `6 l6 N1 y$ C* Q, e ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    6 h5 k7 G% O; n2 D+ O ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */1 K% M) L9 J, z3 Q/ @
    define( 'YOURLS_UNIQUE_URLS', false );6 {" G2 {& l- _' {
    # 设置私有权限
    . {5 Y8 b9 l4 ?* K. ydefine( 'YOURLS_PRIVATE', true );
    ( g6 U1 J. d) r3 p7 @1 I1 g& u+ n  S: }) |3 ?
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );& ~+ _, U( Y; E" G( X1 ]
    # 后台登录用户名和密码,一行设置一个,请务必修改0 c' W; V. u/ B+ L& \1 O
    $yourls_user_passwords = array(; n2 X5 C2 I% ^" a' L( L
            '用户名1' => '密码1',
    # v$ j" h$ u3 P0 v" y$ P5 `4 A        // 'username2' => 'password2',& I0 Y' A0 x' W7 ^, {
            // You can have one or more 'login'=>'password' lines
    , c+ P2 F" ^9 Z9 Z! r6 c        );
    4 {8 ^  c: t, Q4 q; \9 d/** Debug mode to output some internal information
      U3 w6 {4 n+ ~/ A- F% w ** Default is false for live site. Enable when coding or before submitting a new issue */
    ( T5 q' c( b, Ldefine( 'YOURLS_DEBUG', false );9 |6 z( ]# Y3 P, ^1 K: f
    # 网址中允许大些字母填62,否则填36" M) y) b& W8 e! A3 J2 r+ B
    define( 'YOURLS_URL_CONVERT', 62 );
    & N' c0 F/ w- C8 J6 d/*
    ( t2 u5 m) `( g% H0 q3 a4 t * 36: generates all lowercase keywords (ie: 13jkm)7 Q  S3 I! }; f# a2 X# B: e$ X
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)' ]# v9 s. z1 a" D8 [, k7 P8 E* Q
    * Stick to one setting. It's best not to change after you've started creating links.  D: p7 M; ~) G8 W' p4 i
    */2 e( e+ Z$ b4 O0 |. X
    # 保留的关键字,可自己添加
    ! L1 m. X1 `7 k- j$yourls_reserved_URL = array(* |' w+ I' U* V- o1 }: h) \
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    / s. u( Y3 e) |# s# `0 c; _7 V7 R5 E);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    0 J& Q6 u9 X9 b: E, s+ w( S4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容! C$ d7 M( w( g% N/ z2 Q
    server {7 E+ i0 E7 V" a% v4 l$ x
        listen   80;) _$ {# ^8 N. l& x3 h
        server_name 你的域名;8 F0 i* E4 J$ D3 J0 e1 r
        charset utf-8;
    % c! v  T8 b+ P3 S: x' e% B2 h    root "/var/www/YOURLS";
    + x" S  C; W6 V4 j" y6 Q/ c6 E    location / {
    * c+ O5 @9 ^8 W9 X/ S! {- f& o        index  index.php index.html;
      q1 ~- B2 U" R  a        try_files $uri $uri/ /yourls-loader.php$is_args$args;* c4 P7 H) W3 v: u& n7 o- w- ~
        }* c8 N- Q, D# Q& R6 [
        location ~ ^/\.user\.ini {' y$ d1 b" j( R/ s* i# }. I& Q
                deny all;) q' `# L& |; W% I$ T1 Q$ f: ?
        }( J5 [3 M/ J9 w" a% C
        location ~ \.php$ {
    ) _& d# H8 `" b' {" C6 f        try_files $uri =404;
    & p/ E" U, x& p: P        fastcgi_index index.php;
    0 |4 L! z' z( H$ s! i4 {4 E* X        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    : A* @" u* c. S9 m! E; Y8 J        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    - e0 d# v  W  g) ]5 z  u7 X        include fastcgi_params;
    ) V8 n/ C( t- _5 W' N. n& H        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    9 `+ I$ o- ^- u    }$ [& i, Z; m8 B. j* g3 z  }; P2 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)$ {: L  X5 i4 ]5 J6 ?" y0 I% v5 {
            expires max;
    , ], L) Q. ?! C$ F        access_log off;& S1 e7 y# q# `
            try_files $uri =404;* Z6 d9 \8 _6 ]/ T6 o- [$ f
        }
    ' J8 Y1 {2 r/ m( {}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书) a, n4 W6 |* Y
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。5 N6 A9 Z# X# Z+ }7 ?' V% t7 Z
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    ! \1 a9 R3 Q2 r
    7 j; y7 s- e: M" b4 F3 M0 Y# y
      f3 J0 ?. Y# j& r% y- S5 IYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。3 k1 W8 r9 q& n* t8 I
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    5 m" o. P* l* b首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:6 Y; Y- l3 [% `, G

    3 f/ M0 l9 b' B% ^* a+ v' \! U9 o, A5 S
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。  J! C# \3 N4 N# j" K
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    1 l  x$ Y2 \5 MYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。3 C; B/ v2 Z8 g2 Q
    最终网站前端效果图:( d- `$ m4 y) N# N, Q3 u

    " _  ^$ ?6 d( b4 x/ J- X
    $ j) N! V8 u  y0 ?9 U短网址前端效果图后端效果图:- ?2 v  ?  ]- B3 L4 |5 U
    6 ^9 ~$ g5 b0 ^  |
    ; g, M- t( b0 G6 C
    短网址后端效果图相对原版颜值高了不少。0 F' q; N7 K: R* x. Z" J2 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号 )
    快速回复 返回顶部 返回列表