Shlink 是一種開源、自託管的 URL 縮短服務,允許您縮短 URL 並在您自己的短域上提供它們。 使用您自己的 URL Shortner 服務而不是像 bit.ly 這樣的第三方服務可以提高您的品牌知名度。本教程展示瞭如何在 Ubuntu 18.04 上安裝 Shlink Apache 或 Nginx Web 服務器。
收縮功能
- 統計數據:跟踪對縮短的 URL 的所有訪問,包括位置、瀏覽器、引薦來源網址和其他統計信息。
- 電子郵件跟踪:生成可用於電子郵件跟踪的 1 像素透明圖像。
- 第三方集成:使用 Single Request API 端點輕鬆啟用使用 shlinks 縮短 URL 的第三方工具。
- 定制彈頭:在縮短的 URL 中使用自定義 slug 以輕鬆識別您的廣告系列。
- 二維碼:動態生成指向短網址的二維碼
- 預習:獲取短網址的圖像格式預覽
- 標籤: 標記縮短的 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
然後創建一個網絡服務器用戶(www-data
) 作為該目錄的所有者。
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
您可以為數據庫使用任何名稱。
CREATE DATABASE shlink;
以下命令創建數據庫用戶和密碼,並授予新用戶對新數據庫的所有權限,以便 Shlink 稍後可以寫入數據庫。將紅色文本替換為您首選的數據庫名稱、用戶名和密碼。
GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';
更新權限表並退出 MariaDB 控制台。
FLUSH PRIVILEGES; EXIT;
第三步:安裝PHP8.0和一些擴展
現在您已經下載了 PHP 8 版本的 Shlink,您需要安裝 PHP8。 Ubuntu 18.04 存儲庫包括 PHP7.2。 要在 Ubuntu 18.04 上安裝 PHP8.0,您需要添加 PPA。
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y
接下來,為 PHP8.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
何時使用 阿帕奇 要使用 PHP8.0-FPM,您需要運行以下命令:
sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenvif sudo a2enconf php8.0-fpm
然後重啟阿帕奇。
sudo systemctl restart apache2
第 4 步:運行 Shlink 安裝腳本
去 /var/www/shlink/bin/
目錄。
cd /var/www/shlink/bin/
我有一個名為 install
,並將腳本作為 www-data
用戶。
sudo -u www-data php8.0 ./install
安裝嚮導將提示您提供數據庫詳細信息。所以我選擇 瑪麗亞數據庫 輸入數據庫類型的數據庫名稱、用戶和密碼。主人是 本地主機 港口是 3306.
然後輸入 URL 縮短服務的默認域並選擇方案類型 (https)
接下來,配置重定向。當訪問者點擊 Shlink 的基本 URL (https://lnux.be) 時,他們將被重定向到我的網站。 您還可以為 404 未找到頁面創建自定義 URL。對於本教程,只需 Enter
接受默認值。
最後,配置您的應用程序。只需按下 Enter
使用默認設置。
第 5 步:創建 Apache Shlink 虛擬主機或 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/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
:強制 HTTPS 超過 301 重定向。--hsts
:將 Strict-Transport-Security 標頭添加到所有 HTTP 響應。強制瀏覽器始終對域使用 TLS。 防禦 SSL/TLS 剝離。--staple-ocsp
:啟用 OCSP 裝訂。有效的 OCSP 響應被裝訂到服務器在 TLS 期間提供的證書中。
將自動獲取並安裝證書。
第 7 步:創建短鏈接
首先,您需要使用以下命令創建一個 API 密鑰。
sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate
然後轉到 https://app.shlink.io/ 並添加您的服務器。
添加服務器後,您可以創建一個短鏈接。
請注意,這只是一個網絡客戶端。縮短的 URL 存儲在您自己的服務器上。
您還可以從服務器命令行生成短 URL。
sudo -u www-data /var/www/shlink/bin/cli short-url:generate
列出短網址。
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
與往常一樣,如果您發現本文有幫助,請註冊我們的免費時事通訊以獲取提示和技巧。照顧好自己?