
متاسفانه این بار اولی نیست که شاهد قطع گسترده زیرساخت اینترنت در ایران هستیم. اولین بار این تجربه شوم را در آبان ۹۸ تجربه کردیم که قریب به ۲۰ روز به صورت کامل ارتباط اینترنت با دنیای خارج از مرزهای میهنمان ایران، قطع شد.
اختلال، محدودیت یا فیلترینگ؛ نامش را هر چه که بگذاریم، چیزی نیست جز دامنگیر شدن سایه شومی بر بستر تجارت الکترونیک ایران که منجر به کاهش کیفیت زندگی چه برای مردمان سرزمینمان و چه برای کسبوکارها شده است. بسیاری از کسبوکارهای خرد که در شبکههای اجتماعی فعالیت میکردند و نانآورد خانواده بودند، حال فروش آنها بهصورت کلی متوقف شده است.
اما از آنجایی که ما مردم به امید زنده هستیم و بر خلاف تصور سایر افراد در جامعه بینالمللی، همیشه سعیمان این بوده که با شرایط جدید خود را وفق دهیم. لذا این شد که عموم کسانی که در شبکههای اجتماعی فعالیت فروشگاهی داشتند، با کورسویی از امید تازه، بار و بندیل خود را برداشته و شروع به راهاندازی سایت نمودند تا فروش خود را بر روی بستری که در دسترس است، ادامه دهند.
اما با اینحال باز هم اختلالاتی را باید تجربه کنند. این قطعی اینترنت ایران که در شرایط فعلی از اواخر شهریور آغاز شده و اکنون که درست در نیمه آبان ماه هستیم ادامه دارد، اولین نیست؛ اما عزیزان طوری این قطعی گسترده را بیش از ۴۰ روز بهدلایل سیاسی و امنیتی ادامه دادهاند، که گویی در حال زدن آخرین ضربه هستند!
رفع مشکل کندی پیشخوان وردپرس در زمان اختلالات اینترنتی
بسیاری از کسبوکارها از وردپرس برای راهاندازی سایت خود استفاده کردهاند. همین حالا که در حال تهیه این محتوای آموزشی هستم، چند ساعتی نیست که زمزمههایی از اختلال گسترده کلودفلر نیز بهگوش میرسد. شخصا امیدوارم که این یکی نیز اختلال باشد، چرا که اگر موضوع فیلترینگ باشد و سرورهای یکی از بزرگترین شبکه توزیع محتوا در دامان فیلترینگ افتاده باشد، دیگر باید فاتحه اینترنت را در ایران بخوانیم.
بهمنظور جلوگیری از چنین مشکلاتی، در حال حاضر تنها چاره استفاده از هاست با لوکیشن ایران است تا سایت شما برای کاربران درون ایران تقریبا بدون مشکل در دسترس باشد. اما از سوی دیگر، شاهد اختلالاتی در پیشخوان وردپرس که مربوط به مدیریت سایت است خواهید بود که دلیل آن به عدم برقراری ارتباط سایت شما با سرورهای خارجی برمیگردد.
بیایید با یک مثال بهتر موضوع را بررسی کنیم. برای مثال همه ما از افزونههایی نظیر یوست سئو یا رنک مث استفاده میکنیم. تفاوتی هم ندارد که نسخه رایگان باشد یا از نسخه پولی استفاده کنید.
این افزونهها با توجه به برخی امکانات که دارند، لازم است ارتباطی بین سایت شما و سرور آنها برقرار شده و ابزارهایی که برای تحلیل کلمات کلیدی ارائه میکنند را ارائه دهند. حال در شرایطی که ارتباط اینترنت بینالملل در برخی دیتاسنترها فراهم نیست یا با اختلال روبهرو است، این ارتباط انجام نگرفته و سایت شما در بخش مدیریت مدام در حال انتظار برای پاسخ گرفتن از سمت سرورهای خارج است.
به همین دلیل تبهایی که باز میکنید، در حال لودینگ طولانی مدت هستند تا شاید در لحظاتی بالاخره موفق به ایجاد ارتباط شوند. اما عموما با کندی و اختلال مواجه هستیم که خود این مسئله ما را در مدیریت نوشتهها، محصولات و کلا هر کاری که قرار است در سایت انجام دهیم دچار مشکل میکند. شاید برای ذخیره کردن یک تنظیم جزیی در ووکامرس، مجبور شوید چندین بار این کار را تکرار کنید.
راه حل اول: کندی پیشخوان وردپرس در هاست ایران
برای رفع این مشکل ابتدا باید بدانید که مشکل شما دقیقا از سمت کدام پلاگین صورت میگیرد. برای این کار نیاز به استفاده از یک افزونه با نام Query Monitor وردپرس دارید. کافی است از بخش افزونهها نام افزونه را جستجو کرده یا اینکه با کلیک روی دکمه زیر آخرین نسخه آن را دانلود و نصب کنید.
پس از نصب این افزونه میتوانید در پیشخوان وردپرس سایت خود، درخواستهای HTTP را مشاهده کرده و با توجه به مدت زمانی که هر درخواست به طول میانجامد ببینید که ارتباط با چه سایتهایی با کندی مواجه است. سپس با استفاده از قطعه کدهایی که در ادامه درج خواهم نمود سایت خود را برای ایجاد ارتباط با این ابزار موقتا متوقف کنید.

