请选择 进入手机版 | 继续访问电脑版

扫一扫,微信登陆

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

搜索
查看: 624|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。& l* W5 j6 D2 U0 w) Y7 S
    经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    1 U5 m3 |" D: }+ }$ |. v本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    + i2 _4 W! F; O# ]7 E6 h 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
    0 U& }- W  L* H$ u( X& d; e, b6 t# }. l  r! X. C

    % b2 O/ u% {4 |7 L域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:
    - g+ _& T: U6 g/ b. |& E* d# Debian/Ubuntu系统安装PHP 7.42 }+ ^' @9 c! f! q5 U" V0 L
    apt install -y lsb-release gnupg2. J$ B3 L6 j0 ~& W$ m$ g2 ^
    wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -, f! T# V% ?& J- m+ g0 A# j- ~
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    9 o+ ]% G  f( x. [apt update
    , m3 F& ]5 U; j5 l6 o! papt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
    6 c1 v' {/ }+ B- ~* Y php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    " F3 `/ D, c+ I9 n$ B2 _+ supdate-alternatives --set php /usr/bin/php7.4, q$ m. m! L+ @: a( R
    # 启动PHP-FPM$ C* T5 B" @+ G8 R0 W: T
    systemctl start php7.4-fpm" Q/ V7 i4 b3 e  \9 F+ Y8 r2 N) f
    接着安装Mysql(MariaDB):, J4 O4 R( f4 {, b; D, L* F0 j
    # Debian/Ubuntu安装Mariadb
    ) Z% R# c( D0 D# W$ kapt install -y mariadb-server
    5 x! x3 z2 A& Z# Q5 D! g+ d#CentOS安装Mariadb: c+ F% r- e0 U+ A9 h% Y
    yum install -y mariadb-server( Y* \" ?; z! F2 ^
    systemctl enable mariadb) s9 q6 Q0 i" V$ z6 K
    #启动Mariadb
    9 T1 k3 M8 y% gsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:- B4 x# \5 @4 D% }5 c+ c
    #CentOS系统安装Nginx0 G; ~7 k3 G! o1 n, B1 m
    yum install -y nginx
    3 d* V2 P+ q; Q) Zsystemctl enable nginx
    3 ~2 Y7 `! O% w$ q: q/ f. Q#Debian/Ubuntu安装Nginx
    9 h7 J9 e) B8 u6 m4 g  S: Mapt install -y nginx% Q$ }# a* N2 Z/ j/ t. [: \
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。4 s4 ~" S3 @/ _3 _4 Q, [
    部署YOURLS返回目录部署YOURLS的步骤如下:
    & o. y8 T! x" B4 ^) O3 T. ]1. 创建YOURLS的数据库用户名和数据库:
    : T) A" c" l1 |! V( R( V# 进入数据库, m6 K3 r9 J# B% E$ v" |5 ~
    mysql
    3 [6 w+ Z" ?( E3 q3 B# 创建用户名,用户名和密码改成你自己的2 W% F" s  t1 b3 \8 m
    CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    7 H3 _) z) G, M+ {3 J" ?, K" K( `# G0 z5 ^# 创建数据库,数据库名字改成你自己的! K- \2 H- `  [  k. S
    CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;( t7 h' {; G* L* }; {
    # 赋予权限
    1 X; Q) O8 K6 {( n: i7 E' }1 V( jGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';& N. n! d: P1 V7 |. c, {' H
    # 刷新权限' H4 J4 ^5 {" x; R, ]
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:
    2 e( {0 T9 k* V# C3 N7 pmkdir -p /var/www
    ( i& J- O# Z& [! t; W5 z2 f4 ?9 Tcd /var/www/" a% t: _9 x: `8 f) |" r- y0 I/ k
    wget https://github.com/YOURLS/YOURLS/archive/master.zip0 X& n7 ]6 v/ @, n5 \3 |
    unzip master.zip, ^- V3 T3 [, ^
    mv YOURLS-master YOURLS4 f2 b2 O2 w& [" {: p9 E
    # 修改网站目录权限6 S& G0 o, C8 t4 b
    # Ubuntu/Debian系统
    / b) f: i: j( v) j' n6 achown -R www-data:www-data YOURLS
    & [5 I) R& F$ E% ?7 A4 |; f# CentOS
    % D3 K) K1 C- k! h' B: y% vchown -R apache:apache YOURLS6 t9 h" f' {' k3 Q' j# t6 D2 D' G
    cd YOURLS5 P% {/ `9 W* Z7 c4 x% q" r
    cp user/config-sample.php user/config.php
    - {* @1 x/ @+ kcp sample-public-front-page.txt index.php
    : C8 U6 C3 d; h+ d- a5 j; L+ {, `' \cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
    , q2 B9 Z1 Z" _" i5 H  ddefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );& u& H/ Z+ `& \: Q$ Y
    define( 'YOURLS_DB_PASS', '填写数据库密码' );$ o7 J8 c1 ~# Z: e( H2 {
    define( 'YOURLS_DB_NAME', '填写数据库名字' );, |) G, f; [+ m. s* e! Y
    # 这两行基本不用改6 g' S# D" m# d2 x( s2 U
    define( 'YOURLS_DB_HOST', 'localhost' );
    3 r7 P8 [" u- v1 F. Ndefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    . W3 S/ {7 t3 |# e' V7 Q" m2 w) w# 填写你的域名,不要加www形式) f6 ~* |# j  ^
    define( 'YOURLS_SITE', 'http://你的域名' );
    ' c( Y" |* F; W1 W' Y& X9 [9 ]# 填写时区,国内是8
    ' I/ c! j# h* w1 R" X, Ndefine( 'YOURLS_HOURS_OFFSET', 8 );
    . X% O; A! x1 A5 C# 设置为中文
    $ ?# g. G+ `# ^" k8 g6 K3 Wdefine( 'YOURLS_LANG', 'zh_CN' );# [: o1 ~  ^5 ^& c9 d& X* Y7 W
    /** Allow multiple short URLs for a same long URL
    . j9 t% k+ `: C& O' c ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior); B8 g( |4 C0 E; H% M7 [% i
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    2 b9 Z0 Z; Q- @4 d2 n7 B: ]define( 'YOURLS_UNIQUE_URLS', false );( g& f- @: s0 _
    # 设置私有权限+ Q2 @; M6 a! }: r# y  g
    define( 'YOURLS_PRIVATE', true );
    + j6 U& R9 w" ~8 F
    " s) e9 G7 S5 E% Z! s2 _define( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );8 ], h* w+ V+ S& ~
    # 后台登录用户名和密码,一行设置一个,请务必修改
    8 w9 F- R  E: w. P) @7 G! _0 s$yourls_user_passwords = array(1 d7 c2 t$ z& T% p
            '用户名1' => '密码1',
    9 N4 i( e9 G/ C; \" M- G        // 'username2' => 'password2',
    ' S9 T$ q$ ^4 l" s: [# J( s" \  h0 K        // You can have one or more 'login'=>'password' lines: O+ y  x5 Q8 e( F
            );1 Z" y8 ]% B6 Y# K
    /** Debug mode to output some internal information
    - P8 l0 p. h& H5 `+ @4 W ** Default is false for live site. Enable when coding or before submitting a new issue */; {( {& o7 A& u/ P
    define( 'YOURLS_DEBUG', false );, J" |* j( ]5 z/ [( q
    # 网址中允许大些字母填62,否则填36
    & O3 _: _; E' x) o: M& D+ N9 K' e" }define( 'YOURLS_URL_CONVERT', 62 );
    . L& ~( x. D' o& C/*
    7 j! j  H: a# ~1 [/ x * 36: generates all lowercase keywords (ie: 13jkm)
    ( W8 p0 z! X5 {% d$ }- l0 _ * 62: generates mixed case keywords (ie: 13jKm or 13JKm)1 d1 b# c8 y2 @
    * Stick to one setting. It's best not to change after you've started creating links.: D& t3 L2 H$ l
    */
    / ~, d2 R$ |* \. d/ ~# 保留的关键字,可自己添加% l7 h6 ~* w  q, L, O0 z! M
    $yourls_reserved_URL = array(. C* m" G/ i% f8 n; l( V
            'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',& v6 a. x  k/ S' Z
    );接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    + h2 S& D! x6 ^# E; k4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容& V/ Y9 x9 }: m
    server {
    : f; D; _* {6 u    listen   80;7 ?% ^& d5 `5 `0 J; z
        server_name 你的域名;7 H# i: F1 S( G- M# j" s% D, ]
        charset utf-8;
    # f6 U' M7 z: l9 ?1 n* L( z  K' Z    root "/var/www/YOURLS";
    / {6 o4 e( V( g7 c, Y3 I3 _    location / {
    * H3 _$ j7 |( Y2 ?  C        index  index.php index.html;+ G$ a# q4 U! `: _6 _
            try_files $uri $uri/ /yourls-loader.php$is_args$args;
    ' O8 n  w2 e* h( n    }
    % `6 z! ]7 E- [9 |( b' N    location ~ ^/\.user\.ini {9 S9 _* d. C) d5 b5 Y, l$ {+ x
                deny all;
    * M# E, I( y% S& a    }
    ' o) t* O$ t% I' M( w5 j! q    location ~ \.php$ {
    " m/ w- x% o1 J, w( G% E        try_files $uri =404;  [" `  r' p/ q
            fastcgi_index index.php;
    # M- S9 u1 ~7 ]7 w& v7 a        # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
    0 @, `; {( X  K* \/ w! L4 T' g        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    " q6 X, o0 q$ L# F9 {4 j; U( K0 X        include fastcgi_params;4 I& ?# e& n9 `" K& p1 k
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;* |* K6 `. ?) G
        }
    ) V  U; ]. {+ ?4 H3 h    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 ~9 K' ?/ C/ e7 _. F
            expires max;
    " d- E8 D- z) _* D$ \        access_log off;
    . e2 b6 S# m! V9 |- t1 L: y; B        try_files $uri =404;
    / a. \" b/ Q2 ?9 E2 s4 u, G2 n* j+ A    }; s- {7 ?0 o/ W5 s# c) A
    }推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    8 \" O: @  l% p5 L. y' c4 D1 O
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。
    ! m& `( c: m  _/ v  z" w浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    & t, {% K5 [9 g+ f/ c; K6 G" D9 V2 n# D. o2 A
    / K$ |9 T6 l9 m& ], m+ M( u! @' I4 F8 V; d
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    2 \6 L2 `* B' O( Q( J. q; l 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。, m, u; D, V3 c
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:  c) e  t/ G% O' Z, q2 n! m+ e' J$ L! B7 \

    2 a9 ]3 r, o( _* n3 s3 e& F7 u' Y: V, N, @4 ?" ^& R. I& Z/ ]
    YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
    ' D$ x1 S! [9 w3 ?, K8 K6 e推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。. k* ?7 J) d( K( e
    YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    $ H, _9 v; X1 I最终网站前端效果图:$ N; g- Z+ O/ s' S. w& X& Y2 f0 k
    ) B( ?7 D" g6 U$ Y4 J- a
    7 e, J1 @0 [% f2 d
    短网址前端效果图后端效果图:  b# h% M" q0 I$ k! ]1 h0 ^
    1 q  _+ [; k' F' [
    . l' M: V1 {3 F* k2 w5 H
    短网址后端效果图相对原版颜值高了不少。% a  |& [" v% p! z
    参考返回目录[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号 )
    快速回复 返回顶部 返回列表