扫一扫,微信登陆

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

搜索
查看: 480|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

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

    6 \& S7 i9 E7 o9 q  W域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    1 k2 y( Q2 T2 e4 d1 E" n# Debian/Ubuntu系统安装PHP 7.4- i/ B' c" [% I; J' G& }6 Z% S# J- w
    apt install -y lsb-release gnupg2
      ^, A2 m2 h! x/ q: z* s/ qwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -- ]; ]$ {+ b. k$ p% v# H' h! g& N
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list* Z2 c: }% ]3 n: t
    apt update
    / A. ?0 ]) ^" t0 H. y! Japt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    5 n% ]6 I- q, x" v! `2 j php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick4 M- J3 q' f% C2 q& [. u
    update-alternatives --set php /usr/bin/php7.4
    * z8 Z( _8 B: l7 x( `4 |4 E# 启动PHP-FPM
    ( Y/ N  T, M; h, t  Ksystemctl start php7.4-fpm
    ! B8 q! w9 j& B8 l: A接着安装Mysql(MariaDB):& ]8 b9 V# @, {
    # Debian/Ubuntu安装Mariadb. B2 f3 [9 }3 y) Q! |9 s# F
    apt install -y mariadb-server0 Q2 l$ T8 d6 Q6 Q$ w& {
    #CentOS安装Mariadb
    9 b5 [2 ~; x% O# {6 j6 U! V! l+ Oyum install -y mariadb-server
    / `- i- S3 }# i; p; T0 M# Xsystemctl enable mariadb/ J- r, g5 `2 @9 {5 O& E! O! V
    #启动Mariadb
    1 U* }; b/ F& ~4 b6 ]systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:* w; ^3 t" q5 G+ ]2 |7 V4 R* k7 ^
    #CentOS系统安装Nginx" w, H  ?2 i$ J# P" T) i: P
    yum install -y nginx3 P5 h2 x5 h. l& `8 e& q- d$ _$ i
    systemctl enable nginx
    - ?& }8 |; e" {* o; z  l$ ?0 f' i1 y/ w#Debian/Ubuntu安装Nginx
    % R2 \5 v! c2 o- [1 U* Japt install -y nginx1 h' F0 O: @# S4 ]$ {' ^. a
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。  T* ]- \) r7 ?3 m  z: t* T2 n
    部署YOURLS返回目录部署YOURLS的步骤如下:( C/ f  ]3 [1 K6 L- p8 {
    1. 创建YOURLS的数据库用户名和数据库:' r6 D  p" X8 ]0 w  C
    # 进入数据库2 F$ v1 ]& ?% s% }1 A0 d3 K
    mysql
    5 K4 N9 m/ f0 S. G( B# 创建用户名,用户名和密码改成你自己的5 ?9 B( F) C+ N, q' ~' v8 T' f
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';/ f+ `* ~8 }/ j* F2 ?
    # 创建数据库,数据库名字改成你自己的  s6 y/ g" `5 ]# x( h; z
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    . r0 ~8 g" k( A# k9 W. V: M# 赋予权限4 g8 U% o  C, A* E4 E& ?" _( p
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';% X9 ]; x2 S, L
    # 刷新权限
    0 n. l1 }) i  f7 E" |" A( KFLUSH PRIVILEGES;2. 下载和安装YOURLS:% ^2 S0 `/ X% t7 T! j$ H8 T2 W
    mkdir -p /var/www1 w# H7 B* l( o7 ~) T: U
    cd /var/www/
    0 [/ K; s) U* I/ O0 }# Jwget https://github.com/YOURLS/YOURLS/archive/master.zip
    ; }7 z( ^1 ^/ I7 C% X$ J" vunzip master.zip$ {  X% G5 d0 Q8 V; a4 E
    mv YOURLS-master YOURLS
    3 r9 b# y- P" k5 c+ N# 修改网站目录权限
    ) J/ {6 w. ^+ l' [; b3 m# Ubuntu/Debian系统, K1 O: p& ?( J  u
    chown -R www-data:www-data YOURLS
      [) z: u( B1 `# CentOS" Z' x% Y9 q5 @7 C5 w/ Z9 L: }" p" d- i
    chown -R apache:apache YOURLS
    7 K) `) _8 j3 A/ B0 @; Icd YOURLS
    4 z. g$ c: I2 B) ~cp user/config-sample.php user/config.php
    ' ~+ A& I! G4 j4 V, H5 c' W, k% N5 S6 ccp sample-public-front-page.txt index.php
    4 B9 A. H! ?) P4 @+ ncp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    0 Q8 _. t- F; ~9 Ldefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    " f+ {: e* S; c+ y3 K3 E6 rdefine( 'YOURLS_DB_PASS', '填写数据库密码' );* |! t7 `3 Z9 Y' a3 h
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    : R* k4 Y& `0 _# b) s# 这两行基本不用改7 r* Q- G+ {8 D; y) ]
    define( 'YOURLS_DB_HOST', 'localhost' );3 d# A* \- F/ _4 y. q$ s
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    * w5 u. c) `( t/ Z, t) ^/ \# 填写你的域名,不要加www形式/ F5 d$ j5 V) o- h* u' ~* R
    define( 'YOURLS_SITE', 'http://你的域名' );
    4 Q# r! g# N( Q" I: p# 填写时区,国内是84 f4 l2 n3 j) T2 l9 d7 w7 |; F
    define( 'YOURLS_HOURS_OFFSET', 8 );
    / C* `9 |$ b% o' j# 设置为中文" S/ a) z9 O4 W$ ]7 W
    define( 'YOURLS_LANG', 'zh_CN' );9 E' ~3 A7 t+ G6 E  i
    /** Allow multiple short URLs for a same long URL2 ]$ t2 W9 ^* h. P0 Y
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)2 q& r, h" B7 \5 m) G% Q
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    , B6 \7 l- M& u9 rdefine( 'YOURLS_UNIQUE_URLS', false );
    $ W7 G" ]% U$ ?% [6 r$ ~2 K# 设置私有权限
    0 c  k, n1 X3 [2 T' x) g$ s4 ~$ Vdefine( 'YOURLS_PRIVATE', true );, I2 n: y, J  H5 V, K* y" P

    ( `6 I9 f5 O! u3 G3 m" ~define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    + k" D8 e4 x/ Q1 ^0 A# 后台登录用户名和密码,一行设置一个,请务必修改; q% `9 J0 f( w) \! F
    $yourls_user_passwords = array(8 R2 R' @  @' r) _# \
            '用户名1' => '密码1',
    2 P( k: D& C+ s1 r        // 'username2' => 'password2',
    - Z; h! k2 j4 |& H: s" ?% L% h        // You can have one or more 'login'=>'password' lines
    & H: ]3 p. V1 y* G        );& M! d* A) l2 @6 s6 P
    /** Debug mode to output some internal information
    ) `) f9 {# G6 v" s5 ^( R% } ** Default is false for live site. Enable when coding or before submitting a new issue */# H8 [8 ]5 t# u9 ~" a: q$ ]' b. ~9 S
    define( 'YOURLS_DEBUG', false );6 z" p9 y! s  h/ Z
    # 网址中允许大些字母填62,否则填36/ g$ b5 L" Q; s  `: V7 l- K
    define( 'YOURLS_URL_CONVERT', 62 );5 s7 t! H9 s# H6 X, t1 O' z3 C  h
    /*
    ) N2 t' \; e$ L * 36: generates all lowercase keywords (ie: 13jkm)9 L' U) P3 O7 \1 e
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)7 ]. a) b7 Q9 ^. C9 u* R) K
    * Stick to one setting. It's best not to change after you've started creating links.
    6 N$ I2 P& {/ a9 P0 ?! I6 ?# q0 p */
    2 g5 ?; W. h6 c& V1 [# 保留的关键字,可自己添加
    7 K* Q5 |$ I" }8 C$yourls_reserved_URL = array(+ i+ l; v# O5 g+ o: R
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',0 u4 E) o* F1 c7 s$ I% `! [& v
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。' V# t5 y) p; ~$ \
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容3 k2 K$ b! c, X
    server {& x9 K4 n/ W( x* a. y
        listen   80;
    ! t6 B( ~5 t4 {. F# N( P" ~    server_name 你的域名;
    8 v8 i! G9 T& v1 K- b! r    charset utf-8;9 R- x4 {1 A: p  ~2 I5 ^
        root "/var/www/YOURLS";) W9 k" {% N" q
        location / {
    5 o/ l$ m4 u7 o5 n6 U$ B+ [- N        index  index.php index.html;
    * A+ o+ t; e/ ]" C        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    3 K; K0 J& G3 ]! n9 O8 P    }$ Y8 I9 g% c  T0 f
        location ~ ^/\.user\.ini {
    ; @5 v  X1 I' h) x. x; M' e            deny all;6 c( l4 a1 `3 s1 m
        }. K0 M( W9 S+ C% b; B
        location ~ \.php$ {
    3 D* P) F# G# Q+ K        try_files $uri =404;2 |0 j3 n$ v2 q1 ^7 m
            fastcgi_index index.php;
    , K( a9 U# m: V9 p% F. b: s# c        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;- z+ Y2 M+ N, h$ t  }4 y2 k
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;% Q  @* g' C1 t% J
            include fastcgi_params;
    ' c1 t$ ]% D) P- d        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    5 g7 K1 V; g- m1 g1 l, H    }! g1 Q% F5 a0 E# ^; R# ^
        location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    - s4 _4 A* B. N* b" [6 }- ~        expires max;
    ! I8 ?" T% L6 \2 _2 |8 Q. Y' o        access_log off;
    ) h# `7 [" ]5 s6 \, E& ]        try_files $uri =404;
    3 l7 P1 O9 p# j/ [    }
    1 X) W4 f, }- I}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书/ O) j5 f$ J) g$ Z* h
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。# X; G# M, |8 Z
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:+ U5 X$ v" N2 M( c/ }& S
    6 ^; x) {- a. a9 E
    0 u7 ?0 e) i6 Y' [1 t1 @( T
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。0 y( o) D+ P* m/ x* w  e7 O  b
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。; ?4 N) ?/ u% j, d4 r' L, q
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:& G: \$ V6 f. w, g: p

    & J: b+ ?5 l$ Q+ O# I  Q
    , a7 W+ Y* j! S& ~3 EYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。& K5 h6 G4 Z1 q
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。& w% e& Y6 e& V1 E+ d; Z
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    3 L# ?6 H( Z0 S) u7 [1 p最终网站前端效果图:
    4 I6 W/ y  N; e3 ?! O3 c1 f" ]4 t$ ?: x0 T# b! C) ~
    " B$ Z! m' K& R7 G5 q
    短网址前端效果图后端效果图:% h9 @6 }& z- |! _! t
    # V. s& w8 E  R$ e9 \' i8 C

    ' B0 g! b; {- D5 r' F1 K短网址后端效果图相对原版颜值高了不少。
    ' i5 M0 R5 T; ^! M! R 参考返回目录[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号 )
    快速回复 返回顶部 返回列表