扫一扫,微信登陆

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

搜索
查看: 288|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。# ?3 {2 j" l# B5 Z, Y2 _+ X. ~
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。: E' F% U! v  K+ S% Y" V  g. ]  U
    本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。1 U4 S. F: t' Y. `
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    % Y* [. C/ _$ P6 a5 {' j
    3 S$ N- o$ p, P% X3 c
    & l, i- b% Y) n7 N. ~& C% X域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    9 q  u/ ^* u9 \. P# Debian/Ubuntu系统安装PHP 7.4
    , F# z1 ^4 h- T1 t4 |3 {; Aapt install -y lsb-release gnupg2
    ( v9 s) w) d! c, T) Mwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    3 r! \8 m& ]/ F; Z1 l0 recho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    6 H2 h4 M! ^% G# X! o7 `& ?apt update/ ]* F' G4 N; ]) p# C3 S4 y
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    7 k8 q4 m3 m4 s php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick. m3 v* M' E6 @$ [
    update-alternatives --set php /usr/bin/php7.4; {3 S& `, l. \) X1 U9 J9 I
    # 启动PHP-FPM8 K' i$ v2 E9 @; X6 T' ~
    systemctl start php7.4-fpm3 L# v8 p+ a- H( e) k7 \0 a/ y( C
    接着安装Mysql(MariaDB):
    ; ~1 q& m$ E4 ^  {- R- A0 ]7 s# Debian/Ubuntu安装Mariadb0 q/ B# m) ?& M8 b
    apt install -y mariadb-server
    % x( I' z5 ]" H$ B% R2 K  r#CentOS安装Mariadb
    ( }6 |; ~) J& Z, Fyum install -y mariadb-server
    + U! J: c1 V( V% ~3 Rsystemctl enable mariadb  L2 \8 R& z- w  n1 U  \2 p
    #启动Mariadb( s, n4 k) P6 F% z, N
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:! [- G+ b5 j) I
    #CentOS系统安装Nginx
    6 G# [. U+ ^: O( m$ K6 \8 }# H. |yum install -y nginx
    6 e* D: L% w1 t+ Lsystemctl enable nginx
    # w# `* f3 [! Z; ]' T. |; ?#Debian/Ubuntu安装Nginx
    8 K; U4 a3 w! dapt install -y nginx, Q. I! Y& N$ X# o# s7 M, p1 X
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    ' w' I$ r2 b6 E! e 部署YOURLS返回目录部署YOURLS的步骤如下:3 C  \! c# `$ M# @2 l* r1 x) B3 R3 }
    1. 创建YOURLS的数据库用户名和数据库:
    / {4 k' Z9 I: y9 o% k) ]5 F# 进入数据库
    & C+ F2 y( t0 ]* W7 g: t' Wmysql
    ( m3 V8 N* t% s5 g) z7 D  j9 I# 创建用户名,用户名和密码改成你自己的
    : D5 X- L% P% {3 A& {5 D# Y* OCREATE USER 用户名@'%' IDENTIFIED BY '密码';
    # H9 {4 {5 b6 C# 创建数据库,数据库名字改成你自己的
    ' k' N; p( O8 {# k) dCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;0 T( M; ~! B' B1 P$ u
    # 赋予权限- K- w5 f1 K0 }) I( p. s4 ^' h
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    $ \/ e5 l. H+ v# 刷新权限  n3 A! B( u" Q  V; K  \
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:1 d7 Z( `# I  |8 U
    mkdir -p /var/www5 ~  z3 y" e4 I* U
    cd /var/www/
    * @( o2 N8 L/ U8 P& D8 Fwget https://github.com/YOURLS/YOURLS/archive/master.zip+ I2 F0 t; ~! @' z. j) g0 T
    unzip master.zip% P9 P" f# G, p- }
    mv YOURLS-master YOURLS
    ' @  C& u9 o3 ?# 修改网站目录权限
    2 I( l: c: J! g7 {# Ubuntu/Debian系统
    + e' H! M- j5 `' t# g0 u( G. Wchown -R www-data:www-data YOURLS
    3 Y8 C% }: ^; T. ?' @; ?- }; w4 _# CentOS. w/ Z# v& \" \+ @9 J- z9 m
    chown -R apache:apache YOURLS
    5 d3 A& v6 Z2 Tcd YOURLS
    ; y$ I5 Z. u- e$ Lcp user/config-sample.php user/config.php% B# I, D# |' f" Y0 R, ?% D
    cp sample-public-front-page.txt index.php/ t- ?/ l: G* I$ C, d! a5 }) o* J
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    7 d+ [2 @: X6 U0 q! ~  `# Edefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    - e# h1 i. w( H2 Y) y; }: [% b3 i. pdefine( 'YOURLS_DB_PASS', '填写数据库密码' );4 R, ]9 t: j1 g, W2 R
    define( 'YOURLS_DB_NAME', '填写数据库名字' );" z' o+ x3 i, b5 Q* L! `
    # 这两行基本不用改
    / b* q. @! c1 P  C) adefine( 'YOURLS_DB_HOST', 'localhost' );% _" B, L/ X$ v$ ^$ K" E7 {; d
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    7 x' @& d3 w% N9 i# 填写你的域名,不要加www形式. j) a9 P5 T. ?8 @
    define( 'YOURLS_SITE', 'http://你的域名' );
    ) r0 l# J4 q$ e* F( z# ?7 n6 m& Y# 填写时区,国内是8
    . r9 n& _$ Y1 V: ^- Hdefine( 'YOURLS_HOURS_OFFSET', 8 );
    2 z; t" H7 M9 c$ l5 A( f3 ]* a1 Z# 设置为中文
    / y" P' k- }' O7 N* h4 Sdefine( 'YOURLS_LANG', 'zh_CN' );
    4 i5 Z' X) }5 D' l$ d! L/ {& }8 W+ ~, I/** Allow multiple short URLs for a same long URL
    $ y) t% l' J5 M# V, M) ]2 ` ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)4 k2 G  M3 g5 u$ e6 y- O
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    / e* W0 n' O8 v5 Q" A4 ^1 r) Wdefine( 'YOURLS_UNIQUE_URLS', false );) H1 V! i7 z% s. n9 `
    # 设置私有权限
    ; ]4 t5 A  M$ J& D- u4 bdefine( 'YOURLS_PRIVATE', true );. m5 p/ K- G+ j! b3 j
    ' g6 M2 w2 |7 Y5 Z
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    + z" J) f. S4 q$ U. u8 r% q$ Y# 后台登录用户名和密码,一行设置一个,请务必修改- }4 @6 k( G' K% I
    $yourls_user_passwords = array(
      Y( A# G- e1 G$ p        '用户名1' => '密码1',
    , b( A( \7 h& T* K5 x2 E6 ^7 @        // 'username2' => 'password2',3 Y$ S9 c$ t9 R6 t
            // You can have one or more 'login'=>'password' lines
    4 }$ L2 l' D, P6 J. X: G: b+ e        );
    . h- i) V( ~; X3 _7 R0 I/** Debug mode to output some internal information
    " N+ H2 A0 O# L+ Q( @ ** Default is false for live site. Enable when coding or before submitting a new issue */3 n+ e$ f3 O# V- J- q5 q1 y
    define( 'YOURLS_DEBUG', false );8 S6 U- P" Y( ]) t
    # 网址中允许大些字母填62,否则填363 O: l% \& ?2 k' Q
    define( 'YOURLS_URL_CONVERT', 62 );
    . x0 i, ]" {, \3 e, }4 A/*" n3 V  `5 O: c6 H9 [2 q
    * 36: generates all lowercase keywords (ie: 13jkm)
    6 E& M3 Z1 j4 f7 g) y( \ * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
    1 g' ]5 C1 y# c  ~( C* o * Stick to one setting. It's best not to change after you've started creating links.
    8 V' m" Q( j* [ */& P# `1 r6 j, t0 g3 |# G( @
    # 保留的关键字,可自己添加' X% ^1 G/ ~& `7 |. U/ a' H
    $yourls_reserved_URL = array(
    0 m# P) j. i2 G4 W        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    9 S. ^8 K# i3 M, T; Q8 D% u);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    2 x2 j7 v4 j1 ^/ T4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容# {; _+ A: E+ R; }' `
    server {) S4 z, U# t8 F1 E) f  I9 h
        listen   80;
    & B6 A$ V5 ]0 a4 q' f  U" Z) k    server_name 你的域名;2 p3 J, x+ q( d2 F& W3 O
        charset utf-8;- j4 x, c$ {( T! d3 d# Y
        root "/var/www/YOURLS";
    0 R! F% M: A, a    location / {
    % b+ L" V+ U' }, c7 H! U0 u% V        index  index.php index.html;
    * L/ I2 e# J$ h) H8 A        try_files $uri $uri/ /yourls-loader.php$is_args$args;
    - b* Y0 E% @3 c  u; ^    }: A$ o3 A" s" ]& A2 X
        location ~ ^/\.user\.ini {
    : X* F* r* Y3 a0 ^4 L            deny all;
    ! b/ e1 Z. B3 x! G2 R/ G    }
    6 P3 }+ p; J6 k3 n' {+ ~2 l# p) T    location ~ \.php$ {
    2 O' ~& C& i. ]0 z, B' K; ?        try_files $uri =404;( \/ j5 J1 ?+ R9 e
            fastcgi_index index.php;- z7 r4 ]6 k& S, M, h9 e1 A
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;  t3 r$ b; `' v- Y' }2 S3 k
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;3 e* _1 x+ v/ a5 E* ], w2 M4 e
            include fastcgi_params;# I0 H, N9 ~/ v0 Q2 t8 Z. h
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    1 E$ H8 r3 h4 h    }
    6 l$ [( v) u8 M- Z    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {) d- w2 T( b% Z; ?; P
            expires max;
    " A- j5 y0 K& i, i! v        access_log off;
    4 d1 P# b5 ?/ C6 D/ R4 b. P        try_files $uri =404;
    9 A! ^; o9 J7 i    }9 \1 `- Y1 M0 D3 K: u" Q8 k
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书2 a4 h; Y) M1 _% K
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。' C1 z# K% u- O- N6 p9 G
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:3 O9 s7 ~! Q& B0 @/ e6 t, u. \

    ; y5 G# B; b" Y2 k
    6 j0 Q$ l, F0 q- O2 JYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。8 m8 U' D4 O- V3 [. X0 H. ]( {
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
    * v2 J2 B( d) h0 u首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:( T' {4 z. g7 I) z! {) x" M
    - o  F1 u. k' s6 M) z( T

    ! g9 a% M% D- S7 h! C- y0 UYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    9 ^/ A  |) B. @0 t8 k推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。  P$ s, z8 V5 X1 ^0 x
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    9 c( s8 H2 r# }! _) G. \最终网站前端效果图:
    2 @* H& |) \, k9 |
    3 G3 p: v) Q! X- X
    6 W, B6 Y: _' t1 b  G短网址前端效果图后端效果图:0 D/ b5 \$ v9 A! H3 H/ a: r
    & y% r, K/ `" ?% Y

    6 y! w" W* A  x6 H短网址后端效果图相对原版颜值高了不少。, q. C; b+ J# s
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表