آموزش رفع خطای Failed to open stream در وردپرس
خطای Failed to open stream در وردپرس که بیشتر ما به شکلهایی نظیر No Such File or Directory با آن مواجه شدهایم، یکی از خطاهای رایج وردپرس است که در ساختار اسکریپت و برنامهنویسی رخ میدهد. این خطا خوشبختانه بر خلاف سایر ارورهای وردپرس، خود را بهتر معرفی کرده و اگر با ساختار کلی برنامه نویسی آشنا باشید میتوانید آن را رفع کنید.
در ادامه این مقاله از وبلاگ سون هاست به بررسی ارور Failed to open stream وردپرس خواهم پرداخت که خود را به شکلهای مختلفی مثل Unable to connect، No such file or directory، Failed opening required، Permission Denied و Operation Failed نشان میدهد.
دلایل به وجود آمدن خطای Failed to open stream چیست؟
این خطا وقتی رخ میدهد که وردپرس در محیط اسکریپت (برنامه نویسی) قادر نیست که ارتباط بین فایلها را به درستی برقرار کند. این ارتباط میتواند در اثر آدرسدهی اشتباه ایجاد شده یا اینکه در محیط زیر ساختی مشکلی وجود داشته باشد که اتصال چه با ابزار داخلی و چه خارجی (شخص ثالث) برقرار نباشد.
Warning: require(/home/website/wp-includes/load.php): failed to open stream: No such file or directory in /home/website/wp-settings.php on line 19
Fatal error: require(): Failed opening required ‘/home/website/wp-includes/load.php’ (include_path=’.:/usr/share/php/:/usr/share/php5/’) in /home/website/wp-settings.php on line 19
Last Error: 2018-04-04 14:52:13: (2) HTTP Error: Unable to connect: ‘fopen(compress.zlib://https://www.googleapis.com/analytics/v3/management/accounts/~all/webproperties/~all/profiles?start-index=1): failed to open stream: operation failed’
اگر به هر یک از حالات فوق با چنین خطاهای مشابهی مواجه شدید، باید بدانید که در این گروه خطا هستند که برای رفع آن میتوانید از راهکارهایی که در ادامه توضیح خواهم داد استفاده کنید.
چگونگی رفع خطای Failed to open stream در وردپرس
اما پیش از شروع بد نیست بدانید که بسیاری اوقات خطاهای وردپرس در اثر یک باگ ایجاد میشوند که با یکبار آپدیت فایل htaccess. برطرف خواهند شد. پس برای اینکه در وقت و اعصاب خود صرفهجویی کنید، پیش از هر کاری قدم صفر را با هم مرور میکنیم.
قدم صفر: آپدیت فایل htaccess.
با توجه به ماژولار بودن سیستم مدیریت محتوای وردپرس، بسیاری اوقات با توجه به اینکه تغییراتی توسط افزونهها در سایت ایجاد میشود موجب میشود روی فایل htaccess. تاثیر گذاشته و بخض اعظمی از این مشکلات از این فایل نشات بگیرد.
در بیشتر موارد با ساخت دوباره فایل htaccess. که جدای از تغییرات در خود وردپرس میتواند در اثر تغییرات در سرور و کانفیگ هاست نیز متحمل تغییراتی باشد، ضروری است که یک بار بررسی کرده و ببینید که مشکل با اصلاح این فایل رفع خواهد شد یا خیر؟
پس با استفاده از راهنمای ورود به هاست سی پنل به File Manager هاست خود مراجعه کرده و سپس این فایل را با راست کلیک کردن و انتخاب گزینه Rename به نام دیگری همچون htaaccess-old.
تغییر نام دهید. سپس به پیشخوان وردپرس برگشته و از منوی تنظیمات> پیوندهای یکتا بدون اینکه تغییری در ساختار پیوند ایجاد کنید، همانند تصویر پایین روی دکمه ذخیره تغییرات کلیک کنید.
با انجام این کار فایل htaccess. استاندارد وردپرس مجددا ایجاد خواهد شد. میتوانید مجددا بررسی کنید که مشکل رفع شده است یا خیر. همچنین اگر از کدهای سفارشی در این فایل همچون ریدایرکت یا ایجاد تغییراتی روی ورژن php استفاده کردهاید، آنها را به فایل جدید اضافه کنید.
۱. بررسی سطح دسترسی فایلها و پوشهها «Permission Denied»
گاهی اوقات ارور Failed to open stream خود را همراه با متن Permission Denied نشان میدهد. این حالت بهاین معنی است که سطح دسترسی روی یک فایل خاص (عموما php) یا پوشهای به درستی تنظیم نشده و همین موضوع باعث خطا شده است.
اگر فایل error_log
هاست خود را بررسی کنید، با جستجوی Failed to open stream در خطوط خطای این فایل میتوانید مسیر دقیق فایل یا پوشهای که این خطا را دارد میتوانید مشاهده کنید. حال کافی است به همان مسیر رفته و با توجه به اینکه فایل چه فرمتی دارد سطح دسترسی را روی اعداد استاندارد تعیین کنید.
برای این کار نیز کافی است روی فایل یا پوشه راست کلیک کرده و گزینه Change Permissions را انتخاب کنید. در این صورت پنجرهای برایتان باز میشود که کافی است تیک ستونهای Read ، Write و Execute را برای هر یک از گروههای کاربری فعال یا غیرفعال کنید.
حال برای آشنایی بیشتر برای اینکه هر فایل و پوشه باید دارای چه سطح دسترسیای باشد، کافی است مقالهای که با عنوان تغییر مجوز سطح دسترسی در هاست سی پنل تهیه کردهایم را مطالعه کنید.
۲. ایجاد مشکل از سوی افزونهها
دلیل بعدی که باعث ایجاد ارور Failed to open stream در وردپرس میشود از سمت افزونهها است. اگر با نصب یک افزونه خاص، آپدیت یا ایجاد تغییرات بر روی افزونهای این خطا مشاهده شد کافی است افزونه مشکلدار را یافته و دلیل خطا را بررسی کنید.
برای این منظور میتوانید افزونه را غیرفعال کنید تا این خطا از دسترس کاربران خارج شده و سپس به کمک خطاهایی که در فایل ارور لاگ هاست ثبت شده است علت دقیق خطا را پیدا و رفع کنید.
اما اگر هنوز نمیدانید کدام افزونه باعث ایجاد این مشکل شده است؛ کافی است همه افزونههای وردپرس را غیرفعال کنید. سپس با فعال کردن هر افزونه سایت را بررسی کنید. پس از فعال سازی افزونهای که این مشکل را ایجاد میکند، میتوانید مجددا ایجاد خطا را در سایت مشاهده کرده و افزونه مشکلدار را پیدا کنید.
حال علت بروز خطا میتواند از تغییر سطح دسترسی فایل در افزونه باشد یا اینکه خطاهای جزئی برنامه نویسی مانند تایپ اشتباه در یک خط کد یا وجود خطا در دسترسی از طریق API در ابزارهای شخص ثالث باشد که در ادامه بیشتر آنها را معرفی خواهم کرد.
۳. ایجاد مشکل از سوی قالب یا تم فرزند
مشابه آنچه در افزونهها دیدیم، گاهی اوقات هم این مشکل میتواند از سوی قالب سایت ایجاد شده باشد. برای بررسی این موضوع و اطمینان از آن نیز میتوانید قالب پیشفرض وردپرس را فعال کرده و بررسی کنید که خطا رفع شده است یا خیر؟
در صورت رفع خطا با تغییر موقت قالب، حالا باید فایل error_log را در هاست بررسی کرده و مسیر و فایل دقیقی که باعث بروز خطا شده است را پیدا و اصلاح کنید. پس از اصلاح میتوانید مجددا قالب قبلی را فعال کنید.
فراموش نکنید که در بسیاری از قالبهای فارسی شده از نسخه تم فرزند استفاده میشود تا در هر بار آپدیت مجبور به سفارشی سازی نباشید. بنابراین اگر از تم فرزند استفاده میکنید آن را نیز بررسی کنید.
۴. عدم وجود دایرکتوری «No Such File or Directory»
عمدهترین دلیل به وجود آمدن خطای Failed to open stream: No such file or directory وردپرس همین مسئله است و همانطور که از نوع خطا مشخص شده به این معنی است که فایل مورد نظر وجود ندارد یا اینکه دایرکتوری که در یک فایل خاص مسیردهی شده است اشتباه است.
این دلیل معمولا با آپدیت افزونه یا قالب رخ میدهد که برنامهنویس اشتباه تایپی در مسیردهی فایلها یا پوشهها داشته است. در صورتی که با چنین خطایی موجه شدید، کافی است مسیر فایل را بررسی و اصلاح کنید.
Warning: require(/home/website/wp-includes/load.php): failed to open stream: No such file or directory in /home/website/wp-settings.php on line 19
به عنوان مثال در نمونه بالا برای خط ۱۹ فایل wp-settings.php مشخص شده که خطایی در فایل load.php وردپرس وجود دارد. کافی است این فایل را باز کرده و ببینید که خط ۱۹ چه ایرادی دارد.
معمولا یا املای کلمهای اشتباه وارد شده است یا اینکه از کاراکترهای اشتباهی استفاده شده است که با بررسی و مسیردهی درست و رفع ایراد، مشکل رفع خواهد شد.
۵. خطا در API نرم افزاری «Operation Failed»
در این حالت که خطای Failed to open stream در وردپرس خود را همراه با متن «Operation Failed» یا «Unable to connect» نشان میدهد. به این معنی که شما از ابزارهای شخص ثالث همچون آمارگیر گوگل آنالیتیکس یا گوگل تگ منیجر استفاده میکنید، اما به هر دلیلی اتصال با سرویس برقرار نیست.
در این حالت مشکل سمت برنامه نویسی نیست؛ چرا که اگر اینطور باشد خود را به شکلهای «Failed opening required» یا «No such file or directory» نشان خواهد داد. در حالی که این خطا به صورت «Unable to connect» ظاهر میشود.
بدین معنی که به دلیل وجود مشکل از سمت زیرساخت سایت (هاست و سرور) امکان برقراری اتصال با ابزار شخص ثالث وجود ندارد. البته گاهی هم مشکل میتواند از قطع شدن ابزار مورد نظر باشد که خارج از دسترس شماست و باید منتظر رفع مشکل از سوی سرویسدهنده مورد نظر باشید.
جمع بندی و کلام آخر
آنطور که در حالتهای ششگانه این مقاله ذکر کردم، دلایل بروز ارور Failed to open stream در وردپرس میتواند به دلیل از بین رفتن ارتباط بین فایلها و پوشهها رخ دهد. حال این ارتباط میتواند در قالب مسیردهی فایل باشد که با خطاهای تایپی بهوجود آمده یا اینکه در اثر تغییراتی که در سطح سرور ایجاد شده و باعث ایجاد باگهای جزئی در محیط سرور یا فایل htaccess. شده باشد.
اما برخلاف سایر خطاهای رایج وردپرس زمانی که با ارور open stream وردپرس مواجه میشویم، مسیر فایل اعلام شده و یافتن دلایل خطا برایمان سادهتر خواهد بود که به کمک این آموزش و داشتن آشنایی ابتدایی با ساختار وردپرس میتوانید به سادگی آن را رفع کنید.
در پایان لازم بهذکر است که دقت کنید اگر این خطا به دلیل ایجاد ارتباط با سایر ابزار همچون گوگل آنالیتیکس یا دیگرر ابزارهای متنوعی که استفاده میکنید رخ داده، قبل از اینکه خود را درگیر حل مسئله کنید مسمئن شوید که مشکل از سمت ابزار مورد نظر نباشد.