يعاني الكثيرين من مدراء المواقع وخاصة تلك التي تحتوي على لوحات الحوار ويرتادها كم هائل من المشاركين من مشكلات عديدة في المزودات الخاصة بمواقعهم ولكن نتطرق هنا لاهمها وهو ارتفاع الحمل الخاص بالمزود او تعرض قواعد البيانات لضغط متواصل قد يسبب في اسوء الاحيان الى خلل في بعض ملفات قواعد البيانات …
ولهذا نجد ان بعض المواقع العربية الصغيرة … ولا اقصد هنا الوضيعة … يصرح مدرائها عند حدوث اي خلل بسيط في قواعد البيانات - بسبب جهلهم - بالجملة المشهورة :
" نعتذر عن توقف الموقع خلال الفترة السابقة بسبب الضغط
الهائل الذي يسببه الزوار على مزود الموقع "
وذلك رغبة منهم في اعطاء طابع الضخامة لمواقعهم …!!!
خارج نطاق التغطية : قريني دائماً يتدخل في كل ما اكتب لعنه الله من قرين … !!!
لغة الـ PHP لغة انتشرت وفرضت نفسها وبجدارة في عالم لغات برمجة الانترنت وأصبحت … وفي روايه … وامست … المواقع لاتخلو من البرامج المكتوبه بهذه اللغة .
وبسبب الثورة التي حققتها هذه اللغة وانتشاريتها تم اصدار العديد من البرامج المحسنه والمساعدة لهذه اللغة والت تزيد من كفاءتها واطلق على هذه البرامج اسم Accelerator حيث تقوم هذه المسرعات بتحسين اداء البرامج المكتوبة بهذه اللغة ويعمل معظمها على مبدأ التخزين المؤقت للصفحات التي يتم زيارتها لفترة زمنيه معينه مما يوفر الجهد على المزود .
وتم طرح العديد من المسرعات الخاصة بلغة الـ PHP نذكر منها :
Zend Performance Suite
PHP Accelerator
Alternative PHP Cache
AfterBurner Cache
Turck MMCache
والاخير يعد من المسرعات التي لفتت انتباه الجميع في الفترة الاخيرة حتى اصبح هذا المسرع من اساسيات اي مزود خدمة نظراً لسهولة التعامل معه والنتائج المذهله التي حققها ومنها :
خفض حمل المزود بنسبة تترواح من 30 الى 60 % .
زيادة سرعة عرض ملفات الـ php بمقدار يتراوح بين 1 الى 10 اضعاف .
التعامل بكفائه فيما يخص ازالة الملفات التنفيذية المؤقتة المستهلكة .
في تاريخ 04-11-2003 مسيحية طرحت الاصدارة رقم 2.4.6 من هذا المسرع ولكن بعد هذا التاريخ لم تصدر اي اصدارات اخرى وتم ايقاف التطوير لهذا المسرع و لهذا فقد اطلق على هذا التاريخ تاريخ وفاة هذا المسرع الرائع .
في ظل هذه الصدمه ظهر فارس جديد في معركة المسرعات واستطاع ومن أول ظهور له ان يلفت الانظار اليه اطلق عليه اسم eAccelerator ، و أثبت بانه البديل الناجح او كما يسميه البعض البديل الافضل لـ Turck MMCache .
وفي خضم هذه المعارك بين المسرعات كانت شركة vBulletin المنتجة لبرنامج لوحات الحوار الشهير تحاول قدر الامكان ايقاف النزيف الذي يسببه برنامجها لموارد المزود ، فقاموا بإستحداث السلسلة 3.5 vBulletin و التي اعتمدت على تقنية أجاكس Ajax في محاوله منهم لايقاف هذا النزيف .
ولكن ورغم استخدامهم لهذه التقنية الا ان النزيف مازال مستمراً … وتبادر الى أذهان مطوري برنامج منتديات vBulletin استغلال المسرعات المنصبة على مزود الموقع من اجل ايقاف النزيف بشكل تام .
فتم طرح العديد من التعديلات البرمجية و الـ hacks والتي تساعد على استخدام خاصية التخزين المؤقت للصفحات التي قام بزيارتها الزائر ، وظهر ذلك جلياً في سلسلة 3.5 vBulletin حيث قاموا بإعتماد عدة طرق لتخزين الصفحات والبيانات متكررة الطلب ومن هذه الطرق الحفظ في ملف او استخدام مسرع Turck MMCache وغيرها من الاعدادات .
كود PHP:
// *************** datastore caching type **************
// vB_Datastore_Filecache: datastore using FILES (/includes/datastore_cache.php) instead of database for storage
// vB_Datastore_Memcached: fetching and initializing the vBulletin datastore from a Memcache Server
// vB_Datastore_Turck: fetching and initializing the vBulletin datastore from Turck MMCache
// vB_Datastore or not set: old-school datastore from database method
$config['Misc']['datastore'] = 'vB_Datastore_Filecache';
بعد ذلك تم اعتماد eAcclerator في الاصدارة التجربية 3 من سلسلة 3.5 vBulletin ومع صدور الاصدارة التجريبة رقم 4 من نفس السلسلة تم ازالة الدعم الخاص بالمسرع Turck MMCache وذلك بسبب ايقاف تطويره .
واستمر الحال على ذلك الى ان صدرت النسخه المرشحه للاصدار رقم RC2 من سلسلة 3.5 vBulletin والتي تم فيها ايقاف التعامل مع المسرع eAcclerator مؤقتاً لحين حل مشكلة عدم التفريق بين الذاكرة المخصصة للـ cached scripts والذاكرة المشتركة مع امكانية استخدامه لو اردت ذلك عن طريق التعديلات التالية :
كود PHP:
// ****** CACHE OPTIONS *****
// here we can set differnt datastore cache options
// vB_Datastore_Memcached
// vB_Datastore_Filecache
//vB_Datastore_eAccelerator_This_Has_Problems
$config['Datastore']['class'] = 'vB_Datastore_Filecache';
والان يمكنك ان تحلق عالياً بلوحة الحوار الخاصة بموقعك من خلال استخدام احدى الطرق الانفة الذكر او اجراء التعديلات التي تمكنها من التخزين المؤقت للصفحات التي تم زيارتها .
لكن مهلاً … !!!
قبل ان تجري اي تعديل عليك ان تتأكد من خلو المدرج وجاهزيته للاقلاع … حفظ الله الجميع من شرذمة الاقلاع و دار الندوة … وذلك عن طريق التالي :-
1- افتح برنامج الـ Notepad على سبيل المثال .
2- ضع الشفرة المصدرية التالية بداخله :
كود PHP:
<?php
if (function_exists("eaccelerator_get")) {
eaccelerator();
} else {
echo "<html dir=rtl><head><title>eAccelerator</title></head><body><h1 align=\"center\">مسرع eAccelerator غير منصب في مزود موقعك .</h1></body></html>";
}
?>
3- ارفع الملف وضعه في موقعك .
4- قم بتشغيل الملف من خلال متصفحك عن طريق زيارة العنوان التالي : http://www.your_site_URL/test.php
في حال تنصيب المسرع مسبقاً على مزود الموقع الخاص بك فسوف تظهر لك جملة eAccelerator support enabled ، ولاتبتأس اذا لم يتم تنصيبه على مزود موقعك لانه يمكنك وبكل سهوله ويسر تنصيبه اذا كنت تمتلك صلاحية root وذلك عن طريق اتباع الخطوات التالية :
1- قم بالولوج الى مزودك عن طريق SHH .
2- قم بتنفيذ الاسطر التالية :
كود:
cd /
mkdir ea
cd ea
wget http://kent.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.gz
tar xvzf eaccelerator-0.9.3.tar.gz
cd eaccelerator-0.9.3
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
3- الان قم بتفح ملف php.ini وغالباً ماتجده على هذا العنوان /etc/php.ini او /usr/local/lib/php.ini .
4- ابحث عن جملة Windows Extensions في ملف php.ini :
كود:
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
5- من المحتمل ان تجد بعد هذه الجمله بعض المسرعات المنصبه مسبقاً مثل mmcache او PHP Accelerator قم بازالتهم وضع مكانهم التالي :
كود:
extension="/ea/eaccelerator-0.9.3/modules/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ومن ثم قم بحفظ الملف .
6- الان انشئ المجلد الخاص بتخزين الملفات المؤقتة ويكون ذلك بتنفيذ الاوامر التالية :
كود:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
7- اعد تشغيل الابتاشي
كود:
service httpd restart
وتمتع بتحليق سريع مع موقعك .
وصلات مفيدة :
* شركة vbulletin
* EV1Servers لخدمات الاستضافة
* الامن العربي
مصطلحات:
- أجاكس Ajax : اختصار لـ Asynchronous JavaScript And XML وهي تقنية تعتمد على الجافا و الـ XML معاً ، وتساعد هذه التقنية على تصدير واستيراد البيانات في الصفحة دون الحاجة الى اعادة تحميلها مما يوفر الجهد والوقت .
- hacks : تعديلات تضيف مزايا جديدة للبرنامج غير تلك الموصفات القياسية المعتمدة من قبل الشركة المنتجة ، وتم استبدال هذا المسمى في سلسلة 3.5 الى اسم plugin.
__________
للاستفسار فيما يخص المقال اعلاه