ใช้ HHVM ของ Facebook มาสร้างบล็อก WordPress

Facebook เป็นเว็บที่บางส่วนเขียนด้วยภาษา PHP ซึ่งเป็นภาษาสคริปที่การทำงานไม่ได้เร็วเหมือนภาษาโปรแกรมที่สามารถแปลหรือคอมไพล์เป็นภาษาเครื่องที่ใช้งานกับ CPU ของคอมพิวเตอร์ได้เลยตรงๆ เช่นภาษา C++ แล้ว Facebook มีการเรียกใช้งานอย่างหนัก จึงต้องหาทางทำให้การใช้งานรวดเร็วขึ้น ทาง Facebook ก็เลยสร้างโปรแกรม Hip Hop เพื่อแปลงภาษา PHP ให้เป็นภาษา C++ แล้วนำไปคอมไพล์ ผู้ใช้จะได้ใช้งานได้เร็วๆ แล้ว Facebook ก็พัฒนา Hip Hop มาเรื่อยๆ จนกลายเป็น HHVM ซึ่งไม่ได้คอมไพล์แต่เป็นทั้ง web server และเป็น virtual machine สำหรับทำงานกับ PHP ที่แปลเป็นภาษาเครื่องของ virtual machine ดังกล่าวนั้นแล้ว

ทดลองกันหน่อย โดยใช้ CentOS 6.4 และ login เป็น root ครับ ติดตั้ง repo EPEL ก่อน จะได้มีทางเลือกในการติดตั้งโปรแกรมเยอะๆ หน่อย แล้วตามด้วยการติดตั้ง wget เพื่อใช้ดาวน์โหลดไฟล์ และ MySQL เพื่อใช้เป็นฐานข้อมูล ซึ่งการทดลองนี้จะลองกับ WordPress ครับ ที่กล่าวมานั้นทำด้วยด้วยคำสั่ง

yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
yum install wget mysql-server

จากติดตั้ง repo ของผู้ใจดี ที่ให้เราดาวน์โหลด HHVM ของ CentOS ไปใช้ได้เลยโดยไม่ต้องคอมไพล์เอง ตามด้วยการติดตั้ง HHVM จาก repo ทั้งหมดที่กล่าวมาก็ใช้คำสั่ง

cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install hiphop-php

ขอให้แน่ใจว่าเข้าถึงเว็บ http://www.hop5.in ได้ด้วยนะครับ อาจแก้ /etc/hosts ถ้าจำเป็น หรือเพิ่ม -4 ในคำสั่ง wget

จากนั้นก็สร้าง directory และ /etc/hhvm.hdf ที่จะเป็น config สำหรับการใช้งานนี้ และ download สคริปบล็อก WordPress มาใช้งาน

wget http://pastebin.com/raw.php?i=Awyx3RYT -4 -O /etc/hhvm.hdf
mkdir -p /var/log/hhvm
mkdir -p /var/www
cd /var/www
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz

จะได้ไฟล์ /etc/hhvm.hdf ที่ผมเตรียมมาให้นะครับ แต่ขอแก้ในไฟล์จาก /var/www/ ไปเป็น /var/www/wordpress/ ด้วยครับเพราะแตก gzip ของ WordPress ไว้ที่นั้น

ถ้ามีปัญหาว่ายังไม่เปิด port 80 สำหรับ web server ก็ให้ไปแก้ไฟล์ /etc/sysconfig/iptables แล้วเพิ่มบรรทัด

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

แล้วสั่ง

/etc/init.d/iptables restart

อีกครั้ง

อาจจะทดลองเบื้องต้นว่าใช้ HHVM ได้ไหม ด้วยคำสั่งต่อไปนี้

hhvm --config /etc/hhvm.hdf --mode daemon

แต่เพื่อเพิ่มความสะดวก ในการสั่ง stop หรืิอ start HHVM ให้ได้ง่ายๆ เร็ว เพียงแค่สั่ง service hhvm start มีคนทำสคริปมาให้แล้วครับ

mkdir -p /var/run/hhvm/
wget https://raw.github.com/makewhatis/rpm-hiphop-php/master/hhvm.sysconfig -O /etc/sysconfig/hhvm
cd /etc/rc.d/init.d
wget https://raw.github.com/makewhatis/rpm-hiphop-php/master/hhvm.init -O hhvm
chmod 755 hhvm

ตอนนี้ควรจะมีไฟล์ /etc/sysconfig/hhvm แล้วครับ ให้แก้ข้อความในไฟล์นั้นจาก /etc/hhvm/hhvm.hdf ไปเป็น /etc/hhvm.hdf เพราะเราวางคนละที่กันกับเจ้าของสคริป
และไฟล์ /etc/rc.d/init.d/hhvm ให้แก้ข้อความในไฟล์นั้นจาก HHVM=/usr/sbin/hhvm ไปเป็น HHVM=/usr/bin/hhvm

อ้างอิง
https://github.com/facebook/hiphop-php/wiki/HHVM-Pre-built-packages-for-Centos-6.4
http://www.hhvm.com/blog/113/getting-wordpress-running-on-hhvm
https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
https://www.facebook.com/note.php?note_id=10150415177928920

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s