برای این منظور کافی است وارد هاست خود شده و سپس مشابه تصویر بالا روی File Manager کلیک کنید. پس از ورود به مسیر public_html رفته و در این مسیر به دنبال فایل wp-config.php بگردید. در نهایت روی این فایل راست کلیک کرده و دکمه Edit را جهت ویرایش باز کنید.
در صورتی که از هاست دایرکت ادمین، پلسک یا سایر کنترل پنلها استفاده میکنید، ضروری است مسیرهای مشابه همین را برای ویرایش فایل کانفیگ وردپرس طی کنید. سپس کدهای زیر را درون این فایل قبل از خط /* That's all, stop editing! Happy blogging. */
قرار دهید.
define( ‘WP_HTTP_BLOCK_EXTERNAL’, TRUE );
در این قطعه کد ما به وردپرس دستور دادیم که هر درخواستی که به سرور خارج از سایت ارسال میشود را مسدود نماید.
حال در این بین ممکن است شما از ابزارهایی استفاده کنید که روی لوکیشن ایران قرار دارند یا اینکه این ابزارها درست است که به صورت درخواستی خارج از سایت ارسال میشوند، اما روی یک سرور دیگری که ابزار اختصاصی خود شماست پیادهسازی شده که ضروری است از بلاک شدن این درخواستها جلوگیری کنید. برای این منظور کافی است پس از افزودن قطعه کد بالا، در خط بعدی قطعه کد زیر را وارد کنید.
define( ‘WP_ACCESSIBLE_HOSTS’, ‘yoast.com, wordpress.org’ );
در این مثال من دامنه یوست و مخزن وردپرس را برای بلاک شدن مستثنی کردهام. به همین ترتیب میتوانید لیست سایتها را با ذکر نام دامنه و پسوند وارد کرده و هر سایت را با کاراکتر کاما انگلیسی (,) از هم جدا کنید تا در لیست سفید قرار گیرند.
راه حل دوم: رفع کندی داشبورد وردپرس در هاست ایران
جدایی از راهکار بالا، شما باید برخی کارها که در وردپرس بهصورت خودکار انجام میگیرد را نیز موقتا محدود کنید. از جمله این موارد میتوان به آپدیت خودکار وردپرس، افزونهها و قالب وردپرس اشاره نمود.
برای جلوگیری از آپدیت خودکار وردپرس کافی است قطعه کد زیر را در ادامه همان کدهای بالا درون فایل کانفیگ وردپرس قرار دهید.
define( 'WP_AUTO_UPDATE_CORE', false );
برای جلوگیری از آپدیت خودکار قالبها نیز میتوانید کد زیر را در ادامه کد بالا قرار دهید.
add_filter( 'auto_update_theme', '__return_false' );
و در پایان برای جلوگیری از آپدیت خودکار افزونهها نیز میتوانید کد زیر را نیز در ادامه کد بالا قرار دهید.
add_filter( 'auto_update_plugin', '__return_false' );
البته فراموش نکنید که با توجه به آپدیت یک سال اخیر وردپرس، گزینههای آپدیت خودکار افزونهها را میتوانید از طریق همان منوی افزونهها نیز مدیریت کنید. در هر زمان برای لغو این کدها کافی است بهجای FALSE
از مقدار TRUE
استفاده کنید.
اگر هم قصد دارید که به صورت کلی تمامی آپدیتهای وردپرس نظیر هسته، قالب، افزونهها، فایلهای ترجمه و… را لغو کنید کافی است بهجای سه کد بالا از کد زیر استفاده کنید.
define( 'AUTOMATIC_UPDATER_DISABLED', true );
راهکار سوم: برطرف کردن کندی مدیریت وردپرس در هاست ایران
جدایی از دو روش بالا، یکی از راههای دیگر نیز این است که کران جاب وردپرس را که مسئولیت بررسی آپدیتها را برعهده دارد محدود کنید.
کرانجاب به این صورت عمل میکند که وقتی کاربری وارد سایت شود، یک بررسی برای لیست کارهای از پیش تعیین شده انجام خواهد شد. بهعنوان مثال اگر نوشتهای را برای انتشار در تاریخ خاصی مشخص کرده باشید، تا وقتی که کاربری در آن بازه زمانی خاص وارد سایت نشده باشد یا اینکه باتهای اینترنتی درخواستی به سایت شما ارسال نکرده باشند، انتشار انجام نگرفته و برای همین با خطای «انتشار از دست رفته» مواجه میشوید.
هر بازدیدکنندهای که وارد سایت میشود، این کرون جاب یکبار درخواستی را اجرا خواهد کرد که برنامه زمانبندی شدهای وجود دارد یا نه؟ بررسی برای آپدیت هسته، افزونهها و قالب نیز بههمین شکل عمل میکند. پس وقتی سایت شما روزانه دهها هزار بار بازدید داشته باشد، این کار صورت میگیرد که تاثیر بهشدت زیادی هم در کندی سایت خواهد داشت. خصوصا در چنین شرایطی که اینترنت اختلال دارد.
برای مدیریت این کار ابتدا کد زیر را در بالای همان خط /* That's all, stop editing! Happy blogging. */
درون فایل wp-config.php قرار دهید.
define('DISABLE_WP_CRON', true);
با انجام این کار کرون جاب وردپرس غیرفعال شده و دیگر درخواستی برای این عملیات برنامهریزی شده انجام نمیگیرد. اما برای اینکه سایت شما دچار مشکل نشود، باید این کرون جاب را طوری تنظیم کنید که توسط سی پنل در بازه زمانی مشخص شدهای بهصورت خودکار انجام گیرد.
پس از ذخیرهسازی فایل، به صفحه اصلی سیپنل رفته و از بخش Advanced مشابه تصویر زیر روی گزینه Cron Jobs کلیک کنید.

