扫一扫,微信登陆

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

搜索
查看: 554|回复: 0

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

[复制链接]

1万

主题

1万

帖子

5万

积分

论坛元老

Rank: 8Rank: 8

积分
56206
发表于 2022-9-11 21:04:53 | 显示全部楼层 |阅读模式
本文目录
  • 使用YOURLS搭建自己的短网址服务
  • 部署YOURLS
  • 配置YOURLS
  • 参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
    ; F, _8 W/ u# Y" v, `# M% m( ?/ m经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
    1 u' x/ f0 h/ F% k* c6 c6 c本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
    / p% }# p: n( `$ _ 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。* o" {/ u& U; a7 C6 z3 Y% X/ Z
    / D# ~- j: T% ^
    1 E: V% D1 {6 s; P1 J. m: W  I
    域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:) m; a/ v+ W. O, E% t" k: y
    # Debian/Ubuntu系统安装PHP 7.4! h( \$ ]$ J9 h! l
    apt install -y lsb-release gnupg2
    / e9 V' W/ [# ]4 Q$ g1 z8 n1 }: ~1 [wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -4 O$ f( B' _6 W5 w+ H
    echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
    + k7 N: u) S) x# q. x7 lapt update% Y% c" z$ j  i$ x, v8 {7 r2 Q
    apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \, G% U: T( }* {8 b0 s, h
    php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
    9 @' F6 f3 ?3 t4 i+ qupdate-alternatives --set php /usr/bin/php7.4
    # Y. P# S" a9 N; }" T, N. y# 启动PHP-FPM
    ) F+ Y; s, f: _) _, m, nsystemctl start php7.4-fpm! X$ d  Z' N2 Y1 S. T, T
    接着安装Mysql(MariaDB):
    8 g. k' a1 M( V7 w' w7 j+ ~# Debian/Ubuntu安装Mariadb
    0 J2 [$ y% f0 X: |9 m: eapt install -y mariadb-server
    & |: L+ Z5 \5 s6 Z/ \$ L#CentOS安装Mariadb
      I: i' e9 h. Syum install -y mariadb-server
    2 y8 ?, X. `" L5 ^& ^- Ysystemctl enable mariadb  L. p8 C1 N0 A3 B) z
    #启动Mariadb; G* s; u, X! b( v8 b
    systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:
    ; Z4 v0 K! x) Q: ]% ?' \( L#CentOS系统安装Nginx
    ! J! o9 L- S2 p3 {yum install -y nginx
    ( ^7 ?9 ?: ]' q- c! ]- }systemctl enable nginx' A! @$ n; B1 z8 O" B' X( U9 a* I
    #Debian/Ubuntu安装Nginx3 N+ K$ h$ }+ S/ `# s1 G
    apt install -y nginx% I0 B2 q. F7 q: J2 N0 j
    安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
    / w- M! n& ]" U/ r 部署YOURLS返回目录部署YOURLS的步骤如下:0 x3 {$ f; w# D8 t
    1. 创建YOURLS的数据库用户名和数据库:* f- ~0 t$ n6 Q* e
    # 进入数据库
    & w$ L) S, P: J) ~, Dmysql, X* [  @8 q5 p/ a# z; B  f
    # 创建用户名,用户名和密码改成你自己的
    - Z8 p" }5 @- c+ `/ h+ I# iCREATE USER 用户名@'%' IDENTIFIED BY '密码';/ m/ V, Z& J6 k$ s# h+ S
    # 创建数据库,数据库名字改成你自己的
    , d6 p/ |! M% m0 FCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;: x' Q: }- s3 D: |, R
    # 赋予权限7 H7 b  f1 z! C" g+ o. s% Z6 K  I
    GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
    ( V; N; g7 v' ]$ u# 刷新权限7 H% J$ |7 g9 O; R+ _
    FLUSH PRIVILEGES;2. 下载和安装YOURLS:$ r, J1 x9 {6 D. J0 U5 m& Y, Y
    mkdir -p /var/www  |% F* k8 l6 T0 @: O$ B
    cd /var/www/* A) {9 n& Y; o. Z% l
    wget https://github.com/YOURLS/YOURLS/archive/master.zip$ n# Q) v% P0 F0 T' Y
    unzip master.zip
    $ y8 K. D6 H" ~, Rmv YOURLS-master YOURLS2 j6 W! {  e! q8 t4 v! ]3 L
    # 修改网站目录权限/ @0 d4 z* T+ @
    # Ubuntu/Debian系统
    # ?5 x) r) s, @! h4 j9 \chown -R www-data:www-data YOURLS
    ' X/ q" i! V+ f! i& U# CentOS
    " H/ X( j, c) I8 {0 j( s8 ichown -R apache:apache YOURLS6 f4 p8 e2 z: c" X: b! Q5 b
    cd YOURLS
    , D6 m6 }2 H) w3 O& {cp user/config-sample.php user/config.php" k  A# t0 h1 o4 v# r8 \
    cp sample-public-front-page.txt index.php% D2 U. g1 C" L4 m
    cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
      |6 r/ W- `+ }7 J) B+ L  Z$ zdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );1 ^9 @: x! f4 \, A; Y6 E* y
    define( 'YOURLS_DB_PASS', '填写数据库密码' );' Q0 a- Y* i) y( v2 g
    define( 'YOURLS_DB_NAME', '填写数据库名字' );
    3 S7 p3 g% D$ {3 t4 r# 这两行基本不用改* y4 u  ?3 P& `
    define( 'YOURLS_DB_HOST', 'localhost' );
    6 p$ E+ N* t. bdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
    " \4 e# p; @4 ~; k, @# 填写你的域名,不要加www形式
    ; o5 n/ o# z4 R. R& @* M) {7 Ldefine( 'YOURLS_SITE', 'http://你的域名' );
    3 ^4 r  t$ H- K0 L# 填写时区,国内是8
    6 P. ?' ?# V( A8 K( b( Odefine( 'YOURLS_HOURS_OFFSET', 8 );: k! F2 u; S( t2 y2 k
    # 设置为中文
    % G- i- j8 e# N! g& [$ q0 ddefine( 'YOURLS_LANG', 'zh_CN' );; [& a2 F4 Y% z( p
    /** Allow multiple short URLs for a same long URL
    7 z" ]  a. }0 D/ J ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)9 J$ R. O; g% `4 Z
    ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    - e9 y# N9 H( C  C) wdefine( 'YOURLS_UNIQUE_URLS', false );
    - T! l, e* ?1 H. s8 g' L( I6 a# 设置私有权限
    $ W! ^' ^  `* |9 W2 Udefine( 'YOURLS_PRIVATE', true );
    6 v/ z& \& s3 @  T
    ( D7 ]3 j. b; d3 _4 D; {. bdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );+ [) B7 V  K0 P* p
    # 后台登录用户名和密码,一行设置一个,请务必修改' P. i. E+ J! R5 I. b
    $yourls_user_passwords = array(7 T% G, p% ^! m' e2 q
            '用户名1' => '密码1',9 w" h, v2 s( @2 Q7 K0 j; ]( G  G9 [
            // 'username2' => 'password2',
    $ F$ B; X; C% e/ N: ^) X9 `        // You can have one or more 'login'=>'password' lines
    3 O! e- t& [0 ]9 k. _        );5 Y: ?7 `7 U5 [/ T; O3 v  ^, ^
    /** Debug mode to output some internal information
    ; _( N. d7 ~0 n$ j5 H6 Z ** Default is false for live site. Enable when coding or before submitting a new issue */9 q; A. W7 w% o/ M
    define( 'YOURLS_DEBUG', false );. E! s: V, {' d2 e( A" n
    # 网址中允许大些字母填62,否则填360 g2 t5 ?) f9 y
    define( 'YOURLS_URL_CONVERT', 62 );
    2 z* F" P$ o6 q4 t. H4 S/*% D/ z( C, r4 u3 C  U# h3 F& f
    * 36: generates all lowercase keywords (ie: 13jkm)" x( z! B# b: O: w/ D
    * 62: generates mixed case keywords (ie: 13jKm or 13JKm)( q$ {. k4 o6 f- u+ S
    * Stick to one setting. It's best not to change after you've started creating links.2 m, C+ a2 G* E; l+ t. t% E
    */
    " I/ ?% r" [( q0 }" D# 保留的关键字,可自己添加
    2 M. j2 _8 p7 g6 K2 A$yourls_reserved_URL = array(
    8 q( G+ `9 H' \' {2 }9 B        'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
    4 ]0 {7 J3 X0 _4 Q; I' V5 {);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
    2 m- F. O! V3 M; J: D$ c9 U4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容
    1 i' d- Q. }+ V7 Z: N6 q5 l0 m  T/ Qserver {
    3 s  B  v+ b. r8 I" q: S. A) n2 ]: q3 e2 Z    listen   80;; u+ @' B! C0 [8 c; O
        server_name 你的域名;
    % c3 k3 d2 `8 H7 X! H+ d    charset utf-8;
    " C+ z% F2 K; i3 J    root "/var/www/YOURLS";
    % R  D) I$ ?, V    location / {8 r, y: k/ ?5 _: }" U, m$ X4 d. |; r
            index  index.php index.html;0 Q: u; l3 [9 L" T. h# X, W3 }; N
            try_files $uri $uri/ /yourls-loader.php$is_args$args;  L/ g/ J. ^! |0 I1 b0 t
        }
    ) Z4 ^6 P& @: P7 ]3 @    location ~ ^/\.user\.ini {
    & K1 o% o8 P+ l1 f            deny all;
    / ?# V' b- G, G+ n    }2 u- B* \; F& h2 ]  \2 X
        location ~ \.php$ {
    3 W- n2 ?' M# B8 V/ _# D        try_files $uri =404;
    0 z% a# S; K2 P- o/ F/ F  q+ u        fastcgi_index index.php;0 t, b8 e' `2 c- b  o# S
            # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;( _4 |" v/ {: |) s6 D+ s
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;6 g; |9 k7 U2 f5 T: D) r
            include fastcgi_params;/ y/ e- p3 o$ J* Q1 S! ?' X
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;* e* t/ B9 k: }$ K1 V; B0 s" L7 G
        }, d- P& F& ^) x# f9 O# d$ l# 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)$ {% }8 d* A. Z$ D3 B3 v4 u
            expires max;, Z. ?& |: k9 N4 v/ E' ^
            access_log off;
    # d, x9 |4 r6 z& ?' I4 A        try_files $uri =404;
    * h- e' M" ]0 ^9 e# M  v  C& V    }
    4 m% f0 E/ x& g- u8 O}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
    1 z( {  T' }. T/ X+ x! _0 {
    5.  nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。9 |1 o+ T4 M& ^) O! N$ z
    浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
    0 b( g5 y8 F/ S" F2 r% _% X+ w/ J' |3 z# {$ k; L3 V
    : d+ Y* V/ M) Q: m
    YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
    6 U9 i+ l( U' r9 C+ R 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。  Z7 {1 B& i: H- v1 ~' n! m- H2 ~7 k
    首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
    0 F4 B) w+ R! x5 O2 ]
      u) {0 k1 ?7 C: o' r
    5 `( x' k* U) V. _$ C# WYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。; H2 S- G' c$ p
    推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
    2 Q3 K. J( ^3 V  w; e5 I' D3 f* |; JYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
    6 [: t4 F5 t/ D9 {  @最终网站前端效果图:
    ) U9 [! s- d- ^& @) B3 n( A
    : x2 K- b& r* M" }
      V) E% ~0 {* [" y& s短网址前端效果图后端效果图:3 ?! X0 W  U: i5 z
    % m% Y3 I2 X0 B% y* q1 }

    ( Q7 I. i& ?. d  ?1 o1 k短网址后端效果图相对原版颜值高了不少。
    9 x+ h$ U' X5 p* B/ Y! j# `' c 参考返回目录[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号 )
    快速回复 返回顶部 返回列表