Yourls 是一个基于 PHP 、开源的短链管理系统,数据库则是采用 MySQL ,本文将介绍Yourls的搭建、安装、后续的插件安装及一些问题解决。
准备
Apache2 作为后端,Nginx 作为前端,本文是在两个软件和MySQL均正确安装且可使用的前提下操作;若仅使用Apache2也可参考本文操作;Apache2安装和简单配置;Nginx安装和简单配置;MySQL数据库安装和配置;
下载 Yourls官方 ZIP包。
域名和对应的域名SSL证书。
本文操作均在
root
账户下操作,若没有该权限请自行添加sudo
。
创建数据库
这里仅针对非全新安装。
进入数据库:
1 | mysql -uroot -p |
输入root密码后创建数据库:
1 | CREATE DATABASE IF NOT EXISTS yourlsdb DEFAULT CHARACTER SET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci; |
创建用户,将命令行内{password}
改为你的自定义密码,安全起见不要使用Root密码:
1 | CREATE USER 'yourls'@'localhost' IDENTIFIED BY '{password}'; |
授予用户访问数据库的权限并强制刷新权限:
1 | GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourls'@'localhost' WITH GRANT OPTION; |
最后退出数据库即可。
修改配置
将user/config-sample.php
复制一份副本config.php
,并将权限设置为0666
。
打开该文件,修改以下项:
1 | /** MySQL 数据库的用户名 */ |
以上项目没有提到的项目可以不改(保持默认),保存退出。
Apache2 配置
新建站点配置文件
这里贴出一份示例文件(/etc/apache2/sites-available/yourls.conf
),请酌情更改使用。
1 | <VirtualHost *:2222> |
因为这里是用Nginx反代到公网,Apache2的监听端口不是80/443,还需要在/etc/apache2/ports.conf
中添加监听当前配置文件中定义的端口。
启用 Rewrite
因为Yourls的短链需要应用到重写模块,默认是关闭的,这里需要打开:
1 | a2enmod rewrite |
然后重启 Apache2 。
htaccess
在初次安装时,Yourls会自动创建.htaccess
文件,但若因权限问题或yourls没有正确识别服务端,则需要自行创建.htaccess
文件,这里建议还是提前创建好。
在站点根目录下新建.htaccess
文件,输入如下代码(无需更改直接填入即可):
1 | # BEGIN YOURLS |
保存后退出,并将该文件权限更改为0755
。
启用覆写
打开Apache2根配置文件/etc/apache2/apache2.conf
,在该配置文件的最下面添加:
1 | # 将 Directory 后面的值更改为你 Yourls 的根目录。 |
Nginx 配置
直接反代该端口即可,本站往期文章有很详细的说明(反代的配置文件大同小异)。
访问
默认管理后台:https://yourdomain.com/admin
。
插件
需要提前说一下,目前没有官方提供的中文汉化,所有的中文汉化都是第三方制作。
Random Backgrounds
启用后会随机生成管理页面的背景图。
Random ShortURLs
启用后能够随机生成链接。
示例:启用前https://demo.com/1
,启用后https://demo.com/6tgy8
。
Admin reCaptcha
Google reCaptcha 在 Nginx 反代的环境中并不可使用,目前具体原因还未知。
为管理后台启用 reCaptcha 防止被爆破,该插件没有自带,需要自行下载,Github仓库地址 。
下载后将整个文件夹复制到user/plugins/
下面即可。
需要注意的是,该插件设置后可能在中国大陆并不能使用,需要打开user/plugins/Admin-reCaptcha/plugin.php
文件并将该文件引入 reCaptcha 的部分中www.google.com
更改为www.recaptcha.net
即可。
另外 Admin reCaptcha 中的 reCaptcha 版本要求是 v2 ,注意不要设置错了。
Sleeky
Google reCaptcha 在 Nginx 反代的环境中并不可使用,目前具体原因还未知。
Sleeky 提供了一个用户友好的前台UI和好看的后台UI,Github仓库。
首先将sleeky-frontend
中的内容全部复制到站点根目录下,然后将sleeky-backend
整个文件夹复制到user/plugins/
下面即可。
需要注意的是,该插件的 reCaptcha 部分在设置后可能在中国大陆并不能使用(表现为返回HTTP 500),需要打开index.php
和frontend/footer.php
文件并将该文件引入 reCaptcha 的部分中www.google.com
更改为www.recaptcha.net
即可。
另外 Sleeky 中的 reCaptcha 版本要求是 v3 ,注意不要设置错了。
其他问题
访问短链接回应404
检查.htaccess
是否正确配置,权限是否正确,换行格式(CRLF)是否是Unix格式(LF);重写模块是否开启;是否正确配置AllowOverride
。
管理后台提示数据库错误
检查是否真的数据库配置有误(可以试试用PMA是否能够正确连接到数据库);
检查是否正确安装PHP-MySQL插件。
提示PHP版本低于7.4.0
- 添加PPA存储库:
1 | add-apt-repository ppa:ondrej/php |
- 安装 PHP 7.4:
1 | apt install php7.4 php7.4-mysql php7.4-json |
- 启用 PHP 7.4 并禁用之前的版本:
我这里之前是PHP7.2,禁用时需要根据自己的实际情况禁用;
当前PHP版本可以使用php探针查看。
1 | a2dismod php7.2 |
- 重启Apache2即可
1 | systemctl restart apache2 |
文档信息
更改记录
时间 | 改动 |
---|---|
2022-06-18 16:58:00 | 文章创建 |
2022-06-19 08:50:00 | 内容完善并添加新内容 |
2022-06-19 23:02:00 | 新增插件内容 |
2022-06-20 07:52:00 | 新增Nginx中reCaptcha不可用问题的说明 |
参考资料
排名不分先后;
在此一并表示感谢。
- 如何在Ubuntu 18.04/19.04/19.10上安装PHP 7.4;
- 短网址程序YOURLS安装及配置教程与设置中文;
- Linux下PHP7安装与Apache配置;
- apache2开启重写模块;
- Apache下rewrite不成功;
- .htaccess设置不起作用;
- Shortned URLs give 404;
- Installation;
- YOURLS: 404 and directory issues。