سپس مشابه تصویر زیر از طریق گزینه Common Settings یکی از گزینهها را بر اساس مدت زمان هر بار اجرای کرون انتخاب کنید. پیشنهاد میکنم این گزینه را مشابه تصویر به شکل Twice Per Day انتخاب کنید که هر ۱۲ ساعت(دوبار در روز) بررسی را انجام میدهد.

- بازه زمانی دلخواه را برای هر بار بررسی کرون جاب انتخاب کنید(دو بار در روز توصیه میشود).
- در کادر Command قطعه کدی که در زیر درج شده را مشابه تصویر وارد کنید.
- روی دکمه Add New Cron Job کلیک کنید تا دستور اضافه و در بازه زمانی انتخابی اجرا شود.
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
دقت کنید که، در کد بالا به جای دامنه domain.com
باید نام دامنه خود را وارد کنید. همچنین در صورتی که از پروتکل HTTPS
استفاده نمیکنید، آن را باید به صورت HTTP
وارد کنید.
استفاده از افزونه رفع مشکل کندی پیشخوان وردپرس
یک راه سادهتر که میتوانید بهجای راهکار اول داشته باشید نیز استفاده از افزونهای است که توسط یکی از توسعهدهندگان ایرانی وردپرس با همین هدف تهیه شده است. برای این منظور ابتدا افزونه BlackSwan Block External Request را در مخزن وردپرس جستجو و نصب کنید یا اینکه با کلیک روی دکمه زیر آن را دانلود کرده و از طریق هاست نصب کنید.
دانلود افزونه BlackSwan Block External Request
پس از نصب و فعالسازی افزونه، سایتها و مخازن وردپرس که در ایران مسدود هستند و در این افزونه بهصورت پیشفرض وارد شدهاند مسدود خواهند شد. نیازی به انجام کار دیگری ندارید و این افزونه تنظیمات خاصی هم ندارد.
تنها مسئلهای که باید به آن توجه کنید، این است که اگر افزونه آپدیت شد، سریعا آن را بهروزرسانی کنید تا لیست مخازنی که جدیدا به آن افزوده شده است نیز در سایت شما بلاک شود. در نسخه ۱.۱.۰ این افزونه در حال حاضر سایتهای زیر قرار دارند.

که در صورت نیاز به افزودن سایت دلخواه میتوانید آدرس دامنههای مورد نظر را مانند نمونه بعد از خط ۴۱ وارد کنید.
امیدوارم که هرچه زودتر این مشکلات برطرف شده و شاهد آزادی اینترنت در ایران باشیم. در صورتی که هر سوالی در این خصوص داشتید یا راهکارهای دیگری برای رفع این مشکلات سراغ دارید، خوشحال میشویم در بخش نظرات با ما به اشتراک بگذارید.
سلام
ممنون از توضیحات و ارائه اطلاعات خوب شما
در برخی منابع دستور کامند برای اجرای کرون جاب را دستورات مختلفی قید می کنند. برای مثال
php -q /home/user/public_html/wp-cron.php >/dev/null 2>&1
یا
/usr/bin/php /home/USERNAME/public_html/wp-cron.php >/dev/null 2>&1
کدام دستور صحیح است؟ و چه تفاوت هایی دارند ؟
درود
لطفا برای این مورد با پشتیبانی هاستینگ در ارتباط باشید.
در هر صورت کد برای شما کار میکنه اما بسته به نوع وب سرور میشه از ساختار دیگه هم استفاده کرد.
عالی بود سون هاستی های عزیز
درود امین جان
ممنون از بازخوردی که بهمون میدی. (:
سلام جناب مهندس صادقی عزیز،
استاد، به نظرمن درایران اولین هستی.
هیچ ایرادی درآموزش های شماتاکنون من ندیدم.
همیشه تمام دستورات شمارابدون هیچ اماواگری درمشکلات به وجودآمده درسایتم اجراء می کنم.
موفق وپیروز باشید.
درود جناب رضایی، خیلی ممنونم. نظر لطفتونه.