短縮URL生成スクリプトを利用しよう~YOURLSを設置する~
はじめに
最近、URLが長くなりがちなことが多いです。
例えば、URLにquery( http://hogehoge.jp/test.php?name=hoge&path=hogehoge の色がついている部分のことを言います)がついていることが多く、cookieを使わない流れになってきたのでセッションを保持するためにURLに書いちゃうことが多くなってきているのが原因だと思います。
また、URLの階層構造が深くなったり、URLに文字列(例えばディレクトリ名)をそのまま記したりすることで文字数が激増しています。
ここで問題なのが、Share PointやOne Driveを使ってリンクを使用すると、255文字までしか認識をしてくれないので、長いURLへのリンクが貼ることができないわけです。
なので。
短縮URLを使えば、解決するわけです。
短縮URLというのは、例えば
という長ったらしいURLがあったとしましょう。(googleでfirefoxを使って「短縮URL」を調べた結果です)これを短縮URL生成サービスを使って表すと、次の通りになります。
なんと、653文字のURLがたったの18文字に。圧縮率に換算すると、たったの2.76%。
なぜこんなことができるかというのは、ここでの解説は伏せておきますが、便利なことに間違いはありません。
ただ、海外の短縮URL生成サービスに抵抗があったり、例えば職場内のOneDriveにリンクを作成するために必要だったりする場合は、自前で短縮URLの生成スクリプトを用意する方が安心ですね。ということで、この短縮URLを生成することができるスクリプトがあるので、それを設置したいと思います。
使うスクリプトは「 YOURLS 」というものです。(Your Own URL Shortenerから名前を取っています)
設置は簡単ですので、やってみましょう。
必要なもの
・レンタルサーバー(次の要件が必要です)
○PHP7.4以降を推奨
○MySQL 5以降が必要
○mod_rewrite が有効
・独自ドメイン(なくてもいいですが、ある方がよい)
短縮URLの生成スクリプト
手順
⓪前提条件
・レンタルサーバー → さくらインターネット「さくらのレンタルサーバ(スタンダード)」
・独自ドメイン → hogehoge.jp (と、仮にします)
①データベースを用意する
①まず、必要なMySQLのデータベースを用意します。さくらのレンタルサーバの「コントロールパネル」を開きます。
②画面中ほどの「ショートカット」の中から、「データベース」をクリックします。
③「新規追加」をクリックし、新規作成画面で必要事項を入力します。
[1]データベースバージョンはそのままで大丈夫です。
[2]データベース名は、「 yourls 」と入力。実際のデータベース名には、さくらのサブドメイン名がつきます。(大文字は受け付けません)
[3]データベース接続用パスワードを入力します。
[4]データベース文字コードは「UTF-8(utf8mb4)」のままでかまいません。
④最後に、「同意する」にチェックを入れて、「作成する」をクリックして下さい。
⑤データベースには、今作成したデータベースが表示されていると思います。そのデータベース名の横にある「設定」→「接続先/削除」をクリックしてください。
⑥接続情報が表示されますので、ホスト名やデータベース名を控えておいてください。
②YOURLSをダウンロードする
続いて、YOURLSをダウンロードします。
①YOURLS GitHubを開く
②右側サイドバーエリアの「 Release 」から、Latest のついたバージョンを選択する。
③ページ下部の「 Assets 」から、「 Source code(zip) 」を選択し、ダウンロードする。
④ダウンロードしたzipを解凍して、適当なフォルダに、フォルダ構造をそのまま置いてください。
⑤user/config-sample.php を config.php にリネームします。
⑥リネームしたconfig.phpを開きます(メモ帳等)
⑦必要な設定を書き換えていきます。データベースユーザーとデータベース名のhogehogeは、適当に直してください。
14行目 元 define( 'YOURLS_DB_USER', 'your db user name' );
新 define( 'YOURLS_DB_USER', 'hogehoge_yourls' );
17行目 元 define( 'YOURLS_DB_PASS', 'your db password' );
新 define( 'YOURLS_DB_PASS', '*********' );
21行目 元 define( 'YOURLS_DB_NAME', 'yourls' );
新 define( 'YOURLS_DB_NAME', 'hogehoge_yourls' );
25行目 元 define( 'YOURLS_DB_HOST', 'localhost' );
新 define( 'YOURLS_DB_HOST', 'mysql*****.db.sakura.ne.jp' );
40行目 元 define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );
新 define( 'YOURLS_SITE', 'http://hogehoge.jp' );
46行目 元 define( 'YOURLS_LANG', '' );
新 define( 'YOURLS_LANG', 'ja_JP' );
60行目 元 define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );
新 define( 'YOURLS_COOKIEKEY', 'random文字列' );
65-66行目
元 $yourls_user_passwords = [
'username' => 'password',
新 $yourls_user_passwords = [
'hogeuser' => 'hogepass',
75行目 元 define( 'YOURLS_URL_CONVERT', 36 );
新 define( 'YOURLS_URL_CONVERT', 62 );
92行目 新 define( 'YOURLS_HOURS_OFFSET', 9 );
それぞれの設定をかいつまんで解説します。
14行目 YOURLS_DB_USER
さくらのサーバで設定したデータベース名が入ります。
17行目 YOURLS_DB_PASS
データベースを作成した際に設定したパスワードです。
21行目 YOURLS_DB_NANE
データベース名(14行目と同じ)です。
25行目 YOURLS_DB_HOST
さくらのサーバで、データベースの接続情報にある「ホスト名」を入力します。
40行目 YOURLS_SITE
YOURLSを設置するURLです。最後のスラッシュは不要です。
46行目 YOURLS_LANG
言語の設定です。日本語は、ja_JP になります。これを書くだけで日本語化できるわけではないですが、後ほど日本語のデータを組み込みます。
60行目 YOURLS_COOKIEKEY
Cookieの暗号化に必要な文字列です。https://yourls.org/cookie にアクセスして、ランダムな文字列を取得できます。
65-66行目 yourls_user_passwords
YOURLSのユーザー名とパスワードを設定します。とりあえず、ユーザー名とパスワードを入れましょう。
75行目 YOURLS_URL_CONVERT
これは36のままでもいいのですが、62にすると数字+アルファベット小文字+大文字で短縮URLが作成されます。ちなみに、36だと数字+アルファベット小文字です。
92行目 YOURLS_HOURS_OFFSET
ファイルの末尾に追加してください。
時差を修正するためのものです。サーバーの位置などによっても数値が変わりますので、それに合わせて設定してください。(日本はGMT+9なので 9 を入れています)
以上の設定を終えたら、上書き保存しておきます。
③日本語化ファイルを導入する
先ほど言語の設定をしましたが、言語を変えるには作業が必要です。
①https://github.com/havill/YOURLS-ja_JP にアクセスします。
②ja_JP.poをクリックしてください。ファイルの中身が表示されます。
③ソースコード右上にある、ダウンロードボタンをクリックしてください。ダウンロードが始まります。
④ダウンロードしたpoファイルを、プログラムが読めるように mo ファイルに変換します。
https://po2mo.net/ にアクセスし、先ほどのpoファイルを選択してください。選択できたら、「Convert」ボタンをクリックします。
⑤画面が変わったら、MO Fileの横にあるダウンロードをクリックします。
⑥ダウンロードが完了したら、ファイル名を ja_JP.mo にリネームします。
⑦リネームした ja_JP.mo を、YOURLSのフォルダ内にあるuserフォルダの中の、languagesフォルダに移動します。
④スクリプトファイルをアップロードする
ここまで設定したファイルを、サーバーにアップロードします。
①ftpソフト(WindowsならFFFTPが有名)で、フォルダ構造をそのままアップロードします。
さくらのサーバでのFFFTPの使い方は https://help.sakura.ad.jp/rs/2220/ に詳しいです。
②アップロードが完了したら、スクリプトにアクセスしてインストール作業を行います。
設定したURLにアクセスします。( https://hogehoge.jp は YOURLS_SITE の値です)
→ https://hogehoge.jp/admin/install.php
③正しくconfig.phpが設定されていれば、次のような画面が出てきます。ロゴ下にある「YOURLSをインストール」をクリックしてください。
④インストールはすぐに完了し、次のような画面が表示されます。
⑤ロゴ下に動作ログが表示されています。その下に、「YOURLSの管理ページ」というリンクがあるので、クリックしてください。
⑥「ログインしてください」なので、先ほど設定したユーザ名とパスワードを入力してください。
⑦無事にログインできたら、次のような画面が表示されます。
この画面が表示されたら、あと少しです。がんばりましょう!
⑤生成URLをランダム化する
さて、最後の設定です。
生成URLは、そのままでは順番に番号が振られるため、多人数で使う場合には不具合が生じます。
ですので、生成URLの文字列をランダム化します。
①まず、管理ホームの左上にある「機能拡張を管理」というリンクをクリックします。
②機能拡張の表が表示されます。その中の「Random ShortURLs」が、文字列をランダム化する機能拡張です。Random ShortURLsの行の右端の「操作」の空欄にマウスカーソルを当てると「有効」という文字のリンクが表示されますので、クリックしてください。
③Random ShortURLsを有効化すれば、短縮URLの文字列がランダムで生成されます。
管理ページの左上に「Random ShortURLs Settings」と新しく表示されているので、それを開けば文字列の長さを設定することができます。
おわりに
設定はこれで完了です。
管理ホームの「URLを入力して」の部分に短縮するURLを入力すれば、短縮URLが生成されます。
ちなみに、先ほどのRandom ShortURLsを使った場合と使わなかった場合の比較が下の画像です。
下の短縮URL「1」が無効時、上の短縮URL「6il1vuh0bjx1」が有効時(keyword lengthを12にしてあります)
いろいろ機能拡張はあるようなので、触ってみると面白いとおもいます。
ではまた!