|
|
本文目录使用YOURLS搭建自己的短网址服务部署YOURLS配置YOURLS参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。 Q" S% P% Y1 h5 J8 J
经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
# a& j6 b: O/ G本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。
! b- g( f. _. [. q0 y$ v, z 使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
, M# o: |! `. k- s3 @8 ~! M" V3 e4 j5 P; O4 x( d6 |
) Y8 P, H4 n* M3 E' q% S
域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:0 P) x; `* p, A9 y& H8 j- ^
# Debian/Ubuntu系统安装PHP 7.4" H2 y4 D6 O. ]9 G. w
apt install -y lsb-release gnupg2& E) O% I1 R8 B( ~
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
0 X% K: B6 `8 x5 K# J# A# eecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list; \) i$ _ w2 o
apt update
0 K# K" w- s/ q, k7 X, H( F- ~apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \
k3 u# ^7 P& l% q' V% B) q php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick$ A2 A, z0 X1 ?4 v* V# h6 b
update-alternatives --set php /usr/bin/php7.42 }8 b" F7 D- N- M( X- X
# 启动PHP-FPM r: m+ ?% R+ f! Y( z# A: ?
systemctl start php7.4-fpm- c" ?4 ]% u6 [! |" G( I3 u
接着安装Mysql(MariaDB):$ ?3 q" M5 q5 u: g
# Debian/Ubuntu安装Mariadb" l: z1 X8 w! Q# q
apt install -y mariadb-server
$ L2 x$ L- B* Q2 N0 J#CentOS安装Mariadb9 Q: B6 p$ H4 y* i& @
yum install -y mariadb-server) s4 G4 O) d7 }
systemctl enable mariadb; e+ m9 b" ~* P: u! D* e1 M
#启动Mariadb, v' ]7 X7 W7 J0 h$ G. R; @
systemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:' N: B* {. A: q; H7 [9 K% K% I
#CentOS系统安装Nginx, v0 v/ r4 g6 P7 v6 F( c
yum install -y nginx' @7 H: V: o+ f/ T& r( ]6 Z
systemctl enable nginx; D0 g6 _& M5 [& S D7 {% j0 j4 O- p
#Debian/Ubuntu安装Nginx8 J/ C5 l1 Z0 d- Y Q% P
apt install -y nginx
( \3 B+ v# I! v2 Z$ e安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。1 \8 c4 a7 d$ Y- I* F' E' {+ j
部署YOURLS返回目录部署YOURLS的步骤如下:( R5 j; r% m f+ p ^
1. 创建YOURLS的数据库用户名和数据库:6 F/ J8 t$ r8 P3 w
# 进入数据库
7 _6 K& p. f9 C' kmysql4 S. M+ S2 Y2 c! w9 g6 K0 s" S
# 创建用户名,用户名和密码改成你自己的# B2 A( ~, ?) Z0 g; u# D# b4 R+ M
CREATE USER 用户名@'%' IDENTIFIED BY '密码';
0 x @' @+ Y. T1 T& S$ f# 创建数据库,数据库名字改成你自己的* N6 Y) N: u4 B8 ]5 v6 l
CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
4 s7 ?* B; m; E; f; p) b3 A$ E1 F# 赋予权限
) ?1 G/ ?- C, C, RGRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';2 C. V4 ?9 j( ?! E
# 刷新权限
$ C+ m+ |% O- |3 \FLUSH PRIVILEGES;2. 下载和安装YOURLS:- a: N5 d9 Q8 y7 @) ^$ V" {
mkdir -p /var/www
" r9 A( r* k+ \4 }: V5 ? @% T- c% ~cd /var/www/% t" v! X* f2 y
wget https://github.com/YOURLS/YOURLS/archive/master.zip
% s6 T" w( t0 P& c. l* {unzip master.zip
8 C: Y- I3 e ^; h# }mv YOURLS-master YOURLS) s& G* W4 n; ^$ b& y
# 修改网站目录权限
5 [! T" [- Q" P4 F# Ubuntu/Debian系统' `6 y$ q, F& d( s" w) D* {6 W) F4 Y
chown -R www-data:www-data YOURLS. e% W! x2 e# a$ P+ }( p
# CentOS2 i* c6 Z; ^1 U9 C! B
chown -R apache:apache YOURLS
1 [, g6 S" y+ m5 i1 N% V" bcd YOURLS
3 P. ` g" z2 b s3 a& A ]5 Ncp user/config-sample.php user/config.php
, I" i4 s& h; M5 N, ^# W3 _cp sample-public-front-page.txt index.php, j+ b2 u/ x9 c: R( ?0 k2 V
cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:6 z4 V/ Y' s, X" x* ^2 O1 r3 g
define( 'YOURLS_DB_USER', '填写你的数据库用户名' );) u! P2 I% Q a8 J
define( 'YOURLS_DB_PASS', '填写数据库密码' );
: n# T+ h8 J7 O- z/ [1 m' y: H: W$ Qdefine( 'YOURLS_DB_NAME', '填写数据库名字' );
0 n5 g+ ^/ ^4 @7 W2 E( W# 这两行基本不用改
! C& C0 ?7 E9 ?* l% odefine( 'YOURLS_DB_HOST', 'localhost' );
, ?( b* B# Z4 \5 r$ z) Q; Bdefine( 'YOURLS_DB_PREFIX', 'yourls_' );
7 E. r5 v: p1 k- b) D$ ~# 填写你的域名,不要加www形式
& W& `) q& f, ]8 Jdefine( 'YOURLS_SITE', 'http://你的域名' );8 P+ R+ c# S+ N- V
# 填写时区,国内是8- r7 ]' \2 m, H9 J# K) V
define( 'YOURLS_HOURS_OFFSET', 8 );
' c; Q' i* U5 J1 a) p( i) ?( D# I# X4 }# 设置为中文
/ M& m9 Y- m1 Sdefine( 'YOURLS_LANG', 'zh_CN' );! l, X' @7 {9 @# I
/** Allow multiple short URLs for a same long URL
+ w$ S1 Z( l2 g. o4 l1 J& f ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)3 k2 C8 }% ?7 u; B( D: U6 I) M
** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */$ |. g+ k; ~! W/ ^. S' r
define( 'YOURLS_UNIQUE_URLS', false );3 e- {. n/ ?& c
# 设置私有权限
+ \# T$ j$ q! \" z! P% E2 Idefine( 'YOURLS_PRIVATE', true );4 F0 a8 v7 [3 D; e6 a$ v
/ G/ p+ A( L+ Bdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );
: E5 W8 j+ h$ q( d. s# 后台登录用户名和密码,一行设置一个,请务必修改" Z& }- t) i5 t* S2 \1 C
$yourls_user_passwords = array(, N) W$ @6 D! s
'用户名1' => '密码1',: Z7 f3 K: ^5 ~- w2 k3 v
// 'username2' => 'password2',1 }, m& o$ e4 J6 C$ _2 E/ j1 v) \
// You can have one or more 'login'=>'password' lines* h6 o9 v% _) V& v* G" r: o' U
); y$ I2 f% Z& S! f1 G
/** Debug mode to output some internal information- K' w. A$ [/ P0 R2 ^" R2 W
** Default is false for live site. Enable when coding or before submitting a new issue */
4 e& N4 D& j. E& hdefine( 'YOURLS_DEBUG', false );
* P# T( e! a A8 I- P" W5 q* r# 网址中允许大些字母填62,否则填36
) g4 a) ~+ z O- |define( 'YOURLS_URL_CONVERT', 62 );
. Y+ n/ v/ b8 I/ ~& c2 e. m7 f$ R/*
" b6 f8 _( E) u! f1 {9 h { * 36: generates all lowercase keywords (ie: 13jkm)( G: L5 j6 S4 Z! d# p
* 62: generates mixed case keywords (ie: 13jKm or 13JKm)
, L* p1 t- v+ Q3 W& d * Stick to one setting. It's best not to change after you've started creating links.
- G; t# N" R' I- [9 J7 t2 b' t */
7 }2 I; B, P1 |! O3 f" H# 保留的关键字,可自己添加
. m, _% A4 W, \" e1 l% U% |9 {$yourls_reserved_URL = array(1 _, i8 O- n1 d; b: _5 Z4 l
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', l' v; X* a! O* N0 x" Q* ?
);接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。. |6 R$ Y$ Q; ~* x
4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容6 L, B1 H1 j- X' b' J
server {: }( U8 P9 T$ x4 X7 ^, X( S" b/ }2 O
listen 80;5 g4 S. z" f9 p' p: c
server_name 你的域名;
, w/ E, U6 g' k4 | charset utf-8;- Q7 I6 x2 w% _" {
root "/var/www/YOURLS";1 b+ K2 a0 I) _- R @5 h) j$ A
location / {- y7 ]* k3 n5 M$ R% X
index index.php index.html;/ f2 m _# l8 K' p4 |7 ~% i6 t, n
try_files $uri $uri/ /yourls-loader.php$is_args$args;( t0 Z" b! d! h' J" l5 x1 i- ?' }
}
9 P7 f# K7 g2 R6 w. [8 w% Z location ~ ^/\.user\.ini {( O* I. |2 E% A
deny all;+ S; A9 a; J6 u" e
}
* l/ V0 q% }+ B! ?6 A0 j location ~ \.php$ {
# H3 X# N+ b4 K8 |3 ?' O try_files $uri =404;8 H8 F+ r7 ~" o: P& s4 s$ s
fastcgi_index index.php;
6 Y3 P( z1 q9 W6 C: d' r # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;
7 E" v8 E. t- P# \& A: D+ S4 k fastcgi_pass unix:/run/php/php7.4-fpm.sock;
1 Q! O6 W! p, W' b. K$ X3 {$ d, A include fastcgi_params;, U: P+ `1 q- ?" H$ b
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
8 k( H6 }, C, B9 ]$ e }
& a* ?7 o1 w' Q; F) G1 y location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
2 E0 a5 J' p5 q expires max;
6 m8 }" @. u4 g- i1 q access_log off;, a: d6 i. m2 h3 M# l' \4 v/ p, F
try_files $uri =404;/ U. ~* G" ]# E* {' L. ?
}; l. ~! [1 D. w8 ?. [5 C) i# C5 {
}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书' ~3 z f7 _% B/ G( N) C( r
5. nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。. p% a2 f1 v' b
浏览器打开你的域名,配置正确的话应该能看到类似如下截图:
' ] H! \3 a$ Y" \
2 h6 f* s, {& W+ G' C. N% w* Z# `
! Z( @( e! B- J6 K8 CYOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。- k; \, T; y0 y9 m7 `1 b5 H
配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
/ T# t. ]. B( j, R) n首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
; |" e9 L5 z1 O. ? x+ b
$ A# s- S# C5 Y8 P/ q: i# H% T( z, B4 {" D1 l+ Z
YOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。$ V+ L* |6 X. N' F3 y7 D
推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。- j& B0 m% \" D* G
YOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。
) V( m& v( V2 f- V H' I* l最终网站前端效果图:
' i+ c1 D6 e) f# D5 G& N9 H% \- B+ j* l2 z& m& q$ e# ~) Y
6 j) D, Q e9 p* x K! s" Y短网址前端效果图后端效果图:
0 Y8 }$ E& \5 N1 K% r
- b1 G7 ]7 V+ T" b- \0 Z% O2 v. f7 Z7 m) T5 i# O
短网址后端效果图相对原版颜值高了不少。
* l# T0 Y! b* Z! S5 ~+ ^ 参考返回目录[ol]YOURLSAwesome YOURLS[/ol]AD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(5) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|