|
|
本文目录使用YOURLS搭建自己的短网址服务部署YOURLS配置YOURLS参考短网址服务能生成简洁好看的链接,非常适用于有链接分享需求的场景。然而目前国内新浪、百度等大厂短网址服务都要求登录,限制不少,小网站的短网址服务又有不稳定的忧虑,因此自建短网址服务是比较好的选择。+ H4 C$ H1 w3 h
经过一番调研,我们选择了YOURLS这款短网址程序。YOURLS 是一款使用PHP+MySQL开发的开源短网址程序,可部署在自己的服务器上,文档齐全,有丰富的插件支持,支持数据统计等功能,简洁好用。
8 ~/ S2 X' F3 X% w本文介绍使用YOURLS搭建自己的短网址服务,最终效果见 https://2i.gs。5 c4 o2 a0 H! [, u. A* H
使用YOURLS搭建自己的短网址服务返回目录准备工作既然是短网址服务,首先得有一个域名,越短的越好。例如本人用的是 2i.gs,这样一个很长的网址可以缩短成 2i.gs/xxx 这种短形式。购买域名可参考 Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购,然后将域名的@记录解析到你的服务器。
1 `9 d4 ] q( G# t0 Y* Q, I* t5 m$ m. i7 Z8 W9 _! N
N! N2 R+ Q1 \# @
域名添加@ DNS记录YOURLS 依赖于PHP和Mysql,因此需要先安装PHP和Mysql。CentOS系统安装最新版PHP请参考 使用Remi源安装最新版PHP 7和PHP 8。Debian/Ubuntu系统可使用下面的命令安装PHP 7.4:0 J7 `1 X; W6 `8 Z
# Debian/Ubuntu系统安装PHP 7.46 D8 _9 w1 U; X# ?
apt install -y lsb-release gnupg2
* i$ s, \* k3 L) \* d/ P. Q. Xwget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
9 r- h' E$ Y/ d3 }1 Z3 [3 Fecho"deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.list& M' {4 r" L/ F$ l7 V
apt update$ y, G' ?7 u1 w9 {
apt install -y php7.4-cli php7.4-fpm php7.4-bcmath php7.4-gd php7.4-mbstring \: I' \( a# l) }( F4 b8 m" V5 ^
php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php7.4-json php7.4-imagick
1 s2 H% Q$ Y' i/ g; R$ f& _update-alternatives --set php /usr/bin/php7.4
' X: b8 n8 B# e/ Z' s0 H, R# 启动PHP-FPM! C' C. C% w6 y0 x
systemctl start php7.4-fpm
- @% ]# J, m9 \2 |接着安装Mysql(MariaDB):
- f4 D* v) F; Y' U" t# Debian/Ubuntu安装Mariadb0 B- p% N, t/ H& `! V4 [- A
apt install -y mariadb-server" ~; ?4 Z% N% }
#CentOS安装Mariadb
# c* D$ c- {3 J0 k" w; c5 H2 ]$ F3 dyum install -y mariadb-server
" q' u: N$ w2 \systemctl enable mariadb* x7 w5 ^9 ?' F; S
#启动Mariadb
g, b" l; J( @ B, S0 c% m# N' lsystemctl start mariadb另外对外服务离不开web服务器,因此也需要安装Nginx:! e& r& g! b9 V( k+ L% ^1 m
#CentOS系统安装Nginx
/ i6 [" H# y M0 @+ lyum install -y nginx( @ K; L: R4 y, u& p
systemctl enable nginx
; g' D$ K, \, @: m; l0 L#Debian/Ubuntu安装Nginx: m$ F# b3 P" G; d5 i; p
apt install -y nginx+ M: ?7 G' q% f$ \4 d
安装好PHP、MariaDB和Nginx后,接下来安装和部署YOURLS。
# U" y# c) e( Y B7 q 部署YOURLS返回目录部署YOURLS的步骤如下:$ `& K7 h- {. |
1. 创建YOURLS的数据库用户名和数据库:6 Y, ]$ X) L0 p: o- ]2 [3 R
# 进入数据库9 l) d8 ?6 F ^8 ~
mysql
. N" y$ g9 E7 \- X+ L, G# 创建用户名,用户名和密码改成你自己的6 Z0 U: [" D1 a; R9 `9 N
CREATE USER 用户名@'%' IDENTIFIED BY '密码';, s4 J" W: T9 ]; L3 |$ i
# 创建数据库,数据库名字改成你自己的3 e4 I- y, f- _% P1 t7 Q+ J3 P
CREATE DATABASE 数据库名字 DEFAULT CHARSET=utf8mb4;
6 M- |+ m s+ z( g8 d( n# 赋予权限1 j( X5 ]# Y0 E5 M
GRANT ALL PRIVILEGES ON 数据库名字.* to 用户名@'%';
+ F& l+ C( H! M X9 ^+ |/ z9 V# 刷新权限
2 \/ s- F }( qFLUSH PRIVILEGES;2. 下载和安装YOURLS:: B5 E6 u) J0 ]3 q; I# j
mkdir -p /var/www+ F8 N/ b; ?' `5 A" L; i- y6 r
cd /var/www/
0 a7 `% e, ?; [) K, Z Rwget https://github.com/YOURLS/YOURLS/archive/master.zip
6 q1 W& C# C6 K funzip master.zip
( d6 V0 A( S" \1 x: Q5 \9 y Nmv YOURLS-master YOURLS
; T8 [: P s( [ ~# 修改网站目录权限3 c9 ?* M+ o: A* y% u. w
# Ubuntu/Debian系统
! E* M2 Y$ Q* y& [! @chown -R www-data:www-data YOURLS
: k8 q! j; e% c3 a) E# a# CentOS
) M7 L5 n+ L0 pchown -R apache:apache YOURLS
# R# `' x; P/ d5 u/ Pcd YOURLS- L1 S' K6 V" D# Q! L8 F
cp user/config-sample.php user/config.php
0 y" z* H: V% |+ \cp sample-public-front-page.txt index.php4 t. D% d: E) d$ o" r0 V
cp sample-robots.txt robots.txt3. 配置YOURLS。编辑 /var/www/YOURLS/user/config.php 文件,按照自己的情况进行修改:3 }8 J/ \3 p+ g- J
define( 'YOURLS_DB_USER', '填写你的数据库用户名' );1 x, g! e% E! f' O/ S$ O3 Y' _6 D
define( 'YOURLS_DB_PASS', '填写数据库密码' );* e0 I. g5 r4 ?. i6 z0 J7 Q
define( 'YOURLS_DB_NAME', '填写数据库名字' );
3 t/ I4 b F8 q, G" V0 _, j# 这两行基本不用改3 U" l; G1 d( ~8 |) b
define( 'YOURLS_DB_HOST', 'localhost' );
' D, j. S, t3 r* M8 N6 N* M0 _define( 'YOURLS_DB_PREFIX', 'yourls_' );" k& J% u, ^% h! K
# 填写你的域名,不要加www形式
$ U D+ h) ?2 a, N1 F! ?, L% @9 gdefine( 'YOURLS_SITE', 'http://你的域名' );
" K8 h) h0 }+ o- Z3 ^ H$ k8 J. u# 填写时区,国内是8% W( l { t1 X
define( 'YOURLS_HOURS_OFFSET', 8 );
6 f3 y5 P1 Y6 p3 Y5 G6 q# 设置为中文7 v9 E1 o2 I0 p7 _
define( 'YOURLS_LANG', 'zh_CN' );. |/ b+ k/ k. j3 ^; \7 k+ t
/** Allow multiple short URLs for a same long URL c; B. k$ E. R& Q
** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
; [" o2 Y9 e- r: d3 m. \ ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
8 E: ^4 Y( l7 Fdefine( 'YOURLS_UNIQUE_URLS', false );
! |, `6 @8 x* [' n( Y: |$ y# 设置私有权限- ]1 T; e5 W$ a# T, O2 K$ E7 e
define( 'YOURLS_PRIVATE', true );
4 w) E# r( Q& C; ]
8 f) |8 u, l4 h; ?- W; Zdefine( 'YOURLS_COOKIEKEY', '从http://yourls.org/cookie获取值' );1 Z5 J k& h! l4 |
# 后台登录用户名和密码,一行设置一个,请务必修改
2 t2 B @ z) s! | K$yourls_user_passwords = array(
6 \3 N% w! B/ v0 h '用户名1' => '密码1',+ b+ d8 `" i0 t- i- P+ B" [( Q
// 'username2' => 'password2',
2 o9 Q8 P0 z) z0 u' A( [ // You can have one or more 'login'=>'password' lines& \% ~1 q2 c7 Z" h- o5 S/ ~
);$ t# _# ]( W# `# N
/** Debug mode to output some internal information
# x$ z S& I9 P- u* C) c+ @ ** Default is false for live site. Enable when coding or before submitting a new issue */: d/ D( J/ p4 }5 J2 }# g
define( 'YOURLS_DEBUG', false );- z+ x4 x0 C8 J
# 网址中允许大些字母填62,否则填36
$ t' D' \) n3 o' W9 Tdefine( 'YOURLS_URL_CONVERT', 62 );5 }) B: d" g! F2 V& f" E2 F9 Z: x4 O
/*
1 {6 W+ `9 p% k9 Q& `# g# v# ^( x * 36: generates all lowercase keywords (ie: 13jkm)+ S9 w# a! Z) p: e; o. W9 {
* 62: generates mixed case keywords (ie: 13jKm or 13JKm)' }# `: q& c/ {3 [' |( I9 e p
* Stick to one setting. It's best not to change after you've started creating links.$ [5 q4 `' T: n: `8 w
*/
) { l T( y+ y+ D# 保留的关键字,可自己添加
4 n' L. l/ I6 f8 W7 [7 Y: A$yourls_reserved_URL = array(
% J% T2 a6 U0 @3 x) w& X4 p* h 'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
% g: [! ~% v3 b0 `, E% k! });接着编辑 index.php ,将 $page = YOURLS_SITE . '/sample-public-front-page.php' ; 改成 $page = YOURLS_SITE . '/index.php' ; 。
, N% s% H: a' o# v1 N+ L4. 配置Nginx。在/etc/nginx/conf.d/目录下创建域名配置文件(例如2i.gs.conf),输入如下内容7 w2 ]0 `" u2 a) ]
server {# o3 _1 d, Q G, M# a
listen 80;
$ F E0 _' o, l$ r$ V+ a' f server_name 你的域名;7 u" r# O+ b7 c7 Q, S# ?9 b: Y7 ?( k. o
charset utf-8; B1 }+ e5 |* a o/ C% J+ o e2 b
root "/var/www/YOURLS";0 R! P( b2 I1 \; \
location / {
* [! F% F2 {! Z: n+ ?! \ index index.php index.html;
; ^. @3 w& Z4 n$ p1 y8 i) Y6 d2 O$ f try_files $uri $uri/ /yourls-loader.php$is_args$args;
. }4 S/ G9 x6 g/ l/ T }
2 ^4 e3 A- O# ] location ~ ^/\.user\.ini {4 x. c" m8 E& d1 @3 F1 d+ d
deny all;
1 q* N, P0 v3 B( l2 [4 g }3 ~) a, s3 ~7 e
location ~ \.php$ {, w* F+ ~/ A! O, y( t
try_files $uri =404;* b1 v. S9 [% W' Z) Q2 @
fastcgi_index index.php;
' K: C1 W2 \) k# |9 \3 f # CentOS 8系统请改成 fastcgi_pass php-fpm; CentOS 7系统请改成 fastcgi_pass 127.0.0.1:9000;: z; J: S3 M/ i, U
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
- P7 S8 w) W/ t! Q: a7 Y4 b1 i include fastcgi_params;
! K0 t' r" D! D' V# g h( o* N fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;, j0 B9 P( ^1 `' \7 K" h
}( X2 @( F0 M* g2 v+ m# a; D7 K
location ~ \.(png|jpe?g|js|css|gif|ico|swf|webp|pdf|txt|doc|docx|xls|xlsx|ppt|pptx|mov|fla|zip|rar|woff2|ttf)$ {
, ^" |, c, G3 _( n' }: o expires max;
( A- b' h; O" P; P( Y( E& n9 r7 y access_log off;
7 C% a! O* X1 ^8 }0 h0 b try_files $uri =404;
! u0 g' {- U/ @0 i4 I0 k; y) I }
4 A7 M5 A+ }) m* t}推荐使用HTTPS访问网站,申请证书和配置请参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书% e0 E) m, X1 w1 H
5. nginx -t 查看有无Nginx配置错误,然后重启Nginx:systemctl restart nginx。如果有防火墙和安全组,记得放行。( ?% c* m7 |* [+ A
浏览器打开你的域名,配置正确的话应该能看到类似如下截图:# ^, N. m' ~. c. d; c
; y$ T) {) G4 v1 X$ [8 D4 q6 [7 ^( C" o3 n0 [. O6 W1 a! H
YOURLS短网址截图这说明短网址服务已经搭建成功,输入一个网址,看看能不能正确生成短网址。+ E5 U; r2 e1 o7 o' F# {+ R5 \
配置YOURLS返回目录默认安装的YOURLS界面和功能都比较朴素简洁,可以通过安装/激活插件和主题来修改。
5 `1 i2 `/ g" E" j首先介绍YOURLS的插件管理。在页面上点击”管理界面”,使用配置文件填写的用户名和密码登录。点击左上角的“管理插件”,这里便能管理和激活插件:
$ Z& ?) d# v, j* f: q* S$ m% f u& \! |3 a% ]6 z
! V8 h; b: K5 m3 aYOURLS管理插件将鼠标移到插件右侧的“动作”那一栏,会出现激活/取消激活菜单,点击便可开启/关闭插件。. K" D) G) v5 |: R
推荐开启的Random SHortURLs插件。更多插件可从 Awesome YOURLS 查找。
, q1 J4 Z. m/ PYOURLS默认的界面比较简陋,因此推荐安装更好看的主题。目前有三款主题:Sleeky、Infinity Squared和Air 666。本人只用过前两款,最后决定结合两者:前端使用Infinity Squared,后端使用Sleeky。) I, R: t: }+ y1 ?
最终网站前端效果图:
; ]* B" F5 ^/ T& |0 C1 p" H. W% v- E' A" n% E
, {9 x a) N( A, l2 z- c W: U D0 w
短网址前端效果图后端效果图:5 I/ g4 ]: v7 {
8 g' g7 P( W+ P7 Z7 r/ i
" e+ i' l" t& q短网址后端效果图相对原版颜值高了不少。% [. _4 y$ g: J( A- N3 ^
参考返回目录[ol]YOURLSAwesome YOURLS[/ol]AD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(5) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|