云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

2019-09-26 10:10:39作者:林中豪稿源:云网牛站

本文介绍在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)的步骤,展示如何在具有Apache或Nginx Web服务器的Ubuntu 18.04上安装Shlink。Shlink是一个开放源代码的自托管URL缩短器,它允许你缩短URL并在你自己的短域名下提供它们,使用你自己的URL缩短服务而不是第三方服务可以提高品牌知名度。Shlink用PHP编写,并且依赖于MySQL/MariaDB或PostgreSQL数据库服务器,因此你需要设置LAMP堆栈或LEMP堆栈。如果你更喜欢Apache Web服务器,请设置LAMP堆栈,参考在Ubuntu 18.04 Server中安装LAMP的方法[Apache、MariaDB、PHP7.2]一文。如果你喜欢Nginx Web服务器,则设置LEMP堆栈,参考在Ubuntu 18.04 Server中安装LEMP的方法[Nginx、MariaDB、PHP7.2]一文。同时,你还需要一个域名。

 

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

转到Shlink Github页面(地址:https://github.com/shlinkio/shlink/releases/)以查看最新的稳定版本,你可以下载shlink_1.18.1_dist.zip文件。

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

sudo apt install unzip

sudo unzip shlink_1.18.1_dist.zip -d /var/www/

现在,文件存储在/var/www/shlink_1.18.1_dist/下,我们将其重命名:

sudo mv /var/www/shlink_1.18.1_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上可以写入数据库,请用你喜欢的数据库名称、用户名和密码替换shlink和password:

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

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

FLUSH PRIVILEGES;

EXIT;

 

步骤3:运行Shlink安装脚本

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

cd /var/www/shlink/bin/

有一个名为install的PHP脚本,我们以www-data用户身份运行该脚本:

sudo -u www-data php ./install

然后,安装向导将要求你输入数据库详细信息,因此,我选择MySQL作为数据库类型,然后输入数据库名称、用户名和密码,主机是localhost,端口是3306:

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

接下来,为你的URL缩写选择方案类型(https)和主机名:

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

然后选择语言并配置应用程序,我只需按Enter键即可使用默认设置:

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

 

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

1、Apache

如果使用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

2、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.2-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

 

步骤5:安装必需和推荐的PHP模块,及启用HTTPS

运行以下命令以安装Shlink所需或推荐的PHP模块:

sudo apt install php-apcu php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-intl

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

sudo systemctl restart apache2

如果你需要启用HTTPS,则启用HTTPS,安装certbot来完成即可,参考使用Certbot:在Linux上安装letsencrypt的最简单方法,成功如下图所示:

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

 

步骤6:创建短链接

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

sudo -u www-data php /var/www/shlink/bin/cli api-key:generate

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

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

添加服务器后,你可以创建短链接:

在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)

请注意,这只是一个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并配置Shlink的操作已全部完成。

 

相关主题

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

精选文章
热门文章