扫一扫,微信登陆

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

搜索
查看: 329|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。+ |6 _6 l1 f0 f2 Y- J
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    / x3 v, A. n' d$ U本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。3 |4 J4 g$ ^$ m8 z' T' L
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    - {5 M1 \/ i, Z0 M! [& A' z7 P1 J* b7 q/ ?$ d3 [

    * {$ Z$ B7 ]& b2 }1 g( A, M* ^域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:& e7 Y' Q! ^& |, E7 Q! B
    # Debian/Ubuntu系统安装PHP 7.4
    & o8 U* F1 i2 n: D* iapt install -y lsb-release gnupg2- E  ~' T1 ^/ u
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    ( u+ I' L3 u9 N: Aecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list( L" x& u2 Y. O- u$ B
    apt update2 J, f% n! b, N( u7 O0 o
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \! M* N7 R$ O1 P9 \: [3 o
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    ) C7 d$ J5 a1 [, {" j+ }8 Rupdate-alternatives --set php /usr/bin/php7.4
    2 P0 B  \! a0 [7 e3 P; B# 启动PHP-FPM0 h* \: z. q: E6 h' _
    systemctl start php7.4-fpm
    # l) _  n( e1 J# O接着安装Mysql(MariaDB):
    * R4 P" L, q. k  p# W# Debian/Ubuntu安装Mariadb2 h- y* ~" F0 k" x0 {2 E+ [
    apt install -y mariadb-server, i( W7 ~1 D* Z1 _4 o! R# t
    #CentOS安装Mariadb
    9 W/ g7 W( N) Z' ^6 ~yum install -y mariadb-server
    8 E9 y( w, ]2 d, hsystemctl enable mariadb
    9 V9 ^3 {8 D+ L0 r1 L/ N8 h#启动Mariadb
    : Q9 f# f3 M' w7 c7 f3 Csystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    # O% {3 b8 e0 D* H# H' Q& L& W! @6 {#CentOS系统安装Nginx
    - T& l! R* ^" P" R6 U- N4 [2 @; Zyum install -y nginx% X% z% E  a( P  ?3 P3 T8 U
    systemctl enable nginx) h1 V/ [: m3 B: @
    #Debian/Ubuntu安装Nginx$ \; S7 y' X' K/ `7 p9 d
    apt install -y nginx8 I6 ]! c* V* }
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。" W4 B* {, _4 M+ ?
    部署YOURLS返回目录部署YOURLS的步骤如下:
    $ q9 Q! l$ b9 L- P3 R1. 创建YOURLS的数据库用户名和数据库:& Q6 U% E) w" Y# h- K) }4 ?
    # 进入数据库; R; T, e8 h/ h2 p9 i9 s* O  I  s- I
    mysql0 }- f' U* m, J/ q
    # 创建用户名,用户名和密码改成你自己的
      e. M- Z0 A+ X+ y* @CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    8 C, n! W6 F( V$ c: r; j/ v1 ~# 创建数据库,数据库名字改成你自己的! ]' I2 b" q* v, E7 b) V% W
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;9 g8 r" N: V5 H6 v
    # 赋予权限" S% I. L* P8 {! n3 {6 i
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';5 N" O* E4 q; H. D6 @
    # 刷新权限
    ; X8 T7 W. M: a/ lFLUSH PRIVILEGES;2. 下载和安装YOURLS:9 N& L0 c) S9 G
    mkdir -p /var/www
    2 r4 Y- m" t+ kcd /var/www/
    ' v+ \6 m/ {1 F' D4 H: pwget https://github.com/YOURLS/YOURLS/archive/master.zip+ S( k5 ]+ H$ D* y4 N; D
    unzip master.zip/ o/ {: _2 x  k
    mv YOURLS-master YOURLS
    $ s: m% M$ k5 f6 N# 修改网站目录权限
    + g" S8 H- z' ^# Ubuntu/Debian系统
    % b" ^0 n7 D4 W  n  Tchown -R www-data:www-data YOURLS
    & v) v, {2 V! o9 O1 f# CentOS
    0 o( q% p( i1 @1 [" X- Ychown -R apache:apache YOURLS
    7 e$ j& _4 Y3 }cd YOURLS8 u5 |! F% Z: t! B$ Q' e& O
    cp user/config-sample.php user/config.php9 d4 Z' S: O! N% C
    cp sample-public-front-page.txt index.php2 u0 |4 s- H+ w8 q$ u4 e* ~+ C
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    ' e- m- G6 q! ?7 p6 b. ]define( 'YOURLS_DB_USER', '填写你的数据库用户名' );. o# t% P9 ?" h) v: a
    define( 'YOURLS_DB_PASS', '填写数据库密码' );  \; Q% C6 ]) i1 E7 |+ a
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    7 e1 m4 Z5 }$ n& C5 \6 Y. Z# 这两行基本不用改# {& x6 h0 j$ [7 l3 r0 o
    define( 'YOURLS_DB_HOST', 'localhost' );
    ( B0 t# [* B9 l" Vdefine( 'YOURLS_DB_PREFIX', 'yourls_' );: [3 ^0 v7 ^- i+ X
    # 填写你的域名,不要加www形式- k/ c7 W' P2 d- j% d% p* h
    define( 'YOURLS_SITE', 'http://你的域名' );* K/ f9 s# k+ W5 J
    # 填写时区,国内是88 I) f$ a( L5 n& O, J, S
    define( 'YOURLS_HOURS_OFFSET', 8 );
    6 S. n4 I( j( ~! O# 设置为中文
    - L* S* L9 j  p- l& \& ]  o" _9 Fdefine( 'YOURLS_LANG', 'zh_CN' );0 Y# V' n& L6 t0 f
    /** Allow multiple short URLs for a same long URL
    - j5 G; L# _6 L) y, ~4 S ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    ; L+ [* h2 I* r* }3 R. ` ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */, B6 u0 V0 c9 S: h7 @) W
    define( 'YOURLS_UNIQUE_URLS', false );. t' M% U3 J( `7 N5 ^. B
    # 设置私有权限9 L# u: p8 l$ L1 ~3 z' K
    define( 'YOURLS_PRIVATE', true );
    " R/ H7 p, I: D0 ?3 V/ b- O
    # y. t* ]! k% M  Tdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    3 S5 Z/ O& x0 m3 r# 后台登录用户名和密码,一行设置一个,请务必修改
    # o$ d3 j1 i# N2 a7 P3 m3 L$yourls_user_passwords = array(
    : R0 `# W* n5 a$ o        '用户名1' => '密码1',4 L. U3 \8 V; I0 p; k) @. D& C1 u/ J
            // 'username2' => 'password2',) S* |+ [" m/ t
            // You can have one or more 'login'=>'password' lines6 k+ X2 L+ E$ C, o
            );
    " {) S8 E2 q0 _# `+ X/** Debug mode to output some internal information
    . k5 w4 u# ]9 s$ O! C, A" U1 K, F ** Default is false for live site. Enable when coding or before submitting a new issue */$ d) o6 s  V" Z7 R
    define( 'YOURLS_DEBUG', false );3 P+ N9 Z7 W- r- P$ n% ]% g
    # 网址中允许大些字母填62,否则填36
    * {+ k6 N- }2 a9 A7 Xdefine( 'YOURLS_URL_CONVERT', 62 );; K, v, W1 h, h  x4 A8 ]- |! \
    /*( N9 A8 p: k# R' l
    * 36: generates all lowercase keywords (ie: 13jkm)# i. v" J3 X5 m
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)% i1 U% h9 L$ P: n1 b! u' Z
    * Stick to one setting. It's best not to change after you've started creating links.
    ; m' U4 \7 |2 o5 i5 F0 t0 q */
    5 U. l* m" x5 a. x. c# 保留的关键字,可自己添加
    " |0 E+ m+ f8 h9 d- m+ e, b$yourls_reserved_URL = array(
    " t6 B$ a1 ~+ J        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    . c  \! Z3 S, v3 u* |. u);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。. A( ~0 i1 h9 j
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容4 W1 A3 t! u4 z# A% v
    server {
    , d% c+ X7 a1 S0 i    listen   80;
    0 P8 u' v$ s/ J; A9 \; r) l    server_name 你的域名;
      s. ~( E% ^1 r/ i& x; w) @    charset utf-8;) m7 F! d9 u8 L: [
        root "/var/www/YOURLS";
    ' v8 }. q# r" b& m9 _# h    location / {
    0 _. ~; l; E9 t; Q        index  index.php index.html;
    ' ^/ @4 l; M( [  u        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    0 U& H( H( O6 D) y4 G$ w! U    }6 P, o$ O7 K! y9 G/ n( R5 c
        location ~ ^/\.user\.ini {* W0 g' H+ T" X- N  T& h2 B
                deny all;6 m/ ]+ a# Y* u, I7 e+ v* A
        }' y* ~" E/ u% R: M" Z* x
        location ~ \.php$ {+ Q" ]" ]5 ?9 r& B, T
            try_files $uri =404;
    8 W( H5 w1 R9 ~/ d$ M1 H" N        fastcgi_index index.php;
      O5 f+ i0 C2 S, M& C        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;& X% X4 _. w* \' ~7 R  Y* |% |( ^
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    ! r9 }+ J4 o3 m        include fastcgi_params;" E" t. g2 V' V5 f
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;! W' k  \! v% j7 c5 U: F3 _
        }& {8 j8 r9 r# B' \! F# 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)$ {
    ! s8 l4 M) H+ x* I$ M: i8 H        expires max;
    ) u* d7 z" [$ o0 L9 M( Y: _  ]( }( c, P        access_log off;
    5 W8 {! k* }# u8 c% c. q        try_files $uri =404;  P8 A4 s8 O7 _3 O
        }& p1 F& N& L  X- L( d
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书5 B. p$ U/ S, h6 @8 K! M# M- c+ K
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。, s7 X8 b1 J4 r+ `7 w$ q& c
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:4 z5 C. x' q2 U
    " G  a; v7 O, f/ B+ w4 @

    ) i9 B- d/ W. z! a0 a( c' CYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。. @# O- e6 {3 y- s) E" s  G% @$ ~/ _
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。. m" ?5 d7 ^, a/ M5 M4 a4 [
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:+ p1 D$ j- A/ |1 l+ H

    5 w1 g- k* q8 G3 ^0 T, h( D$ y. p9 v  K- F8 g8 t' g3 V" Y
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。7 c& N) @5 q) M+ A$ T4 `/ ]/ D, b8 r
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    : Q( L/ f* ?0 m6 e" V8 FYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    ' f1 J8 V3 I7 g- p; H最终网站前端效果图:" e- ~. U0 L" ]6 p
    : L1 Q# z' M( K. T# \
    # _8 N. U9 K: x3 |7 ^
    短网址前端效果图后端效果图:4 P% m! _3 c* A( f/ Z( z5 E+ n

    : \# a( P1 L' h2 l
      a' k% e- n1 }& n  z短网址后端效果图相对原版颜值高了不少。0 s: s: \, W) B7 f0 ~+ S3 I  j
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表