扫一扫,微信登陆

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

搜索
查看: 609|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    ( T- G% R& G1 {9 ^3 U经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。5 V. a% p# p9 W) S) J
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。* J0 B+ v. \" |2 X0 e0 q) V& M
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    : K) L) O7 N4 _% L& K8 b& q- D: u9 F& L, w
    % r# ]2 [) J5 N! l
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:' O& R4 O3 N! {' s! K
    # Debian/Ubuntu系统安装PHP 7.4
    / ^' B4 u- E9 Y4 Rapt install -y lsb-release gnupg2. Y8 `8 w. x% E* N, M
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -% z9 n9 V9 R- N( m0 [
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    : N0 p) j$ t' ^  e1 i# h3 S, U8 Vapt update
    & F/ Z. i, V# u/ l3 Q0 Mapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    7 d$ `9 X) [  u7 n7 g$ T1 _ php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    9 B3 {( g( n1 g% D& Eupdate-alternatives --set php /usr/bin/php7.4
    ( [, ?8 A% Y# C# U% I; l4 s6 B5 P# 启动PHP-FPM5 v8 A# e3 L, m0 ?
    systemctl start php7.4-fpm
    ) a$ Q4 i! n1 `7 @$ n; L接着安装Mysql(MariaDB):
    , v: b' f# A! Y; l5 ~' g# Debian/Ubuntu安装Mariadb
    6 @* y/ ~& [2 ]$ z/ S& vapt install -y mariadb-server
    % g1 u" M. `8 c% G  T6 i#CentOS安装Mariadb
    $ T4 u" U% v8 h8 o8 w0 gyum install -y mariadb-server! s, Z! O7 Q* A6 f$ f
    systemctl enable mariadb; g. j7 g- G+ M2 h/ e+ A% n  q
    #启动Mariadb- d% T$ e' @  n9 v; \. h) `
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:! {$ N( L3 I8 x9 {! h
    #CentOS系统安装Nginx
    : q& F& p1 B+ o% j5 ~+ Uyum install -y nginx
      X' R, F' i& X  H& Esystemctl enable nginx
    9 E5 }* j& \6 Z- x5 i#Debian/Ubuntu安装Nginx
    ! I$ F9 ]* s  O2 T( ~3 lapt install -y nginx
    ( T1 E7 v3 k  g/ n. q$ E安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。  T( M! L' ?% P1 ?7 Z. {
    部署YOURLS返回目录部署YOURLS的步骤如下:
    * B% K. h# X' i5 {4 h  }3 C9 K1. 创建YOURLS的数据库用户名和数据库:
    , c7 ?/ ~4 q4 x: L$ y# 进入数据库/ V; [" h) [  [  V, j8 ]
    mysql
    ( E( K. _3 p" ]) q' A; z# q7 c# J* S# 创建用户名,用户名和密码改成你自己的# x: p! N/ T/ R+ Y- J
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    ! w# E9 g9 d. F; x( D6 x/ \# 创建数据库,数据库名字改成你自己的; X  u' `9 `* P. g2 r  Z
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;5 L4 L# J6 O+ g+ L6 k" }, n
    # 赋予权限
    ' Z- I( `$ |' \GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';, f4 O/ Y5 ^9 P# K$ {. Y, a
    # 刷新权限
    ; Y) |% h% T0 R$ S1 `  IFLUSH PRIVILEGES;2. 下载和安装YOURLS:% q* P8 X/ a$ j( c
    mkdir -p /var/www0 R9 J  u' M9 Y* U0 j" R
    cd /var/www/6 G& F2 d# E9 }' k/ }
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    . e+ b& \) k8 E) s' w# tunzip master.zip
    % f. `5 X2 v2 `4 ymv YOURLS-master YOURLS2 I3 R6 `6 S$ F- q
    # 修改网站目录权限) I1 W( R& P0 m! X1 J; H
    # Ubuntu/Debian系统3 ^% F0 j5 v0 J* a+ D5 [1 l
    chown -R www-data:www-data YOURLS6 B2 g2 N  i( c( a- p  T
    # CentOS7 b1 L0 `' K0 O" ~! M
    chown -R apache:apache YOURLS* }% F1 d1 m+ {- V1 h
    cd YOURLS
    - D' H' S# D. K! J  p2 ]cp user/config-sample.php user/config.php
    + ~6 ?, q# R0 n$ {  k. kcp sample-public-front-page.txt index.php, |% x  [6 i4 o% Z  p
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:. N' |# G& ?3 H' g$ }
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    ! l2 ]" D- r+ o) j: v5 vdefine( 'YOURLS_DB_PASS', '填写数据库密码' );# v4 a5 \. t- w0 L0 A
    define( 'YOURLS_DB_NAME', '填写数据库名字' );; T1 _; A9 K  q" P' z
    # 这两行基本不用改3 t- ~  O1 b( B3 Q
    define( 'YOURLS_DB_HOST', 'localhost' );+ z( Q/ @% W6 S3 h7 L; {1 S
    define( 'YOURLS_DB_PREFIX', 'yourls_' );9 @" X9 f4 p9 j! D
    # 填写你的域名,不要加www形式" }* j8 v) z$ A) |1 A1 P
    define( 'YOURLS_SITE', 'http://你的域名' );1 H! A$ S) J, W9 X  m
    # 填写时区,国内是8
    ; X" m- r! W* w% B+ F  tdefine( 'YOURLS_HOURS_OFFSET', 8 );
    & V$ J! V# r% ^# 设置为中文
    + N1 S' `7 h! \5 Q4 B8 udefine( 'YOURLS_LANG', 'zh_CN' );) W1 X; U; K3 d8 t6 \( p7 J
    /** Allow multiple short URLs for a same long URL& k+ a- Z$ l. w# X( |
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)+ I3 D0 e+ _0 [
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    0 h2 F4 z8 |8 ]3 E7 [define( 'YOURLS_UNIQUE_URLS', false );
    / [  u& Y- E; P. H- w& a% Z7 S# 设置私有权限# E# H4 d: I5 y: I0 V! s
    define( 'YOURLS_PRIVATE', true );
    ! P6 @, A/ Q6 ^! n8 h& g& ?; Z# I' H$ F" g: F
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    5 c- D- A" |+ B9 y/ L# 后台登录用户名和密码,一行设置一个,请务必修改
    " w; d8 ]; N( r2 }7 {$yourls_user_passwords = array(: X0 ]" `: C7 ]3 y7 A
            '用户名1' => '密码1',! T; a) I8 o7 H( g
            // 'username2' => 'password2',$ r* _4 E8 I& Q" R- F, H1 p
            // You can have one or more 'login'=>'password' lines
    ) A1 `( ]+ i# e        );
    ! Y6 q( n  z. x7 V) Z/** Debug mode to output some internal information$ H" |6 {; D; V' j8 x3 q
    ** Default is false for live site. Enable when coding or before submitting a new issue */8 M& [8 j- P$ f$ v8 u
    define( 'YOURLS_DEBUG', false );0 `2 {. P* f/ X
    # 网址中允许大些字母填62,否则填36" }5 s$ h/ y+ ^* D
    define( 'YOURLS_URL_CONVERT', 62 );
    & r$ Z+ }" U' f( ~, p/*
    ( i+ k& n0 l, u4 O! j * 36: generates all lowercase keywords (ie: 13jkm)- p, M1 b9 X) T5 @& g: O
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm), C/ x5 @# H6 J
    * Stick to one setting. It's best not to change after you've started creating links.4 X" ^8 S' M. a9 ~5 o1 M
    */$ g) C5 |  R# Z
    # 保留的关键字,可自己添加; C- ]: v, o: }- e' V
    $yourls_reserved_URL = array(% f. }3 q  w" Z' Z  i5 E+ o
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    # p! `* D; m' P; P& H. J);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。, ~- V+ O% _! K9 m4 ~5 |0 i) `
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容+ ^" ?- T/ ]- |) A7 ]/ J& a
    server {5 d$ r8 I1 a2 T; c. t+ p
        listen   80;
    4 G3 {  o7 i# F  B# n2 L    server_name 你的域名;
    8 r4 B' A. \# A5 c/ q    charset utf-8;( `1 R9 I5 l* o5 y) R3 t9 g* m3 d9 s
        root "/var/www/YOURLS";
    7 {& }  A4 O5 W7 t0 o7 s    location / {& s. n7 h6 [9 v3 ]7 ~" c
            index  index.php index.html;* s0 s+ o" c2 r# A
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    : \, r$ f) j2 y% w    }6 U% U; m0 Q* `2 s  B4 H
        location ~ ^/\.user\.ini {! m/ t2 N6 k0 k2 x; W! Q3 ^* S8 g/ U
                deny all;; O9 W$ b8 x$ L2 I" L2 L- [+ x
        }, B* c9 o  l# G2 D
        location ~ \.php$ {
    5 d0 [  h, S( e/ k0 p) F        try_files $uri =404;
    ' \9 b" E$ w8 q6 e8 j7 ^' t# F) D1 O        fastcgi_index index.php;
    & y" _0 t3 ?. s( X! n" J        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    $ A! `0 f0 Y; |1 p3 _        fastcgi_pass unix:/run/php/php7.4-fpm.sock;; U0 d! D2 w( N8 x
            include fastcgi_params;/ E% A$ s0 D$ Y
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    & d' a2 u& K1 k4 T$ w) H, |    }
    0 z& N  [- Z7 A    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {: f1 G( U/ I  A" q( u
            expires max;( F& j4 ?7 }5 l3 Y! H0 O# C
            access_log off;* J+ e+ K- h: B$ y) Y: n# e
            try_files $uri =404;* v& f9 I0 V4 u5 q" K
        }4 _0 D, X& g. j
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    + C) K) O. I. y. r0 Q7 N5 i% o3 b
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。' P; c# W! v: |; L
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:6 u: N$ N7 I" H

    * F; X2 }! p8 j+ A- `4 D' Q0 Z4 B7 f' H4 n: c: c* p, N$ P
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    6 v' R; Q: T% w# d8 G$ e( p8 \1 ? 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。2 z9 c8 q; ~5 t9 A- V" C, r. D& N# k5 C) k
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    1 ^5 p9 g: D2 v" o4 k6 z# a  p& q8 {% d+ v$ D0 _7 o" V6 n
    2 V/ H$ S' J4 C
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    ' f! ^( Y  g( Q* M8 w推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。" d7 G5 k3 R: q1 {! ]
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    2 Q7 P; _7 X1 w5 W) {. s$ m最终网站前端效果图:5 {3 P# T: z6 Z- |& U9 l: y

    $ O' q  P; s$ p! q" M8 X2 t& i, k9 h  t% t% a" F$ t$ p& f! v
    短网址前端效果图后端效果图:2 s; i. e0 `3 V7 U' o
    % v  A# c+ J* I" d4 n" K
    3 x+ C/ O% x, ^# P6 k
    短网址后端效果图相对原版颜值高了不少。
    % g  h. n5 t. ~8 r% I 参考返回目录[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号 )
    快速回复 返回顶部 返回列表