ShlinkはオープンソースのセルフホストURL短縮サービスであり、URLを短縮して、独自の短いドメインで提供することができます。 bit.lyのようなサードパーティのサービスの代わりに独自のURL短縮サービスを使用すると、ブランドの認知度を高めることができます。このチュートリアルでは、ApacheまたはNginxWebサーバーを使用してUbuntu18.04にShlinkをインストールする方法を示します。
Shlinkの機能
- 統計にアクセス :場所、ブラウザ、リファラーなどの統計情報を含む、短いURLへのすべての訪問を追跡します。
- メール追跡 :メールの追跡に使用できる1pxの透明な画像を生成します。
- サードパーティの統合 :単一リクエストのAPIエンドポイントを使用して、サードパーティのツールにshlinkを使用してURLを短縮させるのは簡単です。
- カスタムスラッグ :短縮URLでカスタムスラッグを使用して、キャンペーンを簡単に識別できるようにします。
- QRコード :短いURLを指すQRコードをその場で生成します
- プレビュー :短縮URLのプレビューを画像形式で取得する
- タグ :短いURLにタグを付け、後で分析できるように分類します
- アクセス制限 :日付範囲や最大訪問数によって、短いURLへのアクセスを制限します。
- サードパーティのインポート :bit.lyなどのサードパーティから既存の短いURLをインポートします。
- コマンドラインとWebインターフェイス。
Ubuntu18.04サーバーにShlinkをインストールするための前提条件
ShlinkはPHPで記述されており、MySQL / MariaDBまたはPostgreSQLデータベースサーバーに依存しているため、LAMPスタックまたはLEMPスタックを設定する必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックを設定します。
- Ubuntu18.04サーバー/デスクトップにLAMPスタックをインストールする方法
Nginx Webサーバーを使用する場合は、LEMPスタックを設定します。
- Ubuntu 18.04 LTSにLEMPスタック(Nginx、MariaDB、PHP7.2)をインストールする方法
ドメイン名も必要です。 NameCheapからドメイン名を登録しました。これは、価格が低く、whoisのプライバシー保護が無料で提供されるためです。このチュートリアルでは、 lnux.beを使用します 例としてドメイン名。さらに面倒なことはせずに、Ubuntu18.04サーバーにShlinkをインストールしましょう。
ステップ1:ShlinkをUbuntu18.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を使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用して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;
ステップ3:PHP8.0といくつかの拡張機能をインストールする
PHP 8バージョンのShlinkをダウンロードしたので、PHP8をインストールする必要があります。 Ubuntu18.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
Apacheを使用する場合 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
ステップ4:Shlinkインストールスクリプトを実行する
/var/www/shlink/bin/
に移動します ディレクトリ。
cd /var/www/shlink/bin/
install
という名前のPHPスクリプトがあります 、スクリプトをwww-data
として実行します ユーザー。
sudo -u www-data php8.0 ./install
次に、セットアップウィザードでデータベースの詳細を入力するように求められます。そこで、 MariaDBを選択します データベースタイプとして、データベース名、ユーザー、およびパスワードを入力します。ホストはlocalhost ポートは3306 。
次に、URL短縮サービスのデフォルトドメインを入力し、スキームタイプを選択します( https )
次に、リダイレクトを構成します。訪問者が私のShlinkのベースURL(https://lnux.be)にアクセスすると、訪問者は私のWebサイトにリダイレクトされます。 404notfoundページのカスタムURLを作成することもできます。このチュートリアルでは、Enter
を押すだけです。 デフォルトを受け入れる。
最後に、アプリケーションを構成します。 Enter
を押すだけです デフォルト設定を使用します。
ステップ5:Shlink用のApache仮想ホストまたはNginx構成ファイルを作成する
Apache
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’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu18.04サーバーにインストールします。
sudo apt install certbot
Apacheを使用する場合は、CertbotApacheプラグインをインストールしてください。
sudo apt install python3-certbot-apache
そして、このコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be
Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。
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
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常に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