การตั้งค่าประสิทธิภาพสูง HHVM และ Nginx/Apache ด้วย MariaDB บน Debian/Ubuntu
HHVM ย่อมาจาก HipHop Virtual Machine เป็นเครื่องเสมือนแบบโอเพ่นซอร์สที่สร้างขึ้นสำหรับใช้งาน Hack (เป็นภาษาการเขียนโปรแกรมสำหรับ HHVM) และ แอปพลิเคชันที่เขียนด้วย PHP HHVM ใช้เส้นทางการคอมไพล์ในนาทีสุดท้ายเพื่อให้ได้ประสิทธิภาพที่โดดเด่น ในขณะเดียวกันก็รักษาความยืดหยุ่นที่โปรแกรมเมอร์ PHP ชื่นชอบ จนถึงขณะนี้ HHVM ประสบความสำเร็จในการเพิ่มขึ้น 9 เท่าของปริมาณงานคำขอ http และการใช้หน่วยความจำลดลงมากกว่า 5 เท่า (เมื่อทำงานบนหน่วยความจำระบบเหลือน้อย) สำหรับ Facebook เมื่อเปรียบเทียบกับกลไก PHP + APC (แคช PHP ทางเลือก ).
HHVM ยังสามารถใช้ร่วมกับเว็บเซิร์ฟเวอร์ที่ใช้ FastCGI เช่น Nginx หรือ Apache
ในบทช่วยสอนนี้ เราจะดูขั้นตอนในการตั้งค่าเว็บเซิร์ฟเวอร์ Nginx/Apache เซิร์ฟเวอร์ฐานข้อมูล MariaDB และ HHVM . สำหรับการตั้งค่านี้ เราจะใช้ Ubuntu 15.04 (64 บิต) เนื่องจาก HHVM ทำงานบนระบบ 64 บิตเท่านั้น แม้ว่าจะมีการรองรับ Debian และ Linux Mint ก็ตาม
ขั้นตอนที่ 1: การติดตั้ง Nginx และ Apache เว็บเซิร์ฟเวอร์
1. ขั้นแรกให้อัปเกรดระบบเพื่ออัปเดตรายการพื้นที่เก็บข้อมูลด้วยความช่วยเหลือของคำสั่งต่อไปนี้
apt-get update && apt-get upgrade
2. อย่างที่บอกไปแล้วว่า HHVM สามารถใช้กับทั้งเว็บเซิร์ฟเวอร์ Nginx และ Apache ดังนั้นจึงเป็นทางเลือกของคุณที่คุณจะใช้เว็บเซิร์ฟเวอร์ใด แต่ที่นี่เราจะแสดงให้คุณเห็นทั้งการติดตั้งเว็บเซิร์ฟเวอร์และวิธีใช้งานกับ HHVM
การติดตั้ง Nginx
ในขั้นตอนนี้ เราจะติดตั้งเว็บเซิร์ฟเวอร์ Nginx/Apache จากที่เก็บแพ็กเกจโดยใช้คำสั่งต่อไปนี้
apt-get install nginx
การติดตั้งอาปาเช่
apt-get install apache2
ณ จุดนี้ คุณควรจะสามารถนำทางไปยัง URL ต่อไปนี้ได้ และคุณจะเห็นหน้าเริ่มต้นของ Nginx หรือ Apache
http://localhost
OR
http://IP-Address
หน้าเริ่มต้น Nginx
หน้าเริ่มต้นของ Apache
ขั้นตอนที่ 2: ติดตั้งและกำหนดค่า MariaDB
3. ในขั้นตอนนี้ เราจะติดตั้ง MariaDB เนื่องจากให้ประสิทธิภาพที่ดีกว่าเมื่อเปรียบเทียบกับ MySQL
apt-get install mariadb-client mariadb-server
4. หลังจากติดตั้ง MariaDB สำเร็จ คุณสามารถเริ่ม MariaDB และตั้งรหัสผ่านรูทเพื่อรักษาความปลอดภัยฐานข้อมูล:
systemctl start mysql
mysql_secure_installation
ตอบคำถามต่อไปนี้โดยพิมพ์ y
หรือ n
แล้วกด Enter ตรวจสอบให้แน่ใจว่าคุณอ่านคำแนะนำอย่างละเอียดก่อนที่จะตอบคำถาม
Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y
5. หลังจากตั้งค่ารหัสผ่านรูทสำหรับ MariaDB แล้ว คุณสามารถเชื่อมต่อกับพรอมต์ MariaDB ด้วยรหัสผ่านรูทใหม่ได้
mysql -u root -p
ขั้นตอนที่ 3: การติดตั้ง HHVM
6. ในขั้นตอนนี้ เราจะติดตั้งและกำหนดค่า HHVM คุณต้องเพิ่มพื้นที่เก็บข้อมูล HHVM ลงในไฟล์ sources.list
ของคุณ จากนั้นคุณจะต้องอัปเดตรายการพื้นที่เก็บข้อมูลของคุณโดยใช้ชุดคำสั่งต่อไปนี้
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get update
ข้อสำคัญ: อย่าลืมแทนที่ DISTRIBUTION_VERSION ด้วยเวอร์ชันการเผยแพร่ Ubuntu ของคุณ (เช่น ชัดเจน แม่นยำ หรือเชื่อถือได้ .) และบน Debian ให้แทนที่ด้วย jessie หรือ wheezy คำแนะนำในการติดตั้ง Linux Mint จะเหมือนกัน แต่ petra เป็นเพียงรุ่นเดียวที่รองรับในปัจจุบัน
หลังจากเพิ่มที่เก็บ HHVM แล้ว คุณสามารถติดตั้งได้อย่างง่ายดายดังที่แสดง
apt-get install -y hhvm
การติดตั้ง HHVM จะเริ่มทำงานทันที แต่ไม่ได้กำหนดค่าให้เริ่มอัตโนมัติเมื่อบูตระบบครั้งถัดไป หากต้องการตั้งค่าการเริ่มอัตโนมัติในการบู๊ตครั้งถัดไปให้ใช้คำสั่งต่อไปนี้
update-rc.d hhvm defaults
ขั้นตอนที่ 4: การกำหนดค่า Nginx/Apache เพื่อพูดคุยกับ HHVM
7. ตอนนี้ nginx/apache และ HHVM ได้รับการติดตั้งและทำงานแยกกัน ดังนั้น เราจำเป็นต้องกำหนดค่าเว็บเซิร์ฟเวอร์ทั้งสองให้สื่อสารกัน ส่วนสำคัญคือเราต้องบอก nginx/apache ให้ส่งต่อไฟล์ PHP ทั้งหมดไปยัง HHVM เพื่อดำเนินการ
หากคุณใช้ Nginx ให้ทำตามคำแนะนำนี้ตามที่อธิบายไว้..
ตามค่าเริ่มต้น การกำหนดค่า nginx จะอยู่ภายใต้ /etc/nginx/sites-available/default และการกำหนดค่าเหล่านี้จะค้นหาไฟล์ที่จะดำเนินการใน /usr/share/nginx/html แต่ไม่รู้ว่าจะทำยังไงกับ PHP
หากต้องการให้ Nginx พูดคุยกับ HHVM เราจำเป็นต้องเรียกใช้สคริปต์รวมต่อไปนี้ที่จะกำหนดค่า nginx อย่างถูกต้องโดยวาง hhvm.conf ที่จุดเริ่มต้นของการกำหนดค่า nginx ตามที่กล่าวไว้ข้างต้น
สคริปต์นี้ทำให้ nginx พูดคุยกับไฟล์ใดๆ ที่ลงท้ายด้วย .hh หรือ .php และส่งไปยัง HHVM ผ่านทาง fastcgi
/usr/share/hhvm/install_fastcgi.sh
ข้อสำคัญ: หากคุณใช้ Apache ก็ไม่จำเป็นต้องกำหนดค่าใดๆ ในตอนนี้
8. ถัดไป คุณต้องใช้ /usr/bin/hhvm เพื่อจัดเตรียม /usr/bin/php (php) โดยการรันคำสั่งนี้ ด้านล่าง.
/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
หลังจากทำตามขั้นตอนข้างต้นทั้งหมดแล้ว คุณสามารถเริ่ม HHVM และทดสอบได้เลย
systemctl start hhvm
ขั้นตอนที่ 5: ทดสอบ HHVM ด้วย Nginx/Apache
9. เพื่อตรวจสอบว่า hhvm ใช้งานได้ คุณต้องสร้างไฟล์ hello.php ใต้ไดเร็กทอรีรากของเอกสาร nginx/apache
nano /usr/share/nginx/html/hello.php [For Nginx]
OR
nano /var/www/html/hello.php [For Nginx and Apache]
เพิ่มตัวอย่างต่อไปนี้ลงในไฟล์นี้
<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
phpinfo();
}
else {
echo 'HHVM is not working';
}
?>
จากนั้นไปที่ URL ต่อไปนี้และยืนยันเพื่อดู “สวัสดีชาวโลก“
http://localhost/info.php
OR
http://IP-Address/info.php
หากหน้า “HHVM” ปรากฏขึ้น หมายความว่าคุณพร้อมแล้ว!
บทสรุป
ขั้นตอนเหล่านี้ง่ายต่อการปฏิบัติตามและหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์ และหากคุณได้รับข้อผิดพลาดระหว่างการติดตั้งแพ็คเกจใดๆ โปรดแสดงความคิดเห็น แล้วเราจะค้นหาวิธีแก้ปัญหาร่วมกัน และยินดีรับแนวคิดเพิ่มเติม