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 基本 URL (https://lnux.be) 時,他們會被重定向到我的網站。 您還可以為 404NotFound 頁面創建自定義 URL。在本教程中 Enter
接受默認值。
最後,配置應用程序。只需按下 Enter
使用默認設置。
第 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 期間服務器提供的證書。
現在將自動獲取並安裝證書。
第 7 步:創建短鏈接
首先,您需要使用以下命令創建 API 密鑰:
sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate
然後轉到 https://app.shlink.io/ 並添加服務器。
添加服務器後,您可以創建一個短鏈接。
請注意,這只是一個 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
與往常一樣,如果您覺得這篇文章有用,請訂閱我們的免費時事通訊以獲取更多提示和技巧。照顧好自己?