扫一扫,微信登陆

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

搜索
查看: 447|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。3 C7 p+ {, g0 \3 q1 u5 j
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    $ j. k: R( |/ c0 z' Z# S本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。& k, S" w) ^4 K/ r
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    4 ]2 S# ~" U3 h( Z6 Q$ ?3 ]9 x% t5 A/ Q! W

    * R' _  A( }, l& N: H域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    * O: l2 ?; |+ E) h7 H# Debian/Ubuntu系统安装PHP 7.42 C4 G+ `( y) Y& n
    apt install -y lsb-release gnupg2: D# s- W6 `7 {3 V3 z- I5 _, y) m
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
    6 ?3 Z1 M8 K, f$ `; H% E, z. Z1 Oecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    3 Y4 U- Y, l6 |/ Iapt update- }  n0 x3 w1 ?; I3 k0 S1 N! D
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    ' ~# y( c+ s9 _5 _$ e  s+ n php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    8 f0 @$ N$ U5 Yupdate-alternatives --set php /usr/bin/php7.41 a: F% o+ \; S/ c% @
    # 启动PHP-FPM5 f' i9 S2 j! Q# y- A
    systemctl start php7.4-fpm" I  N8 w2 {+ n* r: L
    接着安装Mysql(MariaDB):
    0 m. v. v( a# f/ w3 k- V# Debian/Ubuntu安装Mariadb2 [! S4 h7 j  N& I+ A" B9 [
    apt install -y mariadb-server
      E2 {; H) p4 I#CentOS安装Mariadb7 D) n1 |# A6 p
    yum install -y mariadb-server
    ! {5 t# M) E. {/ X% ^systemctl enable mariadb/ r% O: h: f8 \% t
    #启动Mariadb
    : ~; N3 y6 {) F. `( {' A) xsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:5 U/ \( \1 N( n8 ]/ N- H1 A- J" b" c
    #CentOS系统安装Nginx
    : `) I4 ~0 _. Z2 F' d0 W  Q& Tyum install -y nginx7 Q" h- e. e- A: \
    systemctl enable nginx2 }' m4 T" A8 ]
    #Debian/Ubuntu安装Nginx
    / e! @; |$ S# _1 Oapt install -y nginx2 `; C2 v1 C6 [9 \3 `
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    & v( \$ y1 x0 H7 q) i 部署YOURLS返回目录部署YOURLS的步骤如下:
    ; ~- p; c# G2 V) a6 \( s1. 创建YOURLS的数据库用户名和数据库:+ b2 r. o6 K/ n% g# W& \) h
    # 进入数据库
    # n! x, Q+ C1 ^5 {+ qmysql
      i* @$ E5 M( Y) q# 创建用户名,用户名和密码改成你自己的! \7 l# K; N; Z# [6 y6 Y( g
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    1 F. V/ t6 q/ d# 创建数据库,数据库名字改成你自己的
    0 h& `9 V) \% M5 SCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
    " r; Z% {9 t/ V6 I# 赋予权限
    ) r) h. w- s- r* O$ a- vGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    . ]4 i, a" w+ ?2 D  J( }# 刷新权限; @9 I% {) |  r
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
    ( A5 z! B/ _5 Y# E4 Hmkdir -p /var/www3 _# g& u3 G: H% q: R4 u3 X6 j* H1 L
    cd /var/www/
    # ~# b* j, {5 A! v5 u( Mwget https://github.com/YOURLS/YOURLS/archive/master.zip6 N7 i! E, h1 p: }$ |* R% i( i
    unzip master.zip
    # d) W: U) a# @+ `( Ymv YOURLS-master YOURLS
    $ A, O6 }, M& f; }. d# 修改网站目录权限! W3 H! [% J7 c" u+ A5 z
    # Ubuntu/Debian系统
    7 j' q+ {# v! y; Z0 d' Q- f, _) ^chown -R www-data:www-data YOURLS/ ]* O% L/ c4 r' G
    # CentOS
    % }4 j% L1 P) r) [chown -R apache:apache YOURLS
    5 t  x3 d' h1 c4 icd YOURLS1 V. ~5 U2 e3 F) p$ M( r
    cp user/config-sample.php user/config.php1 ^+ c4 K0 ]& x3 l
    cp sample-public-front-page.txt index.php$ w5 Z' M" T4 \4 a
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:& b: W1 G. o0 i  Z
    define( 'YOURLS_DB_USER', '填写你的数据库用户名' );
    - H' W3 `/ h+ d  Ndefine( 'YOURLS_DB_PASS', '填写数据库密码' );3 a2 I3 U" ?# K) _+ h* O/ {
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    ) _7 ?# W$ v$ Z1 i1 I7 c# 这两行基本不用改
    7 k+ s9 B6 l1 B- qdefine( 'YOURLS_DB_HOST', 'localhost' );  [& ?: J/ b: G' \0 x) j" m) y
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    : f- J) }- c1 f3 _; q; ], ^! r# 填写你的域名,不要加www形式
    4 b) C! K2 l8 Q* d: k9 |define( 'YOURLS_SITE', 'http://你的域名' );' T+ V) ]5 x0 F: L
    # 填写时区,国内是8
    0 r5 \4 j. f8 qdefine( 'YOURLS_HOURS_OFFSET', 8 );- ~1 a( g1 e: Z5 s' D) y; m/ z
    # 设置为中文
    + k  v) G4 j' k5 l5 ?; T; ~define( 'YOURLS_LANG', 'zh_CN' );
    7 y  ?/ ]. Q6 c' U- b3 r; c/** Allow multiple short URLs for a same long URL
    5 S6 M. N2 p1 D+ L$ W$ P ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    & X" y- n( t: R9 q1 W! } ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    : Z! h: F, X; m3 Q- R- u, K# s! v8 Vdefine( 'YOURLS_UNIQUE_URLS', false );
    , t0 t+ a; {  p3 u5 X# 设置私有权限, C5 W: |' F' H" e0 P
    define( 'YOURLS_PRIVATE', true );
    ! ^& _8 s+ M# J( u/ M" G4 }
    , P% [+ b% X0 W0 _1 n6 K. |define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
    % Y8 x* b8 y" c1 T1 {# 后台登录用户名和密码,一行设置一个,请务必修改  N7 a- ^6 n8 e  `
    $yourls_user_passwords = array(
    - a# ^6 e5 g" [        '用户名1' => '密码1',0 Q- j, w- S" L
            // 'username2' => 'password2',
    3 E1 ], M& o1 E! U! z, z        // You can have one or more 'login'=>'password' lines
    9 e" o8 g2 X+ {& B        );, n+ U# s, g0 r  l  W+ c
    /** Debug mode to output some internal information
    7 `, f3 e8 [" G% f5 p" n0 j) d ** Default is false for live site. Enable when coding or before submitting a new issue */
      W6 x* z, _, F, G# g5 Z8 i9 Edefine( 'YOURLS_DEBUG', false );
    4 }- Z% U  p  ?* P, v, E# 网址中允许大些字母填62,否则填36
    : u7 w) j: d6 d% E0 Bdefine( 'YOURLS_URL_CONVERT', 62 );. w2 `$ @9 c  Y/ ~9 l7 P
    /*
    8 E3 a9 y- O2 g * 36: generates all lowercase keywords (ie: 13jkm). h. P# p3 N# u# [2 Q9 F
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)9 O  N+ T4 X5 u- B/ E4 h
    * Stick to one setting. It's best not to change after you've started creating links.8 q! ]5 F0 v7 y, T7 X
    */8 B0 A7 E: u( U; v% F
    # 保留的关键字,可自己添加! z5 Q4 L8 v7 h# G0 F
    $yourls_reserved_URL = array(
    : l7 r& h" M) ]3 Z  V) D; P5 g+ |) J        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    - f" G3 k3 Q' ^% h. K4 k3 K);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。9 K* q( e3 |: ?7 U5 ?/ n; Z
    4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容9 ]% Y, c1 @) r" [
    server {
    ) B+ |; s  k) l. D    listen   80;
    # a) M0 B$ N* [9 ^8 C7 ]( X' y8 h. Z+ A    server_name 你的域名;
    4 v) l+ B4 y8 r$ Y    charset utf-8;5 s" y/ Y% {) q/ |+ g# z
        root "/var/www/YOURLS";
    " L# {4 \* C5 r0 P  O& \    location / {
    ; w9 i% p! O) O  J. J2 @. ~) y! I        index  index.php index.html;
    " N" x9 G$ W6 f% S8 ~" H        try_files $uri $uri/ /yourls-loader.php$is_args$args;) Q. |$ r" a( {& M6 Q
        }
    - Q! ~2 D& o- [  J5 |( m  [    location ~ ^/\.user\.ini {; N' j& l5 Z) V5 M$ B/ x7 G
                deny all;' v3 i7 G7 Y. P
        }
    2 [9 n/ R$ V" v$ [; W: a: v+ w    location ~ \.php$ {
    ( R+ k; R* m+ Y+ H/ C        try_files $uri =404;1 p' ~+ k0 v1 [2 i2 i6 w! r% ~) }* C
            fastcgi_index index.php;
    ! f+ s" [) B: z6 g# C7 m        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;. s7 Y- z' x3 d5 |/ Z4 W% O
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;+ f' t, Z1 k  v5 U7 R$ O1 x9 ~
            include fastcgi_params;4 {- S) l/ Q$ h( z
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;* h- ^, r) Q, b
        }  x( }6 T( }  S4 ?& S2 h: 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)$ {  I" `8 O7 y0 Q6 g  e0 m% e/ k
            expires max;- u2 v  ~  c' Q! P( d
            access_log off;, t/ F: z" Y" I
            try_files $uri =404;  Y( V4 k4 k; k0 C
        }- _6 C# t! L3 s8 B
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    # i. D: T' c3 `2 M/ X
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    7 G$ i3 Q( ?1 O- g+ O9 D浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    0 e# c* P! z4 A0 d# m
    ( V1 c, ~& F5 I) B
    3 g  z* b% w: n% \" _' c( fYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。! j3 b. p: _3 u5 a1 b/ Y
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。$ x% q8 Q/ ]" m4 i' g8 V1 S
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    & I4 R7 \) S! h, B+ A
    ! x6 s& n: o& O2 h) K/ p; G# w6 a/ w1 p4 @
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    % l  `8 r( S: ^+ d& I1 L( X- \推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。' _7 c) s( _$ C9 C4 n- S
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    1 v- C) u- z" A+ K6 e" [最终网站前端效果图:) h! P! c. v3 \$ L/ Q, z. Q4 t3 P

    : x3 {1 ?5 }/ S4 S* w. K0 Y' \: ?. `9 D
    短网址前端效果图后端效果图:
    % e: T1 M9 ]2 {# l
    ( x1 D6 p: }" F9 n% s2 r( O
    ( N  E7 p1 ^* V+ [" t短网址后端效果图相对原版颜值高了不少。
    5 o0 I: P* @) E; P* w 参考返回目录[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号 )
    快速回复 返回顶部 返回列表