扫一扫,微信登陆

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

搜索
查看: 365|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    7 G$ Q( b, L! w+ x( `6 R0 d5 x. r经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    8 S( v6 H9 Q2 q- z8 T% k6 m本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。, O5 i- U8 z9 K* Q7 R7 z
    使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    & S; W* l+ w; ^; H7 Z6 ?( G1 E
    & z; G# ^( l& R. g
    & i( c9 D: f* E- _- j$ l1 C$ i域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    $ N( a* m. H3 ?$ ~- G4 G: ^# Debian/Ubuntu系统安装PHP 7.4
    - b; e% g! H, X( Aapt install -y lsb-release gnupg2. o3 V% u# s5 a) v- n9 a
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -3 S& C% c1 Z9 I7 p
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list3 K% u" Q; x2 ]* f
    apt update2 d! Y# a- Q: v2 U
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \& E: |9 M9 K; `' @: p6 I) |
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    0 B* A( g9 j7 P* a! {update-alternatives --set php /usr/bin/php7.4
    % E! s' c7 t; t# 启动PHP-FPM4 y9 Q: h5 _. a7 h/ G" S
    systemctl start php7.4-fpm6 C6 d9 g- N' a5 r0 k6 d
    接着安装Mysql(MariaDB):, C" k7 `' S) p, Z; a, @
    # Debian/Ubuntu安装Mariadb3 K0 p9 I1 I4 ^4 f8 S( H; O
    apt install -y mariadb-server
    : s6 J6 V% p- u5 B0 F7 t/ K#CentOS安装Mariadb+ {8 s, S& d( J; D7 _1 r% G2 X" k5 r
    yum install -y mariadb-server
    5 P/ _+ f9 I5 f/ U9 ?$ Nsystemctl enable mariadb
    5 o+ H3 w+ ?" ^& N: A#启动Mariadb
    4 O. X" M+ k3 b/ D2 E; r- F2 Psystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:4 Q+ Y1 h0 z3 r4 }/ V
    #CentOS系统安装Nginx  A# K8 @& Z8 _9 f
    yum install -y nginx: ~  M$ M( m$ T
    systemctl enable nginx
    5 u  u+ K- r; f#Debian/Ubuntu安装Nginx. m' K; v1 I! J* Y: w! w% O
    apt install -y nginx. E  C$ o! c+ S8 B$ C+ u% P' o
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    - D; r0 C! R- f  P6 g% b 部署YOURLS返回目录部署YOURLS的步骤如下:
      q! l0 h7 D3 J* ~  Y$ ?+ f1. 创建YOURLS的数据库用户名和数据库:
    3 G% v0 m# X6 I9 i. h# 进入数据库) w/ b, m) P) Z+ A0 ~0 P
    mysql
    3 `# r) F3 a: X  D6 ?8 I" l& q" ?% p4 ]# 创建用户名,用户名和密码改成你自己的
    / r/ M8 X# M3 G! }* NCREATE USER 用户名@'%' IDENTIFIED BY '密码';9 n7 E; y2 {. D. h! S
    # 创建数据库,数据库名字改成你自己的+ d) R5 b( u; ~
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;, k7 B* z7 n+ c
    # 赋予权限2 a/ H+ Z0 o% d% M! T
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';3 J* A: a. V, t! N3 R) O" g
    # 刷新权限
    / v: [2 s3 A5 U$ S; MFLUSH PRIVILEGES;2. 下载和安装YOURLS:
    $ _7 c8 H4 j. t6 M/ g" Rmkdir -p /var/www
    + [# w* M% {5 f! \& icd /var/www/- j5 Z2 n- Z% J) |  ?- m) t- s+ E
    wget https://github.com/YOURLS/YOURLS/archive/master.zip/ `& t* }) Z4 T1 O7 W0 I
    unzip master.zip6 c  b" ~9 [5 y3 Z1 s8 I
    mv YOURLS-master YOURLS& K) Z9 Y/ F, u$ v
    # 修改网站目录权限
    : I1 n* O0 x/ d7 h# Ubuntu/Debian系统
    8 D6 ?9 _. [0 [6 {2 q1 |chown -R www-data:www-data YOURLS8 C6 k, o) W+ s0 ^3 L6 r8 w' e
    # CentOS
    6 R  |" \& j9 p& d( V/ B! \( f" \0 k" uchown -R apache:apache YOURLS! M1 ^0 {0 B7 `. R+ G# q
    cd YOURLS" X- p7 `5 }# N( D
    cp user/config-sample.php user/config.php
    ' {/ A. P! O6 j4 k$ X. H4 o  g2 lcp sample-public-front-page.txt index.php! j8 R8 e( l( ~2 ~" Y* s! k3 B5 v* a
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    + J# K: m& R5 R) f$ p4 P$ {$ g, ldefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );& K7 @) I+ I. B1 Y' X1 j6 Z
    define( 'YOURLS_DB_PASS', '填写数据库密码' );2 U& Y- D9 e% q  b  j( B# U
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    * f, m* N: g8 |& n) Z# j: O4 @7 K+ ^2 G# 这两行基本不用改8 M2 `  J& T$ y' o: J0 a
    define( 'YOURLS_DB_HOST', 'localhost' );/ j4 B+ z1 Y2 x9 o; m% t* w4 \6 }+ N
    define( 'YOURLS_DB_PREFIX', 'yourls_' );
    ; Z0 u4 r( V+ `' @" H- B0 i# 填写你的域名,不要加www形式
    2 R. q/ _2 a6 j$ \/ d& ?3 F5 @$ Edefine( 'YOURLS_SITE', 'http://你的域名' );7 D; G# H/ O/ k5 S4 f! Q
    # 填写时区,国内是8# s3 d) j  @9 j- s9 T
    define( 'YOURLS_HOURS_OFFSET', 8 );
    $ s7 o# D4 O, A2 ~# 设置为中文1 i' V( t( }5 ?( G- d# B+ d1 o
    define( 'YOURLS_LANG', 'zh_CN' );/ R! H  Y3 z6 g) g. K
    /** Allow multiple short URLs for a same long URL
    ! ~  `6 l* \' B7 Y ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
    : Z. z0 L% z& j! w; N! X3 y ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */" e/ C7 r3 ^# B" v
    define( 'YOURLS_UNIQUE_URLS', false );$ k; q* C- R5 T
    # 设置私有权限+ {6 e6 ^4 }/ E' s  @, A$ `( h
    define( 'YOURLS_PRIVATE', true );
    3 F; r% E# Q, G0 N) {& c# \) q4 Y5 v7 }1 s2 P. H) z
    define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );( M; A9 d0 Q6 x$ X1 G" S
    # 后台登录用户名和密码,一行设置一个,请务必修改
    3 K* y8 A  y8 E: o: ?$yourls_user_passwords = array(
    7 k) A' E5 v1 c        '用户名1' => '密码1',
    8 s# S. s- ^. Q. f7 Q! }; s5 K        // 'username2' => 'password2',
    . C1 ~" g2 V6 J7 u3 J. ?) F        // You can have one or more 'login'=>'password' lines
    ' h0 k4 O( o& c7 \3 X3 w        );
    9 U7 R- l6 v: X7 D% a, W6 @/** Debug mode to output some internal information
    / ?; i) m& y2 e  v- k0 A ** Default is false for live site. Enable when coding or before submitting a new issue */
    5 t5 ^2 Z* {7 Q, z9 `define( 'YOURLS_DEBUG', false );# f2 x; [+ U! b2 w
    # 网址中允许大些字母填62,否则填36
      Y( \1 f, e  b0 y9 S) O7 A  Mdefine( 'YOURLS_URL_CONVERT', 62 );
    : B7 I* ^. B* K, D% C9 c% H  F/*
    1 i! W/ V# b/ r7 A( m$ Y * 36: generates all lowercase keywords (ie: 13jkm)
    - m/ u6 r4 a$ {  q/ z+ Q2 @ * 62: generates mixed case keywords (ie: 13jKm or 13JKm). w& i% B* H% T6 p! q# a! G
    * Stick to one setting. It's best not to change after you've started creating links.
    $ y2 G* ?, I" p% A5 m9 n */
    . D2 `' P0 C/ L% R% [3 i7 d3 g# 保留的关键字,可自己添加
    % n8 ^" F) N; V6 G0 H6 p$yourls_reserved_URL = array() z) n& Z7 i+ I: [$ s: ]
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    6 g8 v$ r) F2 a6 ^) N! y$ E);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    4 v5 j, n5 {% x4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容8 _' @( D1 L: g% f6 O
    server {
    " a4 Y" S$ [& [- P% `6 |9 V    listen   80;6 h; B0 L' V2 U. v8 C3 \
        server_name 你的域名;1 K0 u+ ?' t, C" [+ {7 T
        charset utf-8;
    ; J1 ?* h  @1 R    root "/var/www/YOURLS";
    4 ?6 q7 [) O- C" c0 A    location / {1 U6 ], S' _; A4 @' n3 |+ I
            index  index.php index.html;3 Y4 N( |+ ^0 K) T+ Y
            try_files $uri $uri/ /yourls-loader.php$is_args$args;2 j  g  i+ {; Z8 E7 L+ `. T# S9 {7 N
        }' a; N$ m$ B0 Q! X2 |6 R
        location ~ ^/\.user\.ini {
    ( {  V# Q& {1 C$ }6 o            deny all;& h" z3 W, L/ c( {
        }
      U- k' M# R1 S* n    location ~ \.php$ {+ Q; G8 L" q9 E8 ~) _* I0 b+ Q+ j
            try_files $uri =404;
    , O1 _9 d8 O2 K        fastcgi_index index.php;
    . M# V' M5 W: o$ i, P        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    9 w: C% {- n7 f) X  b0 n, L5 ~        fastcgi_pass unix:/run/php/php7.4-fpm.sock;) ~  Q9 O8 \% ^# m* s# r
            include fastcgi_params;
    6 }) Q7 g" u. P        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;3 \6 Z  u! E4 E( g
        }
    ' J5 Z. \( _7 e    location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {" [5 P& q  c+ `: r
            expires max;' Y9 R" H# d. M) m% D" P# l0 T
            access_log off;
    ( M7 d  X5 @$ O- }2 b* P        try_files $uri =404;
    0 X4 R' g3 ?5 p7 r! [7 |    }2 M0 F) ^+ G" W
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书  j1 X- y1 q  [
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。2 G' u! k2 V6 u$ W# U4 M$ ]
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:% g6 Q4 x/ U9 y* q7 P5 B; u

    * s& @  p9 x# w7 a7 ]: Y8 p3 ]) m  A; j3 {+ x/ y$ L
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。9 T: K8 n% `4 F; B* A7 H( G/ ^
    配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。/ O9 f- S1 ?7 j6 E$ J( [
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:2 ?7 T7 U+ ~) m" A; H
    4 o8 _/ u) o7 A+ X2 t% s
      x# w" I1 E, A% f: r7 u/ ]
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    # T9 ?- n5 X! D9 |% g推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。" K$ Y) I+ w" v5 X- q2 z
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    / q2 h4 r% `8 Q5 x; b最终网站前端效果图:1 h- R' k9 k. @& S% T2 D
    : ~) O/ G' H6 P9 b, \, f

    & Y# V5 u2 E/ h1 [/ ~* ]: F7 M' r短网址前端效果图后端效果图:  z1 B8 y  v( j' B/ e& T

    # l% g$ v- f9 }% U$ [4 A+ E# Y! Y$ L1 Z/ H: S2 {
    短网址后端效果图相对原版颜值高了不少。- v: k5 F$ Q  f* i7 g1 p3 {
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表