如何在 Ubuntu 20.04 服务器上安装 Shlink URL Shortener

Shlink 是一个开源的自托管 URL 缩短器,它允许您缩短 URL 并在您自己的短域下提供它们。 使用您自己的 URL Shortner 服务而不是像 bit.ly 这样的第三方服务可以提高品牌知名度。 本教程将向您展示如何在 Ubuntu 20.04 上安装 Shlink Apache 或 Nginx 网络服务器。

收缩功能

  • 访问统计:跟踪对您的短网址的所有访问,包括位置、浏览器或引荐来源网址等统计信息。
  • 邮件追踪:生成可用于跟踪电子邮件的 1px 透明图像。
  • 第三方集成:通过使用单请求 API 端点,轻松使第三方工具使用 shlink 缩短 URL。
  • 自定义弹头:让您的缩短网址使用自定义 slug 来轻松识别广告系列。
  • 二维码:动态生成指向您的短网址的二维码
  • 预览:获取任何短 URL 的图像格式预览
  • 标签:标记您的短 URL 并对其进行分类以供以后分析
  • 访问受限:按日期范围和/或最大访问次数限制对短 URL 的访问。
  • 第三方进口:从第三方(如 bit.ly)导入您现有的短 URL。
  • 命令行和网络界面。

在 Ubuntu 20.04 服务器上安装 Shlink 的先决条件

Shlink是用PHP编写的,依赖于MySQL/MariaDB或者PostgreSQL数据库服务器,所以需要设置LAMP栈或者LEMP栈。 若你宁可 Apache Web 服务器,然后设置 LAMP 堆栈。

  • 如何在 Ubuntu 20.04 服务器/桌面上安装 LAMP 堆栈

如果您更喜欢 Nginx Web 服务器,则设置 LEMP 堆栈。

  • 如何在 Ubuntu 20.04 LTS 上安装 LEMP Stack(Nginx、MariaDB、PHP7.4)

您还需要一个域名。 我从 NameCheap 注册了我的域名,因为价格低廉,而且他们提供终身免费的 whois 隐私保护。 在本教程中,我使用我的 lnux.be 以域名为例。 事不宜迟,让我们在 Ubuntu 20.04 服务器上安装 Shlink。

第 1 步:将 Shlink 下载到您的 Ubuntu 20.04 服务器上

前往 Shlink Github 页面查看最新的稳定版本。 您可以通过在您的服务器上执行以下命令来下载最新的稳定版本(2.6.2)。

wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip

笔记:如果有新版本出来,只需将2.6.2替换为新版本号即可。

该文件将保存为 shlink2.6.2_php8.0_dist.zip. 用 unzip 命令解压到 /var/www/ 目录。

sudo apt install unzip  sudo mkdir -p /var/www/  sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/

现在文件存储在 /var/www/shlink2.6.2_php8.0_dist/,我们重命名它以使其更简单。

sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink

然后使网络服务器用户(www-data) 作为此目录的所有者。

sudo chown -R www-data:www-data /var/www/shlink/

第 2 步:为 Shlink 创建 MariaDB 数据库和用户

现在我们需要登录到 MariaDB 控制台并为 Shlink 创建一个数据库和用户。 默认情况下,Ubuntu 上的 MariaDB 包使用 unix_socket 来验证用户登录,这基本上意味着您可以使用操作系统的用户名和密码登录到 MariaDB 控制台。 因此,您可以运行以下命令进行登录,而无需提供 MariaDB 的 root 密码。

sudo mysql -u root

接下来,使用以下命令为 Shlink 创建一个新数据库。 本教程将其命名为 shlink,您可以为数据库使用任何您喜欢的名称。

CREATE DATABASE shlink;

以下命令将创建数据库用户和密码,同时将新数据库的所有权限授予新用户,以便稍后在 Shlink 上可以写入数据库。 将红色文本替换为您首选的数据库名称、用户名和密码。

GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';

刷新权限表并退出 MariaDB 控制台。

FLUSH PRIVILEGES;  EXIT;

第三步:安装PHP8.0和一些扩展

由于我们下载的是PHP 8版本的Shlink,所以需要安装PHP8。 Ubuntu 20.04 存储库包含 PHP7.2。 要在 Ubuntu 20.04 上安装 PHP8.0,我们需要添加一个 PPA。

sudo apt install software-properties-common  sudo add-apt-repository ppa:ondrej/php -y

然后安装PHP8.0和Shlink所需的扩展。

sudo apt install php-apcu php8.0 php8.0-fpm php8.0-mysql php8.0-gd php8.0-common php8.0-curl php8.0-intl php8.0-gmp php8.0-xml

如果你使用 Apache web服务器,您需要运行以下命令使其使用PHP8.0-FPM。

sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenvif sudo a2enconf php8.0-fpm

然后重启 Apache.

sudo systemctl restart apache2

第 4 步:运行 Shlink 安装脚本

运行 PHP 安装脚本作为 www-data 用户。

sudo -u www-data php8.0 /var/www/shlink/bin/install

安装向导将要求您输入数据库详细信息。 所以我选择 玛丽亚数据库 作为数据库类型,然后输入数据库名称、用户和密码。 主持人是 本地主机 和端口是 3306. Shlink 也可以通过 Unix 套接字连接到数据库服务器。 如果使用 MariaDB,则套接字位置为 /var/run/mysqld/mysqld.sock 在 Ubuntu 服务器上。