تثبيت HHVM وضبطه للعمل مع خادم Nginx على نظام أوبنتو 14.04
في عالم تطوير الويب، يُعد الأداء والسرعة من العوامل الحاسمة التي تحدد جودة الخدمة وتجربة المستخدم. من التقنيات التي حققت تطورًا ملحوظًا في هذا المجال هو محرك HHVM (HipHop Virtual Machine) الذي طورته شركة فيسبوك لتحسين أداء تطبيقات PHP من خلال تحويل الشيفرة إلى شفرة آلة تعمل بسرعة أعلى. يُعتبر HHVM بديلاً متقدمًا لمحرك PHP التقليدي، حيث يحقق تسريعًا كبيرًا في تنفيذ صفحات الويب وتطبيقات الخوادم.
تتناول هذه المقالة بشكل مفصل كيفية تثبيت HHVM وضبطه للعمل جنبًا إلى جنب مع خادم Nginx على نظام أوبنتو 14.04، مع التركيز على الخطوات الدقيقة، الإعدادات المناسبة، وتحسين الأداء.
مقدمة عن HHVM
HHVM هو محرك تنفيذ للغة PHP يعتمد على تقنية Just-In-Time (JIT) compilation، أي الترجمة الفورية لشيفرة PHP إلى شفرة آلة أثناء التشغيل، مما يسمح بتحسين كبير في سرعة المعالجة وتقليل زمن استجابة الخادم. تم تصميمه لتشغيل تطبيقات PHP بكفاءة عالية، مع دعم ممتاز للغة Hack التي قدمتها فيسبوك لتطوير تطبيقات أكثر أمانًا وأداءً.
متطلبات النظام الأساسية
قبل البدء في عملية التثبيت، يجب التأكد من أن نظام أوبنتو 14.04 محدث ويحتوي على الحزم الأساسية اللازمة لتشغيل HHVM وNginx:
-
نظام تشغيل أوبنتو 14.04 (Ubuntu Trusty Tahr)
-
صلاحيات المستخدم الجذر (root) أو القدرة على استخدام sudo
-
خادم Nginx مثبت ومهيأ مسبقًا
-
وجود PHP مثبت (اختياري إذا كنت ترغب في التبديل بين PHP التقليدي وHHVM)
-
اتصال إنترنت لتحميل الحزم والمستودعات
تحديث النظام وتجهيز البيئة
من الضروري تحديث النظام والحزم لضمان الاستقرار أثناء التثبيت:
bashsudo apt-get update sudo apt-get upgrade -y
تأكد من تثبيت الأدوات الأساسية لبناء البرمجيات:
bashsudo apt-get install software-properties-common -y sudo apt-get install curl git -y
إضافة مستودع HHVM الرسمي
نظرًا لأن نظام أوبنتو 14.04 قديم نسبيًا، فإن حزم HHVM ليست متاحة بشكل مباشر في مستودعات النظام الافتراضية. لذلك، يتم إضافة المستودع الرسمي الخاص بـ HHVM لتثبيت الإصدار المناسب.
أولًا، إضافة مفتاح المستودع:
bashwget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
ثانيًا، إضافة مستودع HHVM:
bashsudo add-apt-repository 'deb http://dl.hhvm.com/ubuntu trusty main'
sudo apt-get update
تثبيت HHVM
بعد تحديث قائمة الحزم مع المستودع الجديد، يمكن تثبيت HHVM عبر الأمر:
bashsudo apt-get install hhvm -y
يتضمن هذا التثبيت كافة الأدوات اللازمة لتشغيل HHVM كخادم تنفيذي، بالإضافة إلى ملفات التهيئة.
ضبط HHVM للعمل كخدمة
لتشغيل HHVM كخدمة على النظام يمكن استخدام الأمر:
bashsudo /usr/share/hhvm/install_fastcgi.sh
هذا السكربت يقوم بضبط HHVM ليعمل في وضع FastCGI، وهي الطريقة التي تتيح لخادم Nginx التواصل مع HHVM بشكل فعال عبر بروتوكول FastCGI.
يمكن التأكد من أن الخدمة تعمل عبر:
bashsudo service hhvm start sudo service hhvm status
في حال رغبت بإيقاف الخدمة:
bashsudo service hhvm stop
ضبط Nginx للعمل مع HHVM
لجعل Nginx يوجه طلبات PHP إلى HHVM، يجب تعديل ملف إعدادات الخادم الخاص بـ Nginx. عادةً ما يكون ملف إعدادات الموقع الافتراضي موجودًا في:
bash/etc/nginx/sites-available/default
أو يمكن إنشاء ملف إعداد جديد حسب الحاجة.
إعداد كتلة الخادم (server block)
يجب تعديل إعدادات Nginx لتوجيه الطلبات التي تنتهي بامتداد .php إلى HHVM عبر FastCGI. المثال التالي يوضح كيفية إعداد ذلك:
nginxserver {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_keep_conn on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
في هذا الإعداد، يتم توجيه طلبات ملفات PHP إلى منفذ 9000 على localhost، حيث يعمل HHVM في وضع FastCGI.
إعادة تشغيل Nginx لتطبيق الإعدادات
بعد تعديل ملف إعدادات Nginx يجب إعادة تشغيل الخادم ليأخذ التغييرات بعين الاعتبار:
bashsudo service nginx restart
التحقق من عمل HHVM مع Nginx
للتأكد من أن HHVM يعمل بشكل صحيح مع Nginx، يمكن إنشاء ملف PHP بسيط داخل مجلد الموقع الجذر /var/www/html:
php
phpinfo();
?>
حفظ الملف باسم info.php ثم الوصول إليه عبر المتصفح باستخدام:
arduinohttp://your_domain_or_ip/info.php
يجب أن تظهر صفحة تحتوي على معلومات PHP التي يشغلها HHVM، ويمكن ملاحظة في رأس الصفحة أو في الجزء الخاص بالمحرك أنه HHVM وليس PHP التقليدي.
تحسين أداء HHVM وNginx
لتعزيز الأداء وضمان استقرار النظام، هناك عدة خطوات وإعدادات يمكن اتباعها:
1. ضبط إعدادات HHVM
ملف التهيئة الرئيسي لـ HHVM يوجد عادة في:
bash/etc/hhvm/server.ini
أو
bash/etc/hhvm/php.ini
يمكن ضبط بعض الخيارات المهمة مثل:
-
hhvm.server.thread_countلتحديد عدد خيوط المعالجة (Threads) بحسب عدد أنوية المعالج. -
hhvm.repo.central.pathلتحديد موقع قاعدة بيانات الكود المترجم. -
إعدادات الذاكرة المؤقتة (Cache) لضمان استجابة أفضل.
2. ضبط إعدادات Nginx
-
تفعيل التخزين المؤقت للملفات الثابتة.
-
ضبط عدد الاتصالات المتزامنة وقيم timeout.
-
استخدام gzip لضغط البيانات المرسلة لتقليل حجم النقل.
ملخص إعدادات الجدول المقارنة بين PHP التقليدي و HHVM
| الميزة | PHP التقليدي | HHVM |
|---|---|---|
| سرعة التنفيذ | جيدة | عالية جدًا بفضل تقنية JIT |
| استهلاك الذاكرة | متوسط | أقل نسبيًا مع أداء أفضل |
| دعم الإضافات | متوفر على نطاق واسع | محدود بعض الشيء |
| التوافق مع PHP | كامل | عالي لكن بعض الإصدارات القديمة قد تحتوي على اختلافات |
| دعم لغات أخرى | لا | يدعم Hack (لغة مشتقة من PHP) |
| الاستخدام مع Nginx | عبر FastCGI | عبر FastCGI |
مشاكل شائعة وحلولها أثناء التثبيت
-
عدم استجابة HHVM على المنفذ 9000: التأكد من تشغيل الخدمة عبر
service hhvm status، والتأكد من عدم حظر المنفذ من جدار الحماية. -
ظهور صفحة PHP التقليدية بدل HHVM: التأكد من أن إعدادات Nginx توجه فعليًا طلبات PHP إلى HHVM عبر المنفذ الصحيح.
-
أخطاء في ملفات التهيئة: مراجعة ملفات
/etc/hhvm/server.iniو/etc/nginx/sites-available/defaultللتأكد من خلوها من الأخطاء النحوية. -
عدم توافق بعض الإضافات مع HHVM: مراجعة الوثائق الرسمية لـ HHVM لمعرفة دعم الإضافات والتحديثات.
تحديث HHVM
بما أن أوبنتو 14.04 قديم، فمن الأفضل مراقبة تحديثات HHVM عبر المستودع الرسمي. يمكن تحديث الحزمة بواسطة:
bashsudo apt-get update sudo apt-get upgrade hhvm
خاتمة
يُعد تثبيت HHVM وضبطه للعمل مع Nginx على نظام أوبنتو 14.04 خطوة فعالة لتحقيق أداء عالي لتطبيقات PHP، خاصة تلك التي تعتمد على الأعباء الثقيلة أو تتطلب استجابة سريعة. باتباع الخطوات الدقيقة الموضحة، مع الانتباه إلى ضبط الإعدادات والتحديثات، يمكن الحصول على بيئة استضافة قوية وموثوقة تدعم تطبيقات الويب الحديثة بكفاءة عالية.
المراجع
-
المستودع الرسمي لـ HHVM: https://hhvm.com
-
وثائق Nginx الرسمية: https://nginx.org/en/docs/

