如何在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。
接下来,输入网址缩写的默认域,然后选择方案类型(https)
然后配置重定向。 当访问者点击我的Shlink的基本URL(https://lnux.be)时,他们将被重定向到我的网站。 您还可以为404未找到页面创建自定义URL。 在本教程中,我只需按 Enter
接受默认值。
最后,配置应用程序。 我只是按 Enter
使用默认设置。
步骤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期间提供的证书。
现在应该获得证书并自动安装。
步骤7:创建短链接
首先,您需要使用以下命令创建API密钥。
sudo -u www-data php7.4 /var/www/shlink/bin/cli api-key:generate
然后转到https://app.shlink.io/添加服务器。
添加服务器后,您可以创建短链接。
请注意,这只是一个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。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