yourls ย่อ url ให้สั้น ด้วยตัวคุณเอง

หากคุณเคยใช้ TinyURL ที่ย่อ url ยาวๆ ให้สั้นลง แล้วอยากทำใช้เองบ้าง บทความนี้จะแนะนำวิธีติดตั้งง่ายๆ ด้วย yourls

YOURLS หรือ Your Own URL Shortener เป็นโปรแกรมพัฒนาด้วย PHP โดยใช้ฐานข้อมูล MySQL ในการเก็บข้อมูลการเชื่อมโยง (map) ระหว่าง url แบบสั้นๆ กับ url ที่ดั้งเดิม แล้วยังเก็บข้อมูลการเรียกใช้ url แบบย่อ สามารถนำไปทำเป็นสถิติ แสดงผลเป็นกราฟได้ด้วย

ในที่นี้จะทดลองติดตั้งบน CentOS 6 โดยใช้ yum install

หมายเหตุ

  • yourls อยู่ใน EPEL ดูวิธีการติดตั้งได้ที่ yum แพ็คเกจบน CentOS 6 ได้มากขึ้นด้วย EPEL
  • สำหรับลีนุกซ์ตระกูลอื่น สามารถดาวน์โหลดไฟล์ zip ตัวโปรแกรมจากเว็บไซต์ yourls.org แล้วนำมาแตกไฟล์ติดตั้งเองได้ วิธีการคอนฟิกเหมือนกัน

ใช้คำสั่ง yum install ติดตั้ง yourls

[root@cent6 ~]# yum install yourls

สร้างฐานข้อมูล yourls

สร้างฐานข้อมูลและ GRANT สิทธิ์ สำหรับใช้ใน yourls

mysql> CREATE DATABASE yourls;
mysql> GRANT ALL ON yourls.* TO 'yourls'@'localhost' IDENTIFIED BY 'password';

ในที่นี้สร้างฐานข้อมูลชื่อ yourls แล้วสร้าง user ชื่อ yourls ให้สามารถใช้ได้จาก localhost เท่านั้น แล้วต้องระบุรหัสผ่าน password

แนะนำให้เปลี่ยน password เป็นรหัสผ่านที่ยากแก่การเดา

 

แก้ไขคอนฟิกไฟล์ yourls

ไฟล์คอนฟิกหลักของ yourls จะอยู่ที่ /etc/yourls/config.php

แก้ไขไฟล์คอนฟิก MySQL settings ให้ตรงกับฐานข้อมูล ชื่อ user, password ที่สร้างไว้ด้านบน

[root@cent6 ~]# vi /etc/yourls/config.php

...
/*
 ** MySQL settings - You can get this info from your web host
 */
/** MySQL database username */
define( 'YOURLS_DB_USER', 'yourls' );
/** MySQL database password */
define( 'YOURLS_DB_PASS', 'password' );
/** The name of the database for YOURLS */
define( 'YOURLS_DB_NAME', 'yourls' );
/** MySQL hostname */
define( 'YOURLS_DB_HOST', 'localhost' );
/** MySQL tables prefix */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
/*
 ** Site options
 */
/** YOURLS installation URL -- all lowercase and with no trailing slash.
 ** If you define it to "http://site.com", don't use "http://www.site.com" in your browser (and vice-versa) */
define( 'YOURLS_SITE', 'http://192.168.5.6/yourls' );
...
/** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookie **/
define( 'YOURLS_COOKIEKEY', 'adfspoufaqpfG(B3Y%xDGKnx' );
/** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as salted hashes.
 ** Read http://yourls.org/userpassword for more information */
$yourls_user_passwords = array(
    'admin' => 'password',
    );

 

คำอธิบายในส่วนคอนฟิกของการเรียกใช้จากเว็บไซต์ Site options

  • YOURLS_SITE   ดีฟอลต์จากการติดตั้งด้วย yum การเรียกใช้โปรแกรมผ่านเว็บ ต้องระบุ yourls หลัง hostname หรือ IP Address ของเว็บเซิร์ฟเวอร์

ตัวอย่างคอนฟิกการเรียกใช้เว็บของ yourls

[root@cent6 ~]# cat /etc/httpd/conf.d/yourls.conf
Alias /yourls /usr/share/yourls

<Directory /usr/share/yourls>
  AllowOverride All
</Directory>

เช่นถ้า IP ของเว็บเซิร์ฟเวอร์ คือ 192.168.5.6 ค่าคอนฟิก YOURLS_SITE ก็คือ http://192.168.5.6/yourls

  • YOURLS_COOKIEKEY   ให้ใส่ตัวหนังสือตัวเลขอะไรก็ได้ เพื่อใช้เข้ารหัส cookie
  • $yourls_user_passwords   ระบุชื่อ username, password ของ admin ในการเข้าไปแก้ไขข้อมูล yourls ผ่านหน้าเว็บ

 

