مرکز آموزش
-
خطای open_basedir restriction in effect
خطای open_basedir restriction in effect
در ابتدا می بایست بدانیم Open_BaseDir چیست و چگونه عمل می کند و چرا این Extension برروی PHP فعال است.
open_basedir سیستمی است که محدودیت دسترسی به فایل ها را توسط کامپایر php اعمال می کند که کامپایلر php نتواند خارج از پوشه در اختیار آن فایل های دیگر را کنترل و به آن ها دسترسی داشته باشد. به طور کلی این محدودیت تنها برروی کل سیستم عامل ایجاد می گردد و هر کاربر تنها مجاز است دسترسی به پوشه داخلی خودش داشته باشد و نمی تواند از طریق کامپایلر به فایل های دیگر سیستم عامل دسترسی داشته باشد. دلیل آن هم خیلی ساده است، هنگامیکه شما یک سرویس میزبانی اشتراکی تهیه می کنید تنها دسترسی شما به فایل های داخل پوشه /HOME/USERNAME/ می باشد یعنی شما می توانید فایل های داخل این پوشه را کنترل و مدیریت کنید و به هیچ عنوان نمی بایست به نام کاربری دیگری یا فایل های دیگر سیستم عامل دسترسی پیدا کنید زیرا در ابتدا شما صاحب امتیاز آن فایل ها نیستید و اگر قرار بود هر کسی به اطلاعات و فایل های دیگران دسترسی داشت عملا حریم خصوصی وجود نداشت و یک سیستم کاملا نا امن در اختیار کاربران قرار می گیرد.
نکته: میزبان پایتخت به هیچ عنوان سیستم open_basedir فعال را خاموش نمی کند و شما نیز هیچ گاه نیازی به غیر فعال کردن آن نخواهید داشت و همواره می بایست اسکریپت های خودتان را بررسی نمایید که آدرس دهی صحیح در تنظیمات آن باشد. معمولا این خطا هنگامیکه رخ می دهد که آدرس دهی شما اشتباه است و اسکریپت شما به دلیل آدرس اشتباهی که برای خواندن فایل های مورد نیاز خود دارد می خواهد خارج از فضای کاربری دسترسی پیدا کند، لذا برای حل این موضوع می بایست ابتدا تنظیمات اسکریپت خودتان را بررسی نمایید تا مطمئن شوید آدرس دهی ها صحیح است.
نکته: بیشتر از خطا مربوط به پوشه tmp می باشد که خیلی از اسکریپت ها به جای tmp از /tmp که پوشه Temprorary سیستم عامل است استفاده می کند لذا می بایست / آن را حذف نمایید. در نظر داشته باشید یک اشتباه ساده همانند / یا \ در آدرس دهی موجب چنین خطایی می شود.