扫一扫,微信登陆

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

搜索
查看: 917|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    9 ~$ r2 ]1 p) A- l/ b经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    5 D* w6 u) O* M) C4 X! B) _本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    & Y5 }- P; ^& g4 z 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。0 G4 f) w* l  i3 o6 w7 x
    6 p& @+ b6 l5 \. c, r
    6 z- Y3 U, O" V& ]4 X! w8 G! q& h
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:% P2 l$ o5 g& z' f# X, e
    # Debian/Ubuntu系统安装PHP 7.4- {! ]" S" T8 o* O
    apt install -y lsb-release gnupg2* B% F4 v$ c) W. W* Y1 G
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    ! [" b  [& Y! h- Mecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list2 h* C+ D+ j3 i: A" k
    apt update
    " `9 d, {; A! B; h$ Mapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    0 i5 t, g/ G0 W$ C! ~. _ php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    2 S$ F0 T5 J$ Uupdate-alternatives --set php /usr/bin/php7.4
    & o$ w4 d( Z' y5 @0 n- X# 启动PHP-FPM3 I  H, G, D" Q  ~- T3 }% G  \
    systemctl start php7.4-fpm: B; V' K% B+ Q/ R$ c1 n0 k6 a
    接着安装Mysql(MariaDB):
    ' ?4 D- I3 H2 t# Debian/Ubuntu安装Mariadb
    7 D) d9 B" q2 f" c( }8 Q, [' _apt install -y mariadb-server
    ; s# Q7 N7 q8 {3 R2 U" o! r#CentOS安装Mariadb
    ; M0 ?$ r. e8 b. {& Q( Ayum install -y mariadb-server6 [  K9 a. f0 ]8 |  q3 k: q3 h
    systemctl enable mariadb
    % e  t4 ?" x/ C* e7 q' V! w) t#启动Mariadb! [8 A+ ~" ?+ q9 ~# b6 c' g
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:+ D1 F9 R! }( I, o5 U0 o/ w" z" `* \* d
    #CentOS系统安装Nginx
    # P7 g2 K( J: G. U% Syum install -y nginx9 n4 s+ Z, p: b% t$ l* T) P
    systemctl enable nginx
    % R- E3 Z0 o9 Z#Debian/Ubuntu安装Nginx: R2 O5 q& ^- L+ `. u7 ?) Y. ?
    apt install -y nginx) e# ~& y$ L0 i# T" e, K) B4 z/ w4 F: s
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    1 X6 B1 v+ M0 c8 }2 k 部署YOURLS返回目录部署YOURLS的步骤如下:
    8 H1 X& x0 J+ e1. 创建YOURLS的数据库用户名和数据库:
    " O/ ?9 R8 L( A& G8 i# 进入数据库
    % f( g: U4 }+ c: Y2 ~3 gmysql8 J: t7 E+ q: m& g. w# R
    # 创建用户名,用户名和密码改成你自己的
    * i# ^. t3 u# h# A8 p  ?CREATE USER 用户名@'%' IDENTIFIED BY '密码';5 s$ r/ r; X  z4 k9 _
    # 创建数据库,数据库名字改成你自己的+ I& F  s- e- }( ]& n
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    ) g. h' F+ t5 g8 x2 a$ L0 l- B" h# 赋予权限
    6 B) c6 p4 ?6 T- iGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';9 M( ^. m- @1 _$ X: u8 F$ N8 F; j
    # 刷新权限
    4 ]* q4 a! m. lFLUSH PRIVILEGES;2. 下载和安装YOURLS:
    * V2 L$ H# y) f* Q. nmkdir -p /var/www9 u" P7 R. f' C0 P* k
    cd /var/www// u4 D9 q% Z0 l) [) L' m2 x: P+ X
    wget https://github.com/YOURLS/YOURLS/archive/master.zip
    ) u/ n8 x' o' w6 M" yunzip master.zip
    ! ?9 ^, k# X6 M. c" u: m8 [0 omv YOURLS-master YOURLS- {* c+ U$ S2 m# V; s
    # 修改网站目录权限
    , I, X" B& X) |$ I( P# Ubuntu/Debian系统
    % T, X+ @; J: w, o# Ychown -R www-data:www-data YOURLS
    . g; Z, O, P6 u3 x# CentOS4 d/ S1 M# {+ N0 O9 [6 ?
    chown -R apache:apache YOURLS
    & [/ Z5 O  P! ]8 l2 hcd YOURLS5 g% D# \2 D) o1 k
    cp user/config-sample.php user/config.php
    + I8 H% L( E3 J! Z, K+ W! ^cp sample-public-front-page.txt index.php0 Q. o& w* u3 {2 k0 x/ y- Q
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:6 ^) I1 s( E' q# T- r
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );# W* m* V3 J7 w# k& V- u! P' R4 ^
    define( 'YOURLS_DB_PASS', '填写数据库密码' );! M" _  V& N1 `  `1 o
    define( 'YOURLS_DB_NAME', '填写数据库名字' );6 b; W' G* b4 K% s
    # 这两行基本不用改
    . C: d8 }9 h) `( ddefine( 'YOURLS_DB_HOST', 'localhost' );' N  P" \5 K8 _: w1 z; Z
    define( 'YOURLS_DB_PREFIX', 'yourls_' );2 ?2 m5 J! E+ c. k8 G8 v
    # 填写你的域名,不要加www形式
    , E4 b9 ]' k' r# e$ ^define( 'YOURLS_SITE', 'http://你的域名' );
    % |1 s" G% \9 Q5 E/ X: ]9 l# 填写时区,国内是88 o! y' E  O4 G
    define( 'YOURLS_HOURS_OFFSET', 8 );
    ( N. ~3 N  N6 n# 设置为中文# G. G0 j3 [+ w" r
    define( 'YOURLS_LANG', 'zh_CN' );- _; j; U) O  v; t4 Z4 O+ |! e
    /** Allow multiple short URLs for a same long URL3 K0 J8 m4 t- A* D" G
    ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    6 O$ ?! ?, C" M0 S9 S4 s/ c ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */: P# B' r; \( N& }, W2 g7 k3 [
    define( 'YOURLS_UNIQUE_URLS', false );
    . ]) u1 k3 K' g1 {4 N8 A# 设置私有权限
    0 D' u) g4 X4 W( x& e2 W) s1 Cdefine( 'YOURLS_PRIVATE', true );
    " x: H4 S2 d4 b8 P+ Y2 c) J2 n8 R
      |2 |) ~/ Y4 K3 l" ydefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
      C9 A3 x9 a7 i; N, N; \# 后台登录用户名和密码,一行设置一个,请务必修改
    , W& Z* `  U: c5 i8 p4 D$yourls_user_passwords = array(4 I7 @6 t+ J( @4 X' ]1 i! z  G
            '用户名1' => '密码1',
    * j5 I) F7 h* u$ |) Y3 M. t4 b# E        // 'username2' => 'password2'," G3 ^5 u8 z7 r( t0 O  A
            // You can have one or more 'login'=>'password' lines7 e: f6 f. x7 N
            );% w1 h. v/ c1 s
    /** Debug mode to output some internal information7 r7 d# a( j1 M( r( v) Y# x, ?
    ** Default is false for live site. Enable when coding or before submitting a new issue */$ D5 c4 b  U  w$ Y' J
    define( 'YOURLS_DEBUG', false );0 Z% {6 v8 r: d8 h5 c9 ?
    # 网址中允许大些字母填62,否则填36; u5 t# b. R) Z
    define( 'YOURLS_URL_CONVERT', 62 );
    - ^) ]! o( N4 V  `3 `; D1 _/*
    # ]+ e) ]% `5 j! K, y% g * 36: generates all lowercase keywords (ie: 13jkm)( V. b5 x: y5 b
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)" d8 K9 D2 `9 k/ |+ h+ ~
    * Stick to one setting. It's best not to change after you've started creating links.
    3 e, P' E8 Q. ]  a- |* U+ o4 i2 ] */6 t$ a3 c: L8 k2 J
    # 保留的关键字,可自己添加3 e1 s5 u4 A& F" ^/ h
    $yourls_reserved_URL = array($ ~: w4 k* E; ]5 ?. F
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    * Q: O: M8 X" ^);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    2 h/ r  S* l0 [8 c& k  n4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容& X2 b; a" q, I$ n/ D2 r2 H
    server {: v. Y3 P$ e# [! Y" Q3 N, h
        listen   80;% {: ~# X. H: G% \) _' R& b
        server_name 你的域名;
    4 ~' U8 {/ N1 s% \. h    charset utf-8;% ?, Y% c7 w' [& S" j1 ~. Q- v$ R
        root "/var/www/YOURLS";
    9 D) y  S# T3 s! K    location / {9 }2 n. d8 ?' D; \
            index  index.php index.html;3 T& B9 a+ J% z" G
            try_files $uri $uri/ /yourls-loader.php$is_args$args;( [; x! s) F; L2 g4 q! K! G
        }
    1 m4 ?7 _) H7 a9 e! r  w. Q    location ~ ^/\.user\.ini {
    7 H2 k7 ]# Y$ ?$ j* W; K8 A+ W4 c            deny all;# A1 @3 U3 C/ V
        }
    9 d) T$ K  {% `# B7 Y, k    location ~ \.php$ {% b5 s6 ], i, X8 x
            try_files $uri =404;. h4 {2 T' ?8 m5 \! w5 B
            fastcgi_index index.php;
    3 r: {8 n& L- F6 Q" ]! M        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;% m0 e: b" a! A  r3 k% |
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    " v6 d9 a( l. \        include fastcgi_params;
    5 N: c/ S' j6 `& r# I* c3 j        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    3 r/ Z! c; n( t8 t5 p. O% _; V, @    }
    ) W. U5 }8 ^7 w4 f! t    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
    % |0 }6 w9 m. G4 x! W: G; T( Q        expires max;
    . Q# u6 S2 ^- s( X        access_log off;
    7 ~$ l/ W, Z- }" @9 E; h% K        try_files $uri =404;5 T6 u( j" N) j' T% S
        }8 p( Z: D8 D6 v) J( v
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    + u" n& m' _1 o) _0 H7 I; o
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    5 N& K1 ?6 G! {; l. |0 d( N浏览器打开你的域名,配置正确的话应该能看到类似如下截图:0 m: v5 R+ Y0 a
    ; g$ f8 U+ y; g" Q! ?- Q" V

    ) c/ B, f, ~5 C  W1 BYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。$ @: v2 r: R3 A- h" Q
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。; }3 I4 L9 E. C' G- m& R( L
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:4 u2 }6 ^2 s# @: Q" Y% \, L

      [. W+ E6 @* f8 [+ a1 w" _( r* B8 f$ Q) V8 Q% p+ m2 l1 E( O+ ]# G
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    0 _- S9 n/ j# b8 G推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    ! w- c% I8 {9 I6 `YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。2 w6 l. H2 w+ j" ?+ S
    最终网站前端效果图:
    ) P0 N: S! s# n, N8 l7 i; S4 j$ |6 [& S. H8 b

    ; C4 e8 J4 J5 F0 Y短网址前端效果图后端效果图:+ Q5 R6 S3 H( P2 J) B- ]5 Z( W
    * {8 m/ v8 ^: \( n
    2 h3 b# |6 k  q  K
    短网址后端效果图相对原版颜值高了不少。- F: j6 g( u$ c/ v' Y2 p" k8 S1 h, p$ g
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表