扫一扫,微信登陆

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

搜索
查看: 584|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。* }" V0 \$ Z- R+ B1 O5 N7 ?' d0 B% [
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
      S3 |" V5 {% Q6 A' l( d本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
      y6 L5 ]2 Z# C* `3 j4 [3 C 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。( i: O3 l, N  o# [9 z. A

    / e+ P* O, `# ]: N
    5 A" g! c$ p) V3 D/ U. i3 R; O% {域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:" E* w! A* S+ I' @* C" n" W
    # Debian/Ubuntu系统安装PHP 7.4
    / p! l8 B5 p4 ^; T, s6 bapt install -y lsb-release gnupg2& y- O# ]% N3 w! B* s& O- ^3 Y
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
      e, T2 v5 T. x) N6 J; qecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list% T2 r, q! q# R- E" _+ x$ q# A
    apt update
    # I1 U( m9 k+ S% S" Z& dapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \5 |+ o4 u9 L, C3 B& J
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    % l" a1 A9 b8 |2 Y/ Vupdate-alternatives --set php /usr/bin/php7.4) C8 x" [5 \" B% W4 x: j+ X
    # 启动PHP-FPM
    ! ^+ `! g( V2 }& q$ W; Wsystemctl start php7.4-fpm
    8 K9 Q. \8 M7 O. U  \$ k! U接着安装Mysql(MariaDB):
    ( t5 ~* |7 o$ v9 t2 v# Debian/Ubuntu安装Mariadb
    ( [! ?! A2 s4 ]- L2 L$ Dapt install -y mariadb-server
    3 [+ D# h, o9 N8 @" N, l& Z#CentOS安装Mariadb
    # p; ^0 }( G: f+ P* V2 wyum install -y mariadb-server
    $ Z& u8 N+ Q0 y: U1 Fsystemctl enable mariadb
    ( S* ^3 Y1 n% u7 L+ |; _/ w#启动Mariadb' }8 E9 i7 Y/ K  `2 O* S/ k" v
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    4 {4 U6 W$ M! y( t3 J#CentOS系统安装Nginx
    % i# ~6 x+ W8 W4 Y' y8 nyum install -y nginx
    % M2 I5 S- ]+ s3 o9 e% xsystemctl enable nginx
    9 _$ Y6 E3 R0 X; |#Debian/Ubuntu安装Nginx
    ! u0 ]+ B' ~: ?. A. g: K( Z/ Iapt install -y nginx$ |) U* A# [+ _' D
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。: u& d* |0 W( \) b0 }% x6 S
    部署YOURLS返回目录部署YOURLS的步骤如下:# o' k% B1 @( C2 ^8 W: ^8 g
    1. 创建YOURLS的数据库用户名和数据库:# G; {/ Y" v6 F* w9 y! @4 O7 N* l; ]
    # 进入数据库
    8 z! D1 S) L3 V$ h4 o5 S/ umysql2 s) b/ K; c# ^0 [6 O. `/ D) k% l
    # 创建用户名,用户名和密码改成你自己的
    * o' ?: w0 I* i( x4 D( ]CREATE USER 用户名@'%' IDENTIFIED BY '密码';% Y; P' I9 j6 }& Y
    # 创建数据库,数据库名字改成你自己的
    5 p# \/ I% }1 UCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;3 X* w/ L$ d! m: E9 B- l
    # 赋予权限1 \3 X0 o7 J0 m
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    , t) ~  x6 o* z; K$ y7 Q9 X1 I* P# 刷新权限
    + l% g# D- P) C4 |9 g/ [- z4 aFLUSH PRIVILEGES;2. 下载和安装YOURLS:$ P0 Y6 O& M" W; Z4 _, Q6 c: _
    mkdir -p /var/www5 H/ e/ Z$ O5 B
    cd /var/www/
    5 O6 x2 M! Y; W8 lwget https://github.com/YOURLS/YOURLS/archive/master.zip  h0 t% G9 R. b# E& r; B) \, }
    unzip master.zip
    $ q2 X# `6 V4 }9 q& g$ P9 o! [# Amv YOURLS-master YOURLS! L9 T+ G2 F9 Z7 i
    # 修改网站目录权限
    * Q' }4 i4 Z& B& G1 J# Ubuntu/Debian系统4 N4 M: m: v  O4 \
    chown -R www-data:www-data YOURLS
    # U# a! T+ m* F4 `  d# CentOS' Y; p1 @. G$ N% {2 ~
    chown -R apache:apache YOURLS
    2 p2 R. E! l: p/ I9 ^$ scd YOURLS
    % S" Z6 g# y; C7 i' C/ R# `7 Scp user/config-sample.php user/config.php5 l0 @) `9 f" b& h( {) z9 t
    cp sample-public-front-page.txt index.php
    4 _# J$ c! j0 v' L3 ncp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    & N! y* q0 m* W6 Qdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );7 H0 H. d- Y% T
    define( 'YOURLS_DB_PASS', '填写数据库密码' );
    , j4 [. S3 ~; fdefine( 'YOURLS_DB_NAME', '填写数据库名字' );
    8 z0 s, W9 W% u/ o; j# 这两行基本不用改
    6 v; i) m6 r+ F0 odefine( 'YOURLS_DB_HOST', 'localhost' );, W: Y  v; }5 d$ M8 P& p; P
    define( 'YOURLS_DB_PREFIX', 'yourls_' );9 ]! k0 I5 t4 C
    # 填写你的域名,不要加www形式8 v( U7 H1 _- c% W- m
    define( 'YOURLS_SITE', 'http://你的域名' );) r3 I: P) e9 y
    # 填写时区,国内是8
    9 F  X2 E. s" Zdefine( 'YOURLS_HOURS_OFFSET', 8 );1 d1 M% f6 E7 _( _' ^. m- S) `, k
    # 设置为中文7 z  a9 l% B! @) K( D2 Q! w
    define( 'YOURLS_LANG', 'zh_CN' );0 g( W6 `$ X, M7 g" H3 c2 y3 B
    /** Allow multiple short URLs for a same long URL/ k( \/ ^6 r" P* z! c2 S- B
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    & I, c5 u* S" _$ q ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */% _! z/ [4 {6 I$ n( o/ s5 H
    define( 'YOURLS_UNIQUE_URLS', false );' f: U6 k( T1 k
    # 设置私有权限
    - d4 Y( O, f" W! x# ^define( 'YOURLS_PRIVATE', true );
    0 q0 U1 r  U- f. b! E1 ~8 @; t+ Q6 d, @' T8 y( l7 m0 h
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );% A% i9 f% l1 n  y. ?
    # 后台登录用户名和密码,一行设置一个,请务必修改
    3 x; E% y+ ]+ ~* D( x  L$yourls_user_passwords = array() J8 u. E0 v8 d
            '用户名1' => '密码1',
    " ?- u; C; [: K5 M& B; X        // 'username2' => 'password2',7 X  D% Y) `" l$ C2 L
            // You can have one or more 'login'=>'password' lines6 ?% T# c0 l: L
            );
    8 r2 ~4 J. H  f3 {3 \6 @/** Debug mode to output some internal information( u: m5 V. Y2 P: o' Z
    ** Default is false for live site. Enable when coding or before submitting a new issue */
    ' Y/ S( O9 {, m, @  Wdefine( 'YOURLS_DEBUG', false );! O9 x+ i! i* N1 L+ p
    # 网址中允许大些字母填62,否则填36
    1 r, m. u; y1 R/ J! P6 k% [define( 'YOURLS_URL_CONVERT', 62 );
    - X# Q4 {# I1 U( N6 }, V/*! A( ]' {% J" a5 c, P8 f! |
    * 36: generates all lowercase keywords (ie: 13jkm)
    % z: |% T/ `4 G4 P8 E * 62: generates mixed case keywords (ie: 13jKm or 13JKm)7 A: G' P$ T6 B; w0 l. [
    * Stick to one setting. It's best not to change after you've started creating links.4 o0 f' |( e7 E( G
    */2 L) @2 [; O) C+ D' e* q
    # 保留的关键字,可自己添加
    5 d  x0 u" ?( p8 Y. F+ |: `$yourls_reserved_URL = array(" g1 b! Q+ P. m  ^
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',; ]1 i* @$ H1 k2 [' y
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    , ?6 u9 E# y0 y4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    2 G% g$ D+ @  P' jserver {
    8 d( j4 I$ |+ A3 N    listen   80;; V% R) X# Z* Q; }
        server_name 你的域名;
    . r8 M9 d4 p( M% X' [% ~) Y    charset utf-8;. `! i3 V4 Q. w' a
        root "/var/www/YOURLS";
    . B/ F3 c+ B' y" t" x  s& g; {    location / {
    $ A9 W% {& X6 T3 ]        index  index.php index.html;& m( T/ v: r& [9 k0 e) Y  \( k
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    + K  N: j+ D5 S6 F, @    }
    ( a( P9 U, s. @4 R    location ~ ^/\.user\.ini {
    ; y. h" n' v2 u            deny all;
    - [6 B0 z- \6 U. t6 J    }
    / y; T9 e) p' ?! `- r' H) w    location ~ \.php$ {
    3 b$ N6 e* y8 O7 F7 x& {        try_files $uri =404;, N) S0 ~: Z8 M
            fastcgi_index index.php;
    : @+ M- N& k% o- y        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    0 c7 q9 C& [3 S. G4 E        fastcgi_pass unix:/run/php/php7.4-fpm.sock;/ u* |, q2 Z& Q7 w5 i5 M
            include fastcgi_params;! ^0 M8 T  k$ ^' ]7 m. R2 j
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    3 D' W3 q2 N' F' b    }+ b7 I; l) _0 U+ F' S( h
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    - q6 J8 V5 Y# k* c; F        expires max;
    ! K4 E4 b8 y* P  y' }  c5 {        access_log off;/ U7 y9 ]; E. O- ?& W5 q; X
            try_files $uri =404;
    6 `0 o# u* b4 D' X    }2 b1 v3 W  z7 ?
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    * q/ I+ a3 f3 i3 {& R
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    * w5 p' W6 ?  u3 l0 O1 r& H- y/ [& s- `浏览器打开你的域名,配置正确的话应该能看到类似如下截图:1 F  k$ R( u' E

    ; L4 b8 K# B3 [: P+ q4 k
    2 R7 A  x0 t# n8 ~1 bYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。- a9 ], L3 L3 x" [- G
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    1 n. ]* y+ W, m% `9 }首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    5 }5 U! E+ I0 z" v: h1 L
    ! }6 u0 o5 P, K+ d
    0 J9 G( \. m( y) AYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。% x. J" b3 v# Q; J8 ^2 _
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    % z+ K" |" k& J- QYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。0 r3 }2 z! |9 f0 I9 D
    最终网站前端效果图:
    . Z4 M. N& a; j% y
    " @$ M2 t3 M4 U" W; `! P0 `0 `8 W
    短网址前端效果图后端效果图:
      O; ~# o5 P7 z; a6 N8 K0 C
    1 \  w1 U, v( R/ T# o+ L8 h+ I9 P2 w, P3 }0 e( j" G
    短网址后端效果图相对原版颜值高了不少。( U  x% q/ O9 f: H
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表