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

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

闪烁功能

  • 访问统计:跟踪对您的简短网址的所有访问,包括位置,浏览器或引荐来源网址之类的统计信息。
  • 邮件追踪:生成1像素的透明图像,可用于跟踪电子邮件。
  • 第三方整合:通过使用单一请求API端点,轻松使第三方工具使用shlink缩短URL。
  • 定制Sl:让您缩短的网址使用自定义标记来轻松识别广告系列。
  • QR码:即时生成指向您的短网址的QR码
  • 预告片:获取任何短网址的图像格式预览
  • 标签:标记您的短网址并对其进行分类,以便以后进行分析
  • 访问受限:按日期范围和/或最大访问次数来限制对短网址的访问。

在Ubuntu 18.04 Server上安装Shlink的前提条件

Shlink是用PHP编写的,并且依赖于MySQL / MariaDB或PostgreSQL数据库服务器,因此您需要设置LAMP堆栈或LEMP堆栈。 如果您更喜欢Apache Web服务器,请设置LAMP堆栈。

  • 如何在Ubuntu 18.04 Server / Desktop上安装LAMP Stack

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

  • 如何在Ubuntu 18.04 LTS上安装LEMP Stack(Nginx,MariaDB,PHP7.2)

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

步骤1:将Shlink下载到Ubuntu 18.04服务器上

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

wget https://github.com/shlinkio/shlink/releases/download/v2.1.3/shlink_2.1.3_dist.zip

注意:如果出现新版本,只需将2.1.3替换为新版本号。

该文件将另存为 shlink_2.1.3_dist.zip。 使用 unzip 命令解压缩到 /var/www/ 目录。

sudo apt install unzip

sudo unzip shlink_2.1.3_dist.zip -d /var/www/

现在文件存储在 /var/www/shlink_2.1.3_dist/,我们将其重命名。

sudo mv /var/www/shlink_2.1.3_dist /var/www/shlink

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

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

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

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

sudo mysql -u root

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

CREATE DATABASE shlink;

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

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

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

FLUSH PRIVILEGES;

EXIT;

步骤3:安装PHP7.4和某些扩展

Shlink需要PHP7.4才能运行。 Ubuntu 18.04存储库包含PHP7.2。 要在Ubuntu 18.04上安装PHP7.4,我们需要添加一个PPA。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

然后安装PHP7.4和Shlink所需的扩展。

sudo apt install php-apcu php7.4 php7.4-fpm php7.4-mysql php7.4-json php7.4-gd php7.4-common php7.4-curl php7.4-intl

然后重新启动Apache。 (如果使用Nginx,则无需重新启动Nginx。)

sudo systemctl restart apache2

步骤4:运行Shlink安装脚本

转到 /var/www/shlink/bin/ 目录。

cd /var/www/shlink/bin/

有一个名为 install,我们将脚本作为 www-data 用户。

sudo -u www-data php7.4 ./install

然后,安装向导将要求您输入数据库详细信息。 所以我选择 玛丽亚数据库 作为数据库类型,然后输入数据库名称,用户和密码。 主持人是 本地主机 和端口是 3306

shlink安装脚本向导命令行

接下来,输入网址缩写的默认域,然后选择方案类型(https

shlink-self-hosted-url-shortner-ubuntu-18.04

然后配置重定向。 当访问者点击我的Shlink的基本URL(https://lnux.be)时,他们将被重定向到我的网站。 您还可以为404未找到页面创建自定义URL。 在本教程中,我只需按 Enter 接受默认值。

闪烁重定向

最后,配置应用程序。 我只是按 Enter 使用默认设置。

在ubuntu-18.04上安装-shlink-server-apache-nginx

步骤5:为Shlink创建Apache虚拟主机或Nginx配置文件

阿帕奇

如果使用Apache Web服务器,请为Shlink创建虚拟主机。

sudo nano /etc/apache2/sites-available/shlink.conf

将以下文本放入文件中。 更换 lnux.be 使用您的真实域名,不要忘记为其设置DNS A记录。

<VirtualHost *:80>
  ServerName lnux.be
  DocumentRoot /var/www/shlink/public

  ErrorLog ${APACHE_LOG_DIR}/shlink_error.log
  CustomLog ${APACHE_LOG_DIR}/shlink_access.log combined

  <Directory /var/www/shlink/public>
    Options FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>

保存并关闭文件。 然后通过以下方式启用此虚拟主机:

sudo a2ensite shlink.conf

重新加载Apache以使更改生效。

sudo systemctl reload apache2

Nginx的

如果您使用Nginx Web服务器,请为Shlink创建一个虚拟主机。

sudo nano /etc/nginx/conf.d/shlink.conf

将以下文本放入文件中。 更换 lnux.be 使用您的真实域名,不要忘记为其设置DNS A记录。

server {
   listen 80;
   listen [::]:80;
   server_name lnux.be;

   root /var/www/shlink/public;
   error_log /var/log/nginx/shlink.error;
   access_log /var/log/nginx/shlink.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   # redirect some entire folders
     rewrite ^/(vendor|translations|build)/.* /index.php break;

   location ~ .php$ {
     fastcgi_split_path_info ^(.+.php)(/.+)$;
     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
   }

}

保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,请重新加载Nginx以使更改生效。

sudo systemctl reload nginx

步骤6:启用HTTPS

为了加密HTTP流量,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令在Ubuntu 18.04服务器上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot

如果使用Apache,请安装Certbot Apache插件。

sudo apt install python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

如果使用Nginx,则还需要安装Certbot Nginx插件。

sudo apt install python3-certbot-nginx

接下来,运行以下命令以获取并安装TLS证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

哪里

  • --nginx:使用nginx插件。
  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。

现在应该获得证书并自动安装。

闪烁https

步骤7:创建短链接

首先,您需要使用以下命令创建API密钥。

sudo -u www-data php7.4 /var/www/shlink/bin/cli api-key:generate

然后转到https://app.shlink.io/添加服务器。

shlink创建短链接

添加服务器后,您可以创建短链接。

shlink创建短网址

请注意,这只是一个Web客户端。 短网址存储在您自己的服务器上。

您还可以从服务器上的命令行生成简短的URL。

sudo -u www-data /var/www/shlink/bin/cli short-url:generate

列出简短的URL。

sudo -u www-data /var/www/shlink/bin/cli short-url:list

运行以下命令以查看帮助消息。

sudo -u www-data php /var/www/shlink/bin/cli

包起来

我希望本教程可以帮助您在Ubuntu 18.04服务器上安装Shlink。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar