如何在Ubuntu18.04服务器上安装Shlink URL Shortener
- 技术文档
- 2022.03.23
- 浏览:212
文章目录[隐藏]
Shlink是一个开源的自托管URL缩短器,它允许您缩短URL,并在自己的短域下提供服务。使用自己的URL短消息服务,而不是像bit这样的第三方服务。Lily可以提高品牌知名度。本教程将向您展示如何使用Apache或Nginx web服务器在Ubuntu18.04上安装Shlink。
Shlink功能
- 访问统计:跟踪所有短URL的访问,包括位置、浏览器或推荐人等统计信息。
- 电子邮件跟踪:生成1px透明图像,用于跟踪电子邮件。
- 第三方集成:通过使用单个请求API端点,轻松让第三方工具使用shlink缩短URL。
- 自定义段塞:让你的短网址使用自定义段塞来轻松识别活动。
- 二维码:动态生成指向短URL的二维码
- 预览:获取任何短URL的图像格式预览
- 标记:标记你的短URL,并对它们进行分类,以便以后进行分析
- 受限访问:按日期范围和/或最大访问次数限制对短URL的访问。
- 第三方导入:从第三方(如bit)导入现有的短URL。很好。
- 命令行和web界面。
在Ubuntu 18.04服务器上安装Shlink的先决条件
Shlink是用PHP编写的,依赖于MySQL/MariaDB或PostgreSQL数据库服务器,因此需要设置LAMP堆栈或LEMP堆栈。如果您更喜欢ApacheWeb服务器,请设置LAMP堆栈。
- 如何在Ubuntu 18.04服务器/桌面上安装LAMP Stack
如果您更喜欢Nginx web服务器,那么设置LEMP堆栈。
- 如何在Ubuntu18.04 LTS上安装LEMP堆栈(Nginx、MariaDB、PHP7.2)
你还需要一个域名。我从NameCheap注册了我的域名,因为价格低廉,而且他们免费为whois提供隐私保护。在本教程中,我使用我的lnux。以域名为例。无需更多麻烦,让我们在Ubuntu18.04服务器上安装Shlink。
第一步:将Shlink下载到你的Ubuntu18.04服务器上
转到Shlink Github页面查看最新的稳定版本。通过在服务器上执行以下命令,可以下载最新的稳定版本(2.6.2)。
wgethttps://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。使用解压命令将其解压到/var/www/directory。
sudo apt安装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
然后使web服务器用户(www数据)成为该目录的所有者。
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,您可以对数据库使用任何您喜欢的名称。
创建数据库链接;
下面的命令将创建数据库用户和密码,同时将新数据库的所有权限授予新用户,以便稍后Shlink可以写入数据库。将红色文本替换为首选的数据库名称、用户名和密码。
在shlink上授予所有权限。*至“shlink”@“localhost”,由“password”标识;
刷新特权表并退出MariaDB控制台。
同花顺特权;出口
步骤3:安装PHP8。0和一些扩展
因为我们下载了PHP8版本的Shlink,所以我们需要安装PHP8。Ubuntu 18.04存储库包括PHP7。2.安装PHP8。0在Ubuntu18.04上,我们需要添加一个PPA。
sudo-apt安装软件属性通用sudo-add-apt存储库ppa:ondrej/php-y
然后安装PHP8。0和Shlink所需的扩展。
sudo apt安装php apcu php8。0 php8。0-fpmPHP8。0-mysql php8。0-gd php8。0-普通php8。0-卷曲php8。0-intl php8。0-gmp php8。0-xml
如果使用ApacheWeb服务器,则需要运行以下命令以使其使用PHP8。0-FPM。
sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenif sudo a2enconf php8。0-fpm
然后重启Apache。
sudo systemctl重启apache2
第4步:运行Shlink安装脚本
转到/var/www/shlink/bin/目录。
cd/var/www/shlink/bin/
有一个名为install的PHP脚本,我们以www数据用户的身份运行该脚本。
sudo-u www-data-php8。0 ./安装
然后安装向导将要求您输入数据库详细信息。所以我选择MariaDB作为数据库类型,然后输入数据库名称、用户和密码。主机是localhost,端口是3306。
接下来,输入URL缩写器的默认域,并选择方案类型(https)
然后配置重定向。当访问者点击我的Shlink的基本URL时(https://lnux.be),它们将被重定向到我的网站。您还可以为404未找到页面创建自定义URL。在本教程中,我只需按Enter键接受默认设置。
最后,配置应用程序。我只需按Enter键即可使用默认设置。
步骤5:为Shlink创建Apache虚拟主机或Nginx配置文件
阿帕奇
如果使用ApacheWeb服务器,请为Shlink创建一个虚拟主机。
sudo nano/etc/apache2/sites available/shlink。形态
将以下文本放入文件中。更换lnux。使用真实的域名,别忘了为其设置DNS记录。
<;虚拟主机*:80>;服务器名lnux。可以是DocumentRoot/var/www/shlink/public ErrorLog${APACHE_LOG_DIR}/shlink_error。log CustomLog${APACHE_log_DIR}/shlink_访问。日志合并<;目录/var/www/shlink/public>;以下选项ymlinks包括execgi AllowOverride All Order allow、deny allow from All</目录></VirtualHost>;
保存并关闭文件。然后通过以下方式启用此虚拟主机:
sudo a2ensite shlink。形态
重新加载Apache以使更改生效。
sudo systemctl重新加载apache2
Nginx
如果使用Nginx web服务器,请为Shlink创建一个虚拟主机。
sudo nano/etc/nginx/conf.d/shlink。形态
将以下文本放入文件中。更换lnux。使用真实的域名,别忘了为其设置DNS记录。
服务器{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/{#尝试直接为文件服务,回退到app.php try_files$uri/index.php$is#args$args;}重定向部分整个文件夹重写^/(供应商|翻译|构建)/.*/指数php中断;地点~/。php${fastcgi_split_path_info^(.+/.php)(/.+)$;fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;fastcgi_index index.php;fastcgi_参数脚本文件名$document_root$fastcgi_脚本名称;包含fastcgi_参数;}
保存并关闭文件。然后测试Nginx配置。
sudo nginx-t
如果测试成功,请重新加载Nginx以使更改生效。
sudo systemctl重新加载nginx
第6步:启用HTTPS
为了加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Ubuntu18.04服务器上安装Let's Encrypt client(certbot)。
sudo apt安装certbot
如果使用Apache,请安装Certbot Apache插件。
sudo apt安装python3 certbot apache
并运行此命令以获取并安装TLS证书。
sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d lnux。是
如果您使用Nginx,那么您还需要安装Certbot Nginx插件。
sudo apt安装python3 certbot nginx
接下来,运行以下命令获取并安装TLS证书。
sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email-d lnux。是
哪里
- --nginx:使用nginx插件。
- --apache:使用apache插件。
- --同意:同意服务条款。
- --重定向:通过301重定向强制HTTPS。
- --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。
- --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。
现在应获得证书并自动安装。
第7步:创建短链接
首先,需要使用以下命令创建API密钥。
sudo-u www-data-php8。0/var/www/shlink/bin/cli api密钥:生成
那就去https://app.shlink.io/添加您的服务器。
添加服务器后,可以创建短链接。
请注意,这只是一个web客户端。短URL存储在您自己的服务器上。
您还可以从服务器上的命令行生成短URL。
sudo-u www-data/var/www/shlink/bin/cli短url:generate
列出简短的URL。
sudo-u www-data/var/www/shlink/bin/cli短url:list
运行以下命令查看帮助消息。
sudo-u www-data-php/var/www/shlink/bin/cli
收尾
我希望本教程能帮助你在Ubuntu18.04服务器上安装Shlink。你可能还想学习如何在Ubuntu上使用多个版本的PHP。
- 如何在Ubuntu上安装多个版本的PHP
和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?