نصب XCache در سرور لینوکس
xCache یک سیستم OPCode Cache قدرتمند و سازگار با انواع توزیع های لینوکس اعم از RHEL,Debian,… هست. در این آموزش ابتدا مفهوم OPCode را تعریف خواهیم کرد و سپس به نصب XCache می پردازیم. همانگونه که می دانید PHP یک زبان مفسری است. به این معنی که در هر بار اجرای یک فایل PHP، آن فایل خوانده و سپس Parse می شود. آنگاه نتیجه Parse شده فایل PHP که به آن OPcode گفته می شود، آماده اجرا خواهد بود. این کار در هر بار اجرا اتفاق خواهد افتاد. حال برای جلوگیری از تکرار این مراحل ابزارهایی برای Cache کردن OPcode ایجاد شده اند. یکی از این ابزارها xcache است.
آموزش نصب xcache:
ابتدا آخرین نسخه را از سایت سازنده، دانلود و extract می کنیم.
1 2 3 | wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz tar -xvf xcache-3.2.0.tar.gz cd xcache-3.2.0 |
حال دستور phpize را در دایرکتوری extract شده اجرا کرده و سپس دستورات نصب را وارد می کنیم.
1 2 3 4 5 6 7 | phpize result should be like this Configuring for: PHP Api Version: number Zend Module Api No: number Zend Extension Api No: number |
دستورات نصب:
1 2 3 | ./configure -–enable-xcache make mske install |
پس از اجرای دستور آخر در صورت موفقیت آمیز بودن نصب خروجی مشابه زیر دریافت خواهید کرد که محل نصب xcache را نشان می دهد.
1 | Installing shared extensions: /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ |
با تنظیم xCache در php.ini و restart وب سرور، استفاده از این opcode cache قدرتمند شروع خواهد شد.
در صورتی که محل نصب extension ها قبلا در php تنظیم نشده، باید به شکل زیر تنظیم کنید و سپس xcache را load کنید.
1 2 | extension_dir =/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ extension=xcache.so |
1 2 | service httpd restart /etc/init.d/apache2 restart # For Debian |
xCache را باید متناسب با نیاز خود برای تعداد فایل ها و میزان فضای اختصاص داده شده و … کانفیگ کنید. پارامترهای xCache که می توانید در php.ini تنظیم کنید به صورت زیر هستند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | XCache Administration Settings: xcache.admin.user="mOo" xcache.admin.pass="" xcache.admin.enable_auth="on" xcache.test="Off" xcache.coredump_directory="" xcache.disable_on_crash="off" XCache Cacher Settings: xcache.cacher="On" xcache.stat="On" xcache.shm_scheme="mmap" xcache.readonly_protection=Off xcache.size="50M" xcache.count="1" xcache.slots="8K" xcache.ttl="3600" xcache.gc_interval="300" xcache.var_size="16M" xcache.var_count="2" xcache.var_slots="8K" xcache.var_ttl="3600" xcache.var_maxttl="7200" xcache.var_gc_interval="300" xcache.mmap_path="/dev/zero" xcache.readonly_protection="Off" XCache Optimizer Settings: xcache.optimizer="On" XCache Coverager Settings: xcache.coverager="Off" xcache.coverager_autostart="Off" xcache.coveragedump_directory="/tmp/pcov/" |
نکات مهم:
* xCache با بعضی اسکریپت ها ناسازگاری هایی دارد که با کمی تغییرات در آن میتوان این مشکلات را حل کرد.
* به دلیل ساختاری که در هندلر suphp وجود دارد، عموما OPcode cache ها و از جمله xCache با این هندلر تداخل دارند.