مطمئنم که همه شما با انواع افزونههای کش وردپرس آشنایی دارید و بارها نیز در وبلاگ سون هاست ضمن معرفی این افزونهها در مقالاتی که در خصوص افزایش سرعت وردپرس تهیه کردهایم، از بسیاری از این روشها استفاده میکنید. اما آیا تا بهحال چیزی به نام opcache در وردپرس که برای پیاده سازی کش سایت است به گوشتان خورده؟
تکنولوژیهای مختلفی برای پیاده سازی کش و همچنین افزایش سرعت در سایت وجود دارد که opcache نیز یکی از آنها است. اما در وب فارسی تقریبا اشارهای به استفاده از این ویژگی برای بالا بردن سرعت وردپرس نشده است.
opcache چیست و چه کاربردی دارد؟
برای دانستن اینکه opcache چیست باید ابتدا نگاهی به ساختار وردپرس و زبان برنامه نویسی php داشته باشیم. با توجه به اینکه وردپرس با این زبان برنامهنویسی ساخته شده، کدهای ما در این زبان چه در هسته وردپرس و چه کدهای مربوط به قالب و افزونهها، در زمان اجرای کد لازم است که به bytecode کامپایل شده و در نهایت اسکریپت ما اجرا شود.
مشکلی که در این پروسه وجود دارد این است که در هر بار اجرای این درخواستها برای هر بازدیدکننده، کدهایی که تکراری هستند باید اجرا شوند که همین اجرا و کامپایل شدن خود باعث مصرف بالای منابع هاست میشود و روی سرعت نیز تاثیر میگذارد. حالا به همه اینها شرایطی را اضافه کنید که چندین افزونه در سایت دارید و سایت شما هم فروشگاهی باشد.
از ورژن ۵.۵ زبان PHP ساختار opcache به این زبان افزوده شد که نوعی Bytecode Caching Engine است. حالا کاری که opcache برای وردپرس انجام میدهد این است که به محض کامپایل کردن و اجرای کدها ما، آن را در حافظه موقت RAM یا روی فایل دیسک (هارد سرور یا همان مسیر file manager هاست) ذخیره خواهد کرد که به صورت کش شده هستند.
و درست در این مرحله است که سرعت سایت ما افزایش خواهد یافت. دیگر لزومی ندارد که تکتک درخواستهایی که به دیتابیس اجرا میشود جداگانه بررسی و کامپایل شوند. بلکه بر اساس همان کدهای کامپایل شده که به صورت کش در هاست ذخیره شدهاند، دستورات در هر بخشی اجرا خواهد شد و تعداد درخواستها را تا میزان ۵۰ درصد کاهش خواهد داد.
راهنمای فعال سازی opcache در وردپرس
برای فعال سازی opcache در وردپرس افزونههای مختلفی این امکان را فراهم کردهاند. اما از آنجا که خود این افزونهها نیز بار اضافی برای کامپایل و اجرا هستند، چرا از روش سادهتر استفاده نکنیم؟
قبل از هر چیزی به این نکته دقت کنید که برای استفاده از opcache در وردپرس، ضروری است که هاست شما از آن پشتیبانی کند. تا جایی که اطلاع دارم بسیاری از شرکتهای هاستینگ بر روی هاست اشتراکی دسترسی به آن را غیرفعال کردهاند یا حتی اگر برای فعالسازی هم در دسترس باشد، قابل استفاده نیست. اما میتوانید با خرید هاست وردپرس از سون هاست امکان استفاده از آن را داشته باشید.
برای فعال سازی op کش در وردپرس کافی است ۲ مرحله زیر را طی کنید:

مرحله اول: دانلود فایل php از گیت هاب و آپلود در سایت
ابتدا روی دکمه زیر کلیک کرده و از صفحه گیت هاب پروژه، مشابه تصویر بالا روی دکمه دانلود فایل object-cache.php کلیک کنید.
بعد از دانلود، باید این فایل را در مسیر wp-content آپلود کنید. برای این منظور پس از اینکه وارد هاست سی پنل شدید، مشابه تصویر زیر روی گزینه File Manager کلیک کنید.

سپس مشابه تصویر زیر به مسیری که وردپرس نصب شده مراجعه کرده و وارد پوشه wp-content شوید. در تصویر زیر فرض بر این است که وردپرس روی دامنه اصلی نصب شده و درون سابفولدر یا ساب دامنه نصب نشده است که در این صورت باید فایل در مسیر public_html/wp-content آپلود شود.

برای آپلود نیز کافی است روی گزینه آپلود در همین مسیر کلیک کرده و فایل را به صورت Drag & Drop یا انتخاب دکمه Select که در تب جدید برای آپلود فایل باز میشود انتخاب کنید تا در این مسیر قرار گیرد.
مرحله دوم: فعال سازی opcache در هاست سی پنل
بعد از آپلود فایل مورد نظر، باید دو کار زیر را انجام دهید که اولی فعال کردن تیک گزینه opcache هاست و دومی قرار دادن یک سری کد در فایل php.ini است. لذا برای این منظور وارد صفحه اصلی هاست خود شده و مشابه تصویر زیر روی گزینه Select PHP Version کلیک کنید.

