ค้นหาเว็บไซต์

การตั้งค่าประสิทธิภาพสูง 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” ปรากฏขึ้น หมายความว่าคุณพร้อมแล้ว!

บทสรุป

ขั้นตอนเหล่านี้ง่ายต่อการปฏิบัติตามและหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์ และหากคุณได้รับข้อผิดพลาดระหว่างการติดตั้งแพ็คเกจใดๆ โปรดแสดงความคิดเห็น แล้วเราจะค้นหาวิธีแก้ปัญหาร่วมกัน และยินดีรับแนวคิดเพิ่มเติม