เนื่องจากการติดตั้ง yourls จาก yum มีการเพิ่มคอนฟิกของ Apache ต้องมีการรีสตาร์ตเซอร์วิส httpd

[root@cent6 ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

ติดตั้งผ่านหน้าเว็บ admin

เปิดเบราเซอร์ชี้ไปที่ http://192.168.5.6/yourls/admin/install.php

01-admin-install

คลิ้กปุ่ม [Install YOURS] หน้าเว็บจะทำการสร้างตาราง (table) ในฐานข้อมูลที่กำหนดไว้

02-tables-created

 

ตัวอย่างผลลัพธ์ของการสร้าง จะมี 3 ตาราง ถูกสร้างขึ้น

Table ‘yourls_url’ created.
Table ‘yourls_options’ created.
Table ‘yourls_log’ created.
YOURLS tables successfully created.

ลองใช้คำสั่ง mysql  ดูเพื่อดูตารางที่ถูกสร้างขึ้น

mysql> CONNECT yourls

mysql> SHOW TABLES;
+------------------+
| Tables_in_yourls |
+------------------+
| yourls_log       |
| yourls_options   |
| yourls_url       |
+------------------+
3 rows in set (0.00 sec)

แต่มีการแสดงข้อผิดพลาดจากการติดตั้งคือ ไม่สามารถสร้างไฟล์ .htaccess ในไดเร็คทอรี root ของ yourls ได้

    Could not write file .htaccess in YOURLS root directory. You will have to do it manually. See how.

ต้องสร้างไฟล์ .htaccess ขึ้นมาเองด้วย root ในไดเร็คทอรีที่ติดตั้ง yourls สำหรับการติดตั้งด้วย yum บน CentOS จะอยู่ใน /usr/share/yourls/

[root@cent6 ~]# cd /usr/share/yourls/

ตัวอย่างการสร้างไฟล์ .htaccess ในกรณีที่มีชื่อ url ต่อท้ายชื่อ hostname หรือ IP Address (http://192.168.5.6/yourls/)

[root@cent6 yourls]# vi .htaccess
# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /yourls/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /yourls/yourls-loader.php [L]
</IfModule>
# END YOURLS

หลังสร้างไฟล์ .htaccess เสร็จ คลิ้กที่ลิ้งค์ >> YOURLS Administration Page

จะขึ้นหน้า log in ในใส่ Username, Password ให้ใส่ username, password ที่ระบุไว้ในตัวแปร $yourls_user_passwords ในไฟล์ /etc/yourls/config.php

03-login

หากล็อกอินสำเร็จจะเข้าสู่หน้า admin ของ yourls

04-admin

 

ถึงตอนนี้คุณก็มีเว็บที่สามารถใช้ย่อ url ได้แล้ว

ดีฟอลต์จากการติดตั้ง จะมีชื่อ url แบบสั้น มาให้ 3 ชื่อ ตัวอย่างเช่น ถ้าเรียกด้วยชื่อย่อ (Short URL) http://192.168.5.6/yourls/ozhblog จะถูก yourls แปลงไปเป็นชื่อเว็บ (Original URL) http://planetozh.com/blog/

หากต้องการเพิ่มข้อมูลชื่อเว็บไซต์ที่ต้องการย่อ ให้ใส่ชื่อเว็บไซต์เต็มๆ ในช่องหลังคำว่า Enter the URL:  แล้วกดปุ่ม [Shorten The URL] เพื่อให้โปรแกรมสร้างชื่อแบบสั้นขึ้นมาเองโดยอัตโนมัติ หรือถ้าต้องการระบุชื่อสั้นเอง ก็ให้กรอกชื่อสั้นลงไปหลังคำว่า Custom short URL:

05-fb

ตอนนี้ถ้าเราเรียกเว็บ http://192.168.5.6/yourls/fb จะถูกแปลงไปเป็น http://www.facebook.com โดยอัตโนมัติ

ลองเลื่อนเมาส์ไปตรงคอลัมน์ Action ในแถวของข้อมูล URL จะมีไอคอนแสดงขึ้นมา คลิ้กที่รูปกราฟ จะสามารถดูสถิติการเรียกใช้ชื่อย่อของ Short URL นั้นๆ ได้

06-stats

ตัวอย่างกราฟสถิติการเรียกใช้ชื่อย่อ http://192.168.5.6/yourls/fb

07-graph

ถ้าไม่ต้องการระบุ /yourls/ ก็อาจคอนฟิก VirtualHost หรือแก้ไขคอนฟิก DocumentRoot ของ Apache ให้ชี้ไปที่ไดเร็คทอรี root ที่ติดตั้ง yourls  แล้วก็แก้ไขไฟล์ .htaccess โดยเปลี่ยนจาก /yourls/ เหลือแค่ /

ลองนำไปใช้กันดูครับ

ข้อมูลอ้างอิง

 

 

Leave a Reply

Your email address will not be published.