در مرحله بعد در صفحه تغییر نسخه php هاست قبل از هرچیزی به این نکته دقت کنید که برای استفاده از opcache حتما باید از ورژن بالاتر ۵.۵ وردپرس استفاده کنید. حال روی تب Extensions کلیک کرده و از لیست موجود، مشابه تصویر زیر یک بار روی گزینه opcache کلیک کنید تا تیک آن فعال گردد.

با فعال کردن این گزینه پیغام سبز رنگ به شما نمایش داده خواهد شد. حالا باید به صفحه اصلی سی پنل برگردید و مجددا از بخش Software این بار روی گزینه MultiPHP INI Editor کلیک کنید.

در این مرحله وارد صفحهای مشابه تصویر زیر خواهید شد.

- ابتدا روی تب Editor Mode کلیک کنید تا حالت ویرایشگر به شما نمایش داده شود.
- سپس از لیست انتخابی دامنه مورد نظر خود را انتخاب کنید. در صورتی از ساب دامنه استفاده کنید، در این لیست نمایش داده میشود که در این مرحله باید مسیری که میخواهید این تنظیمات برای فایل php.ini اعمال گردد را باید تعیین کنید.
- در مرحله بعد کدهای زیر را به فایل اضافه کنید.
opcache.enable=1
opcache.memory_consumption=4096
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32500
opcache.validate_timestamps=1
opcache.save_comments=1
opcache.revalidate_freq=1000
opcache.fast_shutdown=1
opcache.enable_cli=1
- در پایان روی دکمه Save کلیک کنید.
با انجام این کار امکان استفاده از کش opcache در وردپرس برای شما فراهم خواهد شد و اگر همین حالا سایت خود را در صفحات مختلفی مثل برگه اصلی، نوشتهها، دستهبندی و… باز کنید خواهید دید که افزایش بسیار محسوسی در سرعت سایت خود داشتهاید.
در کنار استفاده از opcache وردپرس پیشنهاد میکنم که به کمک آموزش افزایش سرعت وردپرس با بهینه سازی فایلهای ترجمه سرعت سایت خود را به یک پله بالاتر ارتقا دهید. استفاده از هر دو این روشها را شخصا در سایت های خودم و پروژههایی که دارم استفاده میکنم و تا به حال در هیچکدام از سایتها، از افزونههای کش وردپرس رایج استفاده نکردهام.
نحوه پاک کردن کش opcache در وردپرس
آنطور که در ابتدا گفتم، این روش با کش کردن کدهای کامپایل شده php بر روی دیسک یا حافظه RAM به افزایش سرعت سایت کمک میکند. بنابراین، برای حذف فایلهای کش شده کافی است به یکی از دو روش زیر عمل کنید.
حالت اول: حذف دستی آبجکت کش
برای حذف دستی فایلهای کش، مشابه تصویر زیر بعد از وارد شدن به File Manager هاست، به مسیر public_html/wp-content/cache مراجعه کنید.

همانطور که میبینید، افزونههایی که استفاده میکنید، پست تایپها، دسته و برچسب، دیدگاهها و به طور کلی هر ساختار اضافی که در سایت شما وجود داشته باشد، هر یک از فایلهای مورد نیاز آن در پوشه مربوطه قرار میگیرد.
برای خالی کردن کش کافی است مثل تصویر بالا در این مسیر یک بار روی گزینه Select All کلیک کرده و سپس روی دکمه Delete کلیک کنید. با پاک کردن کلیه پوشهها و فایلهای داخلی آنها از مسیر public_html/wp-content/cache میتوانید کش سایت خود را خالی کنید.
حالت دوم: حذف خودکار آبجکت کش از هاست
در این روش میتوانید از طریق کرون جاب سیپنل فرآیند خالی کردن پوشه کش رو خودکار کنید. برای این منظور ابتدا مانند تصویر زیر از بخش Advanced روی گزینه Cron Jobs کلیک کنید.

در این مرحله وارد صفحهای مشابه تصویر زیر خواهید شد. مشابه با توضیحاتی که در ادامه داده شده است، دستور مربوط به خالی کردن پوشه کش را انجام دهید:

- ابتدا از بخش Common Settings یکی از دورههای خودکار حذف کش را انتخاب کنید. برای مثال در این نمونه من حذف خودکار هفتگی را انتخاب کردهام.
- در بخش Command دستور زیر را وارد کنید:
rm -rf /home/USER_NAME/public_html/wp-content/cache/*
دقت کنید که بهجای USER_NAME در دستور بالا، باید نام کاربری ورود به هاست سی پنل خود را وارد کنید.
- در پایان روی دکمه Add New Cron Job کلیک کنید.
با انجام این کار به صورت هفتگی پوشه کش حذف خواهد شد و در طولانی مدت فضای هاست شما با فایلهای کش شده اشغال نمیگردد.
در پایان هر سوال یا مشکلی در خصوص این آموزش داشتید، میتوانید از بخش دیدگاهها آن را مطرح کنید تا شما را راهنمایی کنم.

آموزش تغییر و اصلاح لینکهای وردپرس بعد از تغییر دامنه
۴ روش ویرایش و تغییر فیلدهای تسویه حساب ووکامرس
کندی پیشخوان وردپرس و ۱۰ راهکار رفع آن