آموزش نصب memcached در سرور لینوکس
memcached یک سیستم distributed memory object cache هست که اشیا و query های دیتابیس را در رم سرور ذخیره و کش می کند. در حالت کلی memcache نتیجه درخواست هایی را که مدام به پایگاه داده فرستاده می شوند را به صورت کوتاه مدت در RAM سرور نگه داری می کند و با کاهش مراجعات به سرویس دهنده mysql باعث افزایش چشم گیر سرعت در اجرای درخواست ها و در نتیجه افزایش توان تحمل سرور برای آنلاین های همزمان بیشتر می شود. بهترین کارایی memcached در سرورهای توزیع شده مشاهده می شود، هر چند اگر روی یک سرور به تنهایی اجرا شود هم تاثیر بسزایی در افزایش سرعت خواهد داشت. بسیاری از cms های مشهور از جمله wordpress,joomla,vBulletin قابلیت اتصال به memcached را دارند.
شکل زیر به خوبی نحوه کار memcached را نشان می دهد.
مم کش در حالت سرورهای توزیع شده:
نصب memcached:
RedHat / CentOS
1 | yum install memcached |
Debian / Ubuntu
1 | apt-get install memcached |
بعد از نصب، باید سرویس را اجرا کرده و آن را به صورت startup تنظیم کنید:
1 2 | service memcached start chkconfig memcached on |
نصب memcached به پایان رسیده ولی برای به کارگیری آن در php نیاز به ماژول php memcache هست که نصب و راه اندازی آن را بررسی خواهیم کرد، اما قبل از آن باید پورت ۱۱۱۲۱ که memcached از آن استفاده می کند را باز کرد.
باز کردن پورت در فایروال:
1 2 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT service iptables restart |
برای تغییر کانفیگ memcache از جمله تغییر پورت، تعداد کانکشن، حجم حافظه و … می توانید فایل تنظیمات آن را ویرایش کنید.
1 | nano /etc/sysconfig/memcached |
نصب php memcache extension :
1 2 3 | mkdir ~/memcache wget http://pecl.php.net/get/memcache-3.0.3.tgz tar xvfz memcache-3.0.3.tgz |
تا اینجا این extension را دانلود و استخراج کردیم، حالا باید دستور phpize را اجرا کنیم. دقت کنید که شاید در برخی سرورها با اجرای phpize با command not found مواجه شوید، در این صورت از دستور locate برای پیدا کردن phpize در دایرکتوری محل نصب php استفاده کنید.
1 2 3 4 | locate "phpize" result /usr/local/php56/bin/phpize |
پس از اجرای phpize دستورات نصب را وارد کنید:
1 2 3 | ./configure make make install |
پس از اتمام نصب افزونه، محل نصب آن نمایش داده خواهد شد. با load کردن افزونه از مسیر مورد نظر، memcached قابل استفاده در php خواهد بود. به این منظور فایل php.ini جاری سرور را ویرایش کنید :
1 | nsno /usr/local/php56/lib/php.ini |
و محل نصب + نام ماژول را به صورت زیر در آن وارد کنید:
1 2 | extension_dir =/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ extension=memcache.so |
برای اعمال شدن تغییرات وب سرور را restart کنید:
1 2 | service httpd restart /etc/init.d/apache2 restart # For Debian |
حالا با چک کردن phpinfo باید memcache را در آن مشاهده کنید.
در صورتی که شما هم از کاربران میزبان آنلاین هستید هم اکنون میتوانید از این سیستم روی سایت های خود استفاده کنید 🙂 میزبان آنلاین در سرویس های زیر از سیستم کش memcached استفاده میکند: