1.前言
有自己的短链接服务真的很不错!可以让杂乱无章的链接变得赏心悦目~
GitHub:YOURLS/YOURLS: 🔗 The de facto standard self hosted URL shortener in PHP (github.com)
2.准备
夜梦这里使用的是雨云的服务器,长期全场景九折 + 首月五折优惠链接:https://www.rainyun.com/
此项目必须使用域名并开启 SSL。通过 namesilo 注册域名可以使用 1 美元优惠码:yemeng。
在开始部署之前,你需要安装 docker 和 docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose
你可以为服务器添加些 swap:手动添加 SWAP
3.部署
3.1使用docker
安装docker和docker-compose:【docker】在服务器上安装docker
创建配置文件(域名一定要改!)
mkdir -p /root/data/docker_data/yourls
cd /root/data/docker_data/yourls
vim docker-compose.yml
根据自己的需求,修改下面的配置文件
version: "3.5"
services:
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
- MYSQL_DATABASE=yourls
- MYSQL_USER=yourls
- MYSQL_PASSWORD=yourls
volumes:
- ./mysql/db/:/var/lib/mysql
- ./mysql/conf/:/etc/mysql/conf.d
restart: always
container_name: mysql
yourls:
image: yourls
restart: always
ports:
- "8080:80"
environment:
YOURLS_DB_HOST: mysql
YOURLS_DB_USER: yourls
YOURLS_DB_PASS: yourls
YOURLS_DB_NAME: yourls
YOURLS_USER: yemeng # 自己换一个名字
YOURLS_PASS: yemeng # 自己换一个密码
YOURLS_SITE: https://tech.yemengstar.com # 换成你自己的域名(站点需要在后面的反向代理中开启SSL)
YOURLS_HOURS_OFFSET: 8
volumes:
- ./yourls_data/:/var/www/html
container_name: yourls_service
links:
- mysql:mysql
然后就可以启动容器了
docker-compose up -d
此时你还不能访问管理页面,需要我们进行反向代理操作。
3.2使用宝塔
1.下载程序:GitHub-Releases https://github.com/YOURLS/YOURLS/archive/refs/tags/1.9.2.zip
2.宝塔面板中新建一个站点和数据库,将程序上传到站点中。站点需要开启SSL
3.解压程序至站点根目录。
4.将 user/config-sample.php
复制为 user/config.php
5.填写 user/config.php
配置信息。(数据库,站点信息等)
<?php
/* This is a sample config file.
* Edit this file with your own settings and save it as "config.php"
*
* IMPORTANT: edit and save this file as plain ASCII text, using a text editor, for instance TextEdit on Mac OS or
* Notepad on Windows. Make sure there is no character before the opening <?php at the beginning of this file.
*/
/*
** MySQL settings - You can get this info from your web host
*/
/** MySQL database username */
define( 'YOURLS_DB_USER', 'your db user name' );
/** MySQL database password */
define( 'YOURLS_DB_PASS', 'your db password' );
/** The name of the database for YOURLS
** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_NAME', 'yourls' );
/** MySQL hostname.
** If using a non standard port, specify it like 'hostname:port', e.g. 'localhost:9999' or '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
/** MySQL tables prefix
** YOURLS will create tables using this prefix (eg `yourls_url`, `yourls_options`, ...)
** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
/*
** Site options
*/
/** YOURLS installation URL
** All lowercase, no trailing slash at the end.
** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your browser (and vice-versa)
** To use an IDN domain (eg http://héhé.com), write its ascii form here (eg http://xn--hh-bjab.com) */
define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );
/** YOURLS language
** Change this setting to use a translation file for your language, instead of the default English.
** That translation file (a .mo file) must be installed in the user/language directory.
** See http://yourls.org/translations for more information */
define( 'YOURLS_LANG', '' );
/** Allow multiple short URLs for a same long URL
** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
define( 'YOURLS_UNIQUE_URLS', true );
/** Private means the Admin area will be protected with login/pass as defined below.
** Set to false for public usage (eg on a restricted intranet or for test setups)
** Read http://yourls.org/privatepublic for more details if you're unsure */
define( 'YOURLS_PRIVATE', true );
/** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated
** Hint: copy from http://yourls.org/cookie */
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );
/** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as encrypted hashes
** YOURLS will auto encrypt plain text passwords in this file
** Read http://yourls.org/userpassword for more information */
$yourls_user_passwords = [
'username' => 'password',
// 'username2' => 'password2',
// You can have one or more 'login'=>'password' lines
];
/** URL shortening method: either 36 or 62
** 36: generates all lowercase keywords (ie: 13jkm)
** 62: generates mixed case keywords (ie: 13jKm or 13JKm)
** For more information, see https://yourls.org/urlconvert */
define( 'YOURLS_URL_CONVERT', 36 );
/** Debug mode to output some internal information
** Default is false for live site. Enable when coding or before submitting a new issue */
define( 'YOURLS_DEBUG', false );
/**
* Reserved keywords (so that generated URLs won't match them)
* Define here negative, unwanted or potentially misleading keywords.
*/
$yourls_reserved_URL = [
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
];
/*
** Personal settings would go after here.
*/
之后即可访问你的域名进入初始化页面。
PS:用户名密码为自己设置的
$yourls_user_passwords = [
'yemeng' => 'yemeng',
// 'username2' => 'password2',
// You can have one or more 'login'=>'password' lines
伪静态设置(必须!)
location / {
try_files $uri $uri/ /yourls-loader.php?$args;
}
4.反向代理(必须且SSL)
使用docker部署的必须进行反向代理!
【docker】反向代理神器——Nginx Proxy Manager
【docker】Nginx Proxy Manager的使用
5.更新与卸载
5.1更新
cd /root/data/docker_data/yourls
docker-compose pull
docker-compose up -d
5.2卸载
cd /root/data/docker_data/yourls
docker-compose down
cd ~
rm -rf /root/data/docker_data/yourls
6.使用
完成部署后,你可以访问yourDomain/admin
进入管理页面。
点击install yourls进入检查安装界面
检查如下
全部通过即可点击进入管理页面,输入账号与密码
YOURLS_USER: yemeng #YOURLS用户名
YOURLS_PASS: yemeng #YOURLS密码
主页面
在enter the URL中,填入你想缩短的域名;在Custom short URL中,填入自定义域名
点击shorten the URL
比如夜梦想要缩短的域名为:https://tech.yemengstar.com/?p=4663
使用的短链接为: https://www.o09uh87.top/yourls
那么访问https://www.o09uh87.top/yourls即可跳转到https://tech.yemengstar.com/?p=4663
还可以查询点击次数