|
|
本文目录使用YOURLS搭建自己的短网址服务部署YOURLS配置YOURLS参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。
+ B( p2 J; D0 X. W; g2 m" C9 W& O经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
2 L1 p! H: B3 q# Z$ @" T本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。4 v ^# j7 \0 R0 _. c4 x2 U) y* W
使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
) z# {, X! a1 q+ }' S
: A, J! n r+ ~; J! u- V5 b4 T7 T
# R# U9 Y) X+ t! i2 ]. P H" [9 j域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:3 r/ {1 E/ n* S, k3 r0 j
# Debian/Ubuntu系统安装PHP 7.4. y6 T* R3 \( Q/ b/ T5 ~
apt install -y lsb-release gnupg2
/ h+ }0 Y) H9 R5 gwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -- F4 A$ ^& c' T9 \7 d$ y6 Q- Z9 d0 C) [
echo"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list
6 _9 j7 i0 z+ z7 Y8 g! tapt update
) O/ r4 e# _* F+ r' y- {1 C# n aapt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \8 D2 T: `% p, {
php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
$ E2 d6 L* r% l0 T& V3 t bupdate-alternatives --set php /usr/bin/php7.4
% E& h5 T2 t9 }& p( W6 s# 启动PHP-FPM; b4 `! ?$ K: H n; o5 S7 J6 E( ~
systemctl start php7.4-fpm
/ S& R# x/ G9 E' T; X7 a7 E. K接着安装Mysql(MariaDB):2 F1 {8 q/ M0 d8 f
# Debian/Ubuntu安装Mariadb% P1 U! L+ m1 q* B4 L/ Y& S9 ~9 a+ m" G
apt install -y mariadb-server3 v- k& I- c9 q4 i% \& I1 T8 ~
#CentOS安装Mariadb
* U7 y& |; S @2 ^+ P* ]8 w uyum install -y mariadb-server
/ E9 c) k$ s4 ~ psystemctl enable mariadb/ a* k! W$ {; h, |: ^7 C& G, R, x# Z
#启动Mariadb
2 X, J9 b2 @7 N2 _: C& _systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:& {2 ?: _4 v0 U4 z
#CentOS系统安装Nginx
, h- ~: n( [/ a1 Iyum install -y nginx
6 {2 W+ | G; nsystemctl enable nginx
; `8 F+ ]) z& n$ {8 k#Debian/Ubuntu安装Nginx4 v" n4 }# A& } |
apt install -y nginx" `1 V8 c0 g2 H, m
安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
( S* F4 p2 n1 V1 l1 G: C4 j 部署YOURLS返回目录部署YOURLS的步骤如下:
5 o6 e/ k' k) p' q5 j! }9 v1. 创建YOURLS的数据库用户名和数据库:: Y6 E/ `4 B4 O- O3 m+ J p
# 进入数据库
: L( _0 p( Q/ n0 ?3 K$ _mysql
3 G5 |* D: O! N, P) C# 创建用户名,用户名和密码改成你自己的
- c$ ^8 U. f: p1 L. \. G9 b8 _CREATE USER 用户名@'%' IDENTIFIED BY '密码';
0 i( @* u% W& U* b$ Z# 创建数据库,数据库名字改成你自己的
" T$ f O! V; {: `* o9 tCREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;. Q7 d2 @1 T& k* _+ u
# 赋予权限, u" B% f) \# p7 C- K x
GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';0 u |. D6 O$ ?! o4 o# x
# 刷新权限
2 C, K! ~ |9 v! @& QFLUSH PRIVILEGES;2. 下载和安装YOURLS: p9 c8 G( P3 s4 I5 y3 v
mkdir -p /var/www
7 `* F) z$ i% s& r# Mcd /var/www/
& f2 K$ Q3 N) C" xwget https://github.com/YOURLS/YOURLS/archive/master.zip. K. J; J) {6 v: z1 _/ q1 t6 f8 H
unzip master.zip1 O. l/ w! b! z+ k0 f- O) b5 v
mv YOURLS-master YOURLS! n& X4 w3 z. e% O
# 修改网站目录权限
: D2 l8 _" [* {3 R& |# Ubuntu/Debian系统
3 [/ h, C6 z8 V$ d3 I& m) y8 \chown -R www-data:www-data YOURLS
; p" [1 ]) P6 [$ d% L# CentOS; j! m1 j8 h4 T6 _/ f' k* B5 Z3 ^2 U
chown -R apache:apache YOURLS; k) H+ A0 ~4 O3 ~) N9 i, H
cd YOURLS
# H" z6 ~" o8 I( g0 z4 v2 Hcp user/config-sample.php user/config.php
k7 J+ ^$ ^" M+ Ccp sample-public-front-page.txt index.php
' b6 F; v# l9 o0 S6 P vcp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:
- I V8 J& p' \/ w$ Jdefine( 'YOURLS_DB_USER', '填写你的数据库用户名' );3 f& n9 Q1 W8 l D+ x' x
define( 'YOURLS_DB_PASS', '填写数据库密码' );
) p& |3 \4 ~" ]* B2 a" ndefine( 'YOURLS_DB_NAME', '填写数据库名字' );
7 x& C' Y! @' F- G0 I# g# 这两行基本不用改
5 a( W) j) L0 D" J7 i5 e0 }, ddefine( 'YOURLS_DB_HOST', 'localhost' );2 t* y1 Q7 `/ ?6 |* t* |9 u# T; L
define( 'YOURLS_DB_PREFIX', 'yourls_' );
; a$ T3 x/ @3 E* p6 A# 填写你的域名,不要加www形式
, c3 S8 |' V3 {8 I/ `# @define( 'YOURLS_SITE', 'http://你的域名' );. d, O1 L4 t7 k% s! w
# 填写时区,国内是80 s* u5 u& S5 a4 _2 K( c
define( 'YOURLS_HOURS_OFFSET', 8 );8 c/ `4 F' ^, L+ a2 G1 _! O
# 设置为中文
/ _& H: { Q) @8 idefine( 'YOURLS_LANG', 'zh_CN' );
# d4 c/ e8 w; p$ _0 F0 L0 N/** Allow multiple short URLs for a same long URL
* P, ^- j* I* R: L$ \( D/ \ ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
& l- ^6 ^4 \0 x: h* x8 v ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */ Z. ^8 \7 P6 n9 ~) N& x
define( 'YOURLS_UNIQUE_URLS', false );
! a7 r% G5 U- w' {4 ?5 d( Z# 设置私有权限% f( C5 Z$ D5 U& B+ t
define( 'YOURLS_PRIVATE', true );% B% s& S; f8 l* [$ A; a1 X
% t9 u4 L4 x# w# O& Udefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
8 U- r# s3 h/ i+ `# 后台登录用户名和密码,一行设置一个,请务必修改
% [% P$ n5 U; a4 \* L' O! E$yourls_user_passwords = array(+ U# G6 j/ y% L- F* X: q6 X% C! V
'用户名1' => '密码1',
5 R! V5 \) g7 O+ F // 'username2' => 'password2',
. W. @; n1 w s // You can have one or more 'login'=>'password' lines
. C$ z } Q5 M4 R: T! G );
7 a. Y1 H2 G4 e" h0 P: a2 s/** Debug mode to output some internal information
# q. {- x! s; C, j8 z. U ** Default is false for live site. Enable when coding or before submitting a new issue */
6 M5 p5 `" h& |6 {4 kdefine( 'YOURLS_DEBUG', false );
) w- @7 \3 v9 j( H6 ^# 网址中允许大些字母填62,否则填36* `% H- ]- K" b: o
define( 'YOURLS_URL_CONVERT', 62 );
0 g+ m, s1 U, H/*
" A0 E' o2 ?) d8 v# O' I# ] * 36: generates all lowercase keywords (ie: 13jkm)
' U* s4 B/ N% k5 A( x& q9 { * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
# x# k$ G. n e2 k) x * Stick to one setting. It's best not to change after you've started creating links.5 d z' i6 p) J, m T' T
*/8 y) N8 f5 C$ g* a4 R. v% @: v
# 保留的关键字,可自己添加
6 i/ Z9 u. x! c% M$ O, w& ^$yourls_reserved_URL = array(7 [$ _1 k) J$ l/ |
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
2 l& e( }1 t4 Y5 ?8 `3 |8 R* j, ^, e);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
& F, C; I6 [7 m' j, p7 s$ @4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容2 K: p4 M" `8 w- z. _
server {
! d7 R+ w9 h9 {8 \% u% _ listen 80;
& k4 h. F9 t9 {6 [( G$ @$ b server_name 你的域名;
# M1 k1 @# X( N* P charset utf-8;
" x0 K; P# g$ C, ^4 G( C$ U root "/var/www/YOURLS";7 Y. H( |! T4 W. B& D9 w
location / {% Y/ }: R$ H! L. v
index index.php index.html;' N/ {6 J1 o4 b; [0 R
try_files $uri $uri/ /yourls-loader.php$is_args$args;
3 [7 g: z% g) o% f1 G4 k9 c: ~: m }3 F- @9 S! B4 h" d. Y! T* ]% \& K
location ~ ^/\.user\.ini {& j% e9 G3 B$ o, i. I, d: Q# T) p% H
deny all;+ z# @3 g/ _$ }9 S
}2 ~3 v' s. b' i f v* O2 O/ J' k
location ~ \.php$ {
5 ^: H+ [) J, B- ?& o try_files $uri =404;
' A4 W5 M- O4 V; Q2 d2 s! X fastcgi_index index.php;7 @& y3 h6 r# T# M
# CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;$ I4 u9 a$ Q0 [1 o* P" [9 M' v
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
) |4 G0 s( ^& f include fastcgi_params;. P' z; W% ^6 y, q/ Y% n; Z
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;7 }7 A9 l3 a, G' e% n* Z
}6 k) r0 z7 a0 I, L6 S7 c
location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {! x, m5 i* f" F4 p$ o, m" p8 ^: i0 X
expires max;
' \0 @8 I& h; p( U1 \, r access_log off;6 s9 a9 V! J% A
try_files $uri =404;
: [' \7 f) Q1 r6 _0 G }
$ Y. T, c3 b& ~5 ?! q, C}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书6 O1 c# w- y* Z$ |9 Z0 A( i
5. nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。1 ]' J0 `6 k7 g
浏览器打开你的域名,配置正确的话应该能看到类似如下截图:: \& q. s2 n n/ R9 L
1 ?: d* k, N5 C( E
}# m4 l% o9 ]1 O4 V
YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。
: [5 q+ v j/ L4 k% M2 g5 H 配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。0 ?% V5 f: N" X% [
首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:4 X3 |4 a9 X# X4 `
7 F+ P( r: r2 v( ~7 `+ y8 y% S# C
9 C0 V1 Z: P# o: t& C- \0 t
YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。
# |1 @& H T- U. i4 n推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。) O5 C* t" A- v
YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。8 C7 u& x* d$ e" z
最终网站前端效果图:5 A8 X) C- q7 q2 f1 O
$ [' ^3 m- j s. e8 x
$ C5 d8 b5 u; S3 x% t4 u+ {+ y
短网址前端效果图后端效果图:! a' c) e* ~/ T1 K7 ]' g% r
+ F5 |# J( K6 b0 ^4 P. f+ e3 O0 L/ ?; C- ?) p6 F
短网址后端效果图相对原版颜值高了不少。) z3 @0 `5 |( i5 y5 I" \0 {) V
参考返回目录[ol]YOURLSAwesome YOURLS[/ol]AD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(5) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|