06-04-2013
|
|
مدیر کل سایت کوروش نعلینی
|
|
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382
7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
|
|
Memcached چیست ؟ آموزش نصب کش Memcached در لینوکس
Memcached چیست ؟ آموزش نصب کش Memcached در لینوکس
قبل از هر چیز نگاه کنید که چه کسانی دارند از این سیستم استفاده میکنند :
ممكش(Memchache) برنامه اي است كه سمت يك سرور وب نصب و اجرا مي شود.
از اين نظر كه هميشه بايد در حال اجرا باشد مانند MySql است ولي برخلاف MySql كه براي وبسايت ها وسيله حياتي است و امروزه هر هاستي حتي برخي هاست هاي مجاني آن را ارائه مي دهند، ممكش اين طور نيست و تا يك هاست مجازي يا اختصاصي نگيريد و به قسمت SSH يا اجراي Command دسترسي نداشته باشيد خبري هم از ممكش نخواهد بود.
اما چرا ممكش خيلي كم استفاده مي شود و بيشتر وبسايت ها حتي نام ممكش به گوششان نخورده چه برسد به اين كه از آن استفاده كنند!!؟؟
جواب سوال اين است كه ممكش تنها براي وبسايت هايي مفيد است كه هم تعداد درخواست هاي زيادي در واحد زمان و از چندين كاربر آنلاين به سمت سرور ميرود كه اين در وبسايت هايي كه از ايجكس(Ajax) زياد استفاده مي كنند و كاربر زياد دارند مشهود است و هم اينكه در هر درخواستي چندين بار از ديتابيس استفاده مي كنند. پس تا وبسايتي اين دو شرط را نداشته باشد نيازي هم به ممكش ندارد و حتي اگر وبسايتي هم اين دوشرط را داشت بايد ديد كه MySql آن با در دست داشتن منابع مختلف سروري كه در اختيار دارد از جمله سرعت هارد و قدرت cpu آيا كشش جوابگويي به آن همه اجراي كواري را دارد يا اينكه باعث مشغول شدن زياد پردازشگر و معطل كردن درخواست ها مي شود كه در اين حالت نياز به يك برنامه مانند ممكش ديده مي شود كه تنها از منبع حافظه اصلي(Ram) كه سرعت غير قابل مقايسه با حافظه جانبي(Hard) كه MySql براي نگهداري مقدارها بهره ميگيرد دارد استفاده كند و مثلا نتايجي كه از اجراي كواري Select از ديتابيس خارج ميشود را در مدت زمان كوتاهي نگه دارد تا درخواست هاي مشابه با اجراي آن كواري از آن نتيجه گذشته استفاده كنند و نيازي به اجراي دوباره آن نباشد.
توجه: ممكش براي كش كردن دادهها در حالت سرورهاي توزيع شده مناسب است؛ هرچند در يك سرور واحد نيز به كار ميرود؛ اگر سرور توزيع شده نداريد بهتر است از Alternative PHP Cache)APC) استفاده كنيد، چون در اين حالت سرعت بالاتري دارد.
گام هاي زير در سيستم عامل لينوكس نسخه CentOS كاملا تست شده و جواب داده است
- ابتدا وارد SSH سرور مي شويم.
- قبل ار نصب خود ممكش نياز است كه دستورات زير را اجرا كنيم چون ممكش وابسته است به libeventيا
yum install libevent
- براي نصب ممكش از yum استفاده مي كنيم. اما قبل از آن yum را تقويت مي كنيم با اجراي دستورات زير
- حال نوبت به نصب خود ممكش ميرسد با اجراي تك دستور زير
yum install --enablerepo=rpmforge memcached ممكش نصب شد حالا چطور آن را كنترل كنيم:
- تا اينجا ممكش را راه اندازي كرديم ولي هنوز قابل دسترسي از طريق php نيست. براي اينكه بتوانيد در كدهاي php از طريق توابع تعريف شده اي با ممكش كار كنيد لازم است PECL ممكش را نيز به سرورتان اضافه كنيد. پس دستور زير را اجرا كنيد
pecl install memcached يا- توجه: ممكن است دستور pecl تعريف نشده باشد براي همين از قطعه دستور دوم ناچاريد استفاده كنيد
- توجه مهم: ممكن است در اجراي هركدام از دستورات بالا با خطايي شبيه زير مواجه شويد
configure: error: memcache support requires ZLIB. Use --with-zlib-dir= to specify
prefix where ZLIB include and library are located ERROR: `/var/cache/php-pear/memcache-2.2.5/configure
--enable-memcache-session=yes' failed پس بايد قبل از آن zlib-devel را با دستور زير نصب كردyum install zlib-devel
- توجه مهم: ممكن است در اجراي هركدام از دستورات بالا با خطايي شبيه زير مواجه شويد
configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR>
to specify the prefix where libmemcached headers and library are located
ERROR: `/tmp/tmpBwSimh/memcached-1.0.1/configure' failed يا"memcache.lo" is not a valid libtool object براي رفع آن پيشنهاد مي شود اصلا از شيوه زير براي نصب pecl مربوطه استفاده كنيد (منبع)در ادامه با اجراي دستور زير مرحله بعدي نيز تمام مي شودtouch /etc/php.d/memcached.ini
echo 'extension=memcache.so' > /etc/php.d/memcached.ini
- فايلي با نام memcache.ini در پوشه احتمالا /etc/php.d سرور اگر نيست ساخته و آن را باز كنيد و خط زير را
extension=memcache.so اگر نيست وارد آن كنيد و اگر هست مطمئن شويد كه اين خط با علامت ';' شروع نشده باشد وگرنه اين علامت را حذف كنيد- توجه: مي توانستيم به جاي اين فايل از php.ini موجود در پوشه احتمالا /etc/ هم استفاده كنيم.
- در نهايت بايد Apache سرور ريست شود تا ممكش قابل استفاده در كدهاي php شود.
service httpd restart يا/etc/init.d/httpd restart
- حال براي اطمينان از موفقيت نصب ممكش كافي است دستور زير را در php اجرا كنيم
phpinfo(); و بخشي با عنوان Memcache را در خروجي آن مانند شكل زير بيابيم :
حال در كدهاي php مي توانيد از دستورات اضافه شده براي كار با ممكش مانند دستورات زير استفاده كنيد$link=memcache_connect ($mcservername,$mcport);
memcache_set($link, $key, $value,MEMCACHE_COMPRESSED, $expire);
$value = memcache_get($link,$key);
memcache_delete($link,$key);
memcache_close($link);
توضيحات تکميلي :
همانطور كه مي دانيد سشن ها در فايل ذخيره مي شوند يعني باز هم مثل ديتابيس در هارد !!! خوشبختانه ممكش فكر اينجا را هم كرده و اگر ممكش را به درستي نصب كرده باشيد و از سشن هم استفاده مي كنيد مي توانيد با تغيير دادن دو خصوصيت زير كه در فايل php.ini وجود دارد
session.save_handler = files
session.save_path = "/var/lib/php/session"
به مقدار هاي زير
session.save_handler = memcache
session.save_path = "tcp://localhost:11211"
كاري كنيد كه از اين به بعد سشن ها اتوماتيك در Ram خوانده و نوشته شوند كه اين خود بسيار سرعت را بالا خواهد برد.
براي اثر گذاري اين تغيير دوباره مرحله 7 را انجام دهيد
منبع سایت شگردها
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
ویرایش توسط دانه کولانه : 06-04-2013 در ساعت 08:58 PM
|
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید
|
|