如何在 Ubuntu 18.04 服務器上安裝 Shlink URL Shortener


Shlink 是一個開源的自託管 URL 縮短服務,允許您縮短 URL 並在您自己的短域中提供它們。 您可以通過使用自己的 URL 縮短服務而不是像 bit.ly 這樣的第三方服務來提高您的品牌知名度。本教程將向您展示如何在 Ubuntu 18.04 上安裝 Shlink Apache 或 Nginx Web Server。

收縮功能

  • 統計數據:跟踪所有對縮短 URL 的訪問,包括位置、瀏覽器、引薦來源網址等統計信息。
  • 電子郵件跟踪:生成可用於電子郵件跟踪的 1px 透明圖像。
  • 第三方集成:啟用第三方工具並使用帶有單個請求 API 端點的 shlink 來縮短 URL。
  • 定制彈頭:讓您的縮短 URL 使用自定義 slug,以便您可以輕鬆識別您的廣告系列。
  • 二維碼: 動態生成指向縮短 URL 的二維碼
  • 預習: 獲取縮短 URL 的圖片格式預覽
  • 標籤:標記縮短的 URL 並對其進行分類以供以後分析
  • 訪問受到限制:按日期範圍和/或最大訪問次數限制對縮短 URL 的訪問。
  • 第三方進口:從第三方(例如 bit.ly)導入現有的縮短 URL。
  • 命令行和網絡界面。

在 Ubuntu 18.04 服務器上安裝 Shlink 的先決條件

由於 Shlink 是用 PHP 編寫的,並且依賴於 MySQL / MariaDB 或 PostgreSQL 數據庫服務器,因此您需要配置 LAMP 堆棧或 LEMP 堆棧。 如果您需要 Apache Web 服務器,請設置 LAMP 堆棧。

  • 如何在 Ubuntu 18.04 服務器/桌面上安裝 LAMP 堆棧

如果您需要 Nginx Web 服務器,請設置 LEMP 堆棧。

  • 如何在 Ubuntu 18.04 LTS 上安裝 LEMP 堆棧(Nginx、MariaDB、PHP7.2)

您還需要一個域名。我從 NameCheap 註冊了我的域名。這是由於其低廉的價格和免費的whois隱私保護。在本教程中 lnux.be 以域名為例。在您的 Ubuntu 18.04 服務器上安裝 Shlink 沒有任何麻煩。

第 1 步:下載 Shlink 到 Ubuntu 18.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

接下來,創建一個 Web 服務器用戶 (www-data) 作為該目錄的所有者。

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

第 2 步:為 Shlink 創建 MariaDB 數據庫和用戶

接下來,您需要登錄 MariaDB 控制台並創建 Shlink 數據庫和用戶。默認情況下,Ubuntu 的 MariaDB 包使用 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;

第三步:安裝PHP8.0和一些擴展

現在您已經下載了 PHP 8 版本的 Shlink,您需要安裝 PHP 8。 Ubuntu 18.04 存儲庫包含 PHP 7.2。 要在 Ubuntu 18.04 上安裝 PHP 8.0,您需要添加 PPA。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

接下來,安裝 PHP 8.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

使用時 阿帕奇 對於 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

第四步:運行 Shlink 安裝腳本

/var/www/shlink/bin/ 目錄。

cd /var/www/shlink/bin/

我有一個名為的 PHP 腳本 install傳遞腳本如下 www-data 用戶。

sudo -u www-data php8.0 ./install

然後設置嚮導會提示您輸入數據庫詳細信息。所以我選擇 瑪麗亞數據庫 [データベースタイプ]輸入數據庫名稱、用戶和密碼。主機是 本地主機 港口是 3306..

然後輸入 URL 縮短服務的默認域並選擇方案類型 (https)。

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

接下來,配置重定向。當訪問者點擊我的 Shlink 基本 URL (https://lnux.be) 時,他們會被重定向到我的網站。 您還可以為 404NotFound 頁面創建自定義 URL。在本教程中 Enter 接受默認值。

鏈接重定向

最後,配置應用程序。只需按下 Enter 使用默認設置。

安裝-shlink-on-ubuntu-18.04-server-apache-nginx

第 5 步:為 Apache Shlink 創建虛擬主機或 Nginx 配置文件

阿帕奇

如果您使用 Apache Web 服務器,請創建一個 Shlink 虛擬主機。

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

將以下文本放入文件中。交換 lnux.be 請記住使用實際域名並設置 DNSA 記錄。

<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 請記住使用實際域名並設置 DNSA 記錄。

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/php8.0-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 php8.0 /var/www/shlink/bin/cli api-key:generate

然後轉到 https://app.shlink.io/ 並添加服務器。

shlink 創建一個短鏈接

添加服務器後,您可以創建一個短鏈接。

shlink 創建一個縮短的 URL

請注意,這只是一個 Web 客戶端。縮短的 URL 存儲在您自己的服務器上。

您還可以從服務器命令行生成縮短的 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。您可能還想了解如何在 Ubuntu 上使用多個版本的 PHP。

  • 如何在 Ubuntu 上安裝多個版本的 PHP

與往常一樣,如果您覺得這篇文章有用,請訂閱我們的免費時事通訊以獲取更多提示和技巧。照顧好自己?



Source link