创建域名短链 作者: 毕世平 时间: 2022-05-11 分类: 默认分类 前言:很久以前见到有大佬使用这样的短链,比如`https://a.com/12`短链可以跳转到自定义的`https://example.com/123456789`这样的长链接来,感觉很酷。网上也有提供这样的短链服务,那么如何自己搭建这样的网页服务呢? 本文介绍使用`YOURLS/YOURLS`这个github开源项目来搭建此服务,搭建前需要你先部署好`lamp`建站环境,还有什么好说的呢,推荐:[LAMP一键安装包-秋水逸冰](https://lamp.sh "点击访问")。 环境要求如下: - Apache(httpd),版本:**2.4**及以上,需要启用`mod_rewrite`模块 - PHP:版本**7.4**及以上 - MySQL:**5.0**及以上或者MariaDB:**10.0**及以上 ## 1、使用lamp添加站点 执行下面命令前,请确保你已用lamp建站脚本配置好网站环境。添加网站参考:[LAMP常见问题](https://lamp.sh/faq.html "点击访问")里面的建站流程: lamp add //添加站点命令 >输入域名:a.com >选择网站目录:使用默认的/data/www/a.com就可以 >输入网站管理邮箱(好像这个用处不大):admin@a.com >提示是否创建用户名跟数据库名一致的数据库: 可以选yes:它会要求你输入用户名(默认和数据库名相同),之后用户密码 也可以选no:它默认跳过此步骤,不会创建数据库也不会创建新用户,选择此项需要你自己会创建数据库,一般选择上面的yes,让脚本帮忙创建 >提示是否配置ssl证书,这里就不展开讲了,个人一般先配置好了,指定绝对路径就行了 >提示是否配置重定向,看个人选择,开启的话,脚本会帮忙在网站根目录下创建一个.htaccess隐藏文件 ## 添加站点大功告成,下面就是上传网站程序 ## 2、配置网站程序代码 lamp脚本创建的网站默认路径是`/data/www/a.com`,下面切换到此路径下,用wget下载网站程序即可: # 切换路径,请将a.com替换为你自己的域名 cd /data/www/a.com # 下载网站程序,目前YOURLS最新稳定版本是1.9 wget https://github.com/YOURLS/YOURLS/archive/refs/tags/1.9.tar.gz # 解压 tar -zxf 1.9.tar.gz # (必选)移动解压后的所有文件到(当前)网站根目录 mv YOURLS-1.9/* . # (可选)删除无用压缩包和空文件夹 rm -rf 1.9.tar.gz YOURLS-1.9 # 递归修改网站目录所有者和所属组 chown -R apache:apache /data/www/a.com > 网站程序发布地址是:[发布地址](https://github.com/YOURLS/YOURLS/releases "点击访问") ## 3、配置config.php数据库等信息 `YOURLS`网站程序使用此`config.php`文件配置数据库及网站信息: cd /data/www/a.com/user //切换目录 cp config-sample.php config.php //拷贝一份,命名为config.php vim config.php //需要对此文件进行修改配置数据库等信息(里面都有注释说明) ------------------------ define('YOURLS_DB_USER', 'root'); //指定mysql用户名,我这里以root为例,实际情况下不要用root,请新建用户并在此处指定 define('YOURLS_DB_PASS', 'rootpassword'); //指定MySQL下root用户的管理密码,实际情况下请不要使用此密码,请配置你创建的新用户的密码 define('YOURLS_DB_NAME', 'dbname_for_yourls'); //这里指定你打算给此程序使用的数据库名,需要保证你上面指定的用户对它具有完全可操作权限 define('YOURLS_DB_HOST', 'localhost'); //这里是指定你mysql装的主机位置,一般默认是localhost,除非你数据库跟当前服务器不在一个服务器上 define('YOURLS_DB_PREFIX', 'yourls_'); //保持默认即可,这是指定网站程序在你的数据库下新建表的前缀 define('YOURLS_SITE', 'http://a.com'); //这里是指定你网站地址,修改为自己的域名 define('YOURLS_LANG', 'zh_CN'); //网站支持汉化,这里先修改为zh_CN,下面会介绍修改方法,留空默认是English define('YOURLS_UNIQUE_URLS', true); //保持唯一,设置为false及允许不同的短链指向同一个长链 define('YOURLS_PRIVATE', true); //保护http://a.com/admin管理界面,设置为false表示公开,true代表私用 define('YOURLS_COOKIEKEY','xxxxx') //这个需要浏览器里访问 http://yourls.org/cookie ,然后把对应的值拷贝到此替换xxxxx即可,不需要记住这个,但需要保证它足够长和足够复杂 $yourls_user_passwords = [ 'username' => 'password_for_username' ]; //这是指定登陆/admin界面使用的用户名和密码,这里先配置明文,后面网站跑起来之后,密码会被加密,不用担心泄露问题 ...下面的不用修改了 ------------------------- > 访问 http://yourls.org/cookie 获取cookie值,填入上方配置文件中 修改完`config.php`文件后,重载配置:`httpd -k graceful`即可,现在可以访问`http://a.com/admin`网站了,如果你配置了tls证书,那么访问`https://a.com/admin`即可。 ![yourls登陆界面.png](https://shiping.date/usr/uploads/2022/05/3869281560.png) ## 4、给网站汉化 根据文档说明:[LANGUAGES-YOURLS Documentation](https://docs.yourls.org/guide/extend/languages.html#available-languages "点击访问") 需要先在`/data/www/a.com/user/languages/`目录下放两个文件,比如我们想使用简体中文,对应`zh_CN`,那么两个文件名为`zh_CN.mo`和`zh_CN.po`,然后需要修改第3步的`config.php`文件,其中一行`define('YOURLS_LANG', 'zh_CN');`,上面配置此文件时已指定,那么现在就不用再修改了: # 切换路径 cd /data/www/a.com/user/languages # 下载两个文件 wget https://github.com/ZvonimirSun/YOURLS-zh_CN/raw/master/zh_CN.mo wget https://github.com/ZvonimirSun/YOURLS-zh_CN/raw/master/zh_CN.po # 修改所有者和所属组 chown apache:apache ./zh_CN.mo ./zh_CN.po # 让Apache优雅地重载配置,现在再访问http://a.com/admin管理界面,会发现已经有中文界面 httpd -k graceful > 汉化语言包下载地址:[项目地址](https://github.com/ZvonimirSun/YOURLS-zh_CN "点击访问") ![yourls管理界面.png](https://shiping.date/usr/uploads/2022/05/1510361672.png) 到此,即算完成了所有配置,使用方法自行研究即可。 ## 5、(可选)数据库添加用户配置权限等命令 如果有安装`phpmyadmin`那么使用它就可以很方便的配置,如果没有安装,那么以`root`身份登陆到`MySQL`后,使用下面命令配置也行: # 新建数据库,假定数据库名为db_for_yourls create database db_for_yourls; //回车 # 新建数据库后,可以查看 show databases; //回车 # 新建用户,用户名假定是username,密码是password,那么命令如下 create user 'username'@'localhost' identified with mysql_native_password by 'password'; //回车 # 授予username用户对数据库db_for_yourls下所有表的操作权限 grant all privileges on db_for_yourls.* to 'username'@'localhost'; //回车 # 刷新权限 flush privileges; //回车 # 显示所有用户,其实它在自带数据库mysql下面的user表里 select host,user,plugin,authentication_string from mysql.user; //回车 参考链接: - [YOURLS项目地址](https://github.com/YOURLS/YOURLS "点击访问") - [YOURLS文档地址](https://docs.yourls.org/guide/introduction.html#requirements "点击访问") - [LAMP一键脚本-秋水逸冰](https://lamp.sh "点击访问") - [YOURLS网站程序汉化地址](https://github.com/ZvonimirSun/YOURLS-zh_CN "点击访问") 标签: none
这个也能玩
哈哈,对啊