bit.ly のような「短縮URLサービス」をOSSで構築できる「phurl」。今回は ServersMan@VPSにインストールします。(2013/02/17作成)
congerdesign / Pixabay
0.環境
php -v PHP 5.3.3 (cli) (built: Jun 27 2012 12:25:37) $ mysql --version mysql Ver 14.14 Distrib 5.5.25a, for Linux (i686) using readline 5.1
1.phurl ダウンロード・設置
$ sudo mkdir /var/www/html/phurl $ wget http://phurl.googlecode.com/files/Phurl2.4.2.tar.gz $ sudo tar zxvf Phurl2.4.2.tar.gz -C /var/www/html/phurl $ sudo chmod 777 /var/www/html/phurl $ cd /var/www/html/phurl
2.MySQL の設定
$ mysql -u root mysql> create database phurl DEFAULT CHARACTER SET utf8; mysql> grant all privileges on phurl .* to phurl@localhost identified by "ユーザーのパスフレーズ"; mysql> flush privileges; mysql> exit
3.phurl インストール作業
※http://インストールサーバー/phurl/ のURLにアクセスし、ウィザードに従ってインストールを進めます。
※完了後 phurl配下の「install」ディレクトリは削除します。($ sudo rm -rf install)
4.phurl .htacess 設定
$ pwd /var/www/html/phurl $ sudo vi .htaccess RewriteEngine on RewriteOptions MaxRedirects=1 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^([a-zA-Z0-9_-]+)$ redirect.php?alias=$1 [L]
5. phurl 動作確認
http://www.offline-net.com/phurl/
管理画面:http://www.offline-net.com/phurl/admin/
6.トラブルシューティング、他
1)ウィザードインストール時、以下のエラーとなる。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE = MYISAM’ at line 1
TYPE=MyISAMはMySQLのバージョン4.0.2以前の書き方で、5.5以降は ENGINE=MyISAM と書き換えます。
$ sudo vi /var/www/html/phurl/install/3.php TYPE = MYISAM ↓ ENGINE = MYISAM
2)config.php SITE_URL に設定した「ドメイン」のみ、短縮URLのエントリー許可する。
※初期状態で「サブドメイン」をエントリーした場合…エラーとなる。
Create a short URL
The URL you have entered is not allowed.
$ sudo vi /var/www/html/phurl/index.php
$hostname = get_hostname(); $domain = get_domain(); if (preg_match("/($hostname)/i", $data['host'])) { ↓ if (!preg_match("/($domain)/i", $data['host'])) {
以上