
عندما برامج في بي إتش بي في ملقم ويب عادة القيام بحشد من ويشمل o يتطلب ملفات أخرى لتطبيق الويب الخاص بك. أما لأنك تحتاج إلى بعض فئة أو بعض المهام التي, لسهولة, نمطية وتنظيف التعليمات البرمجية الخاصة بك, يمكنك تحديد موقع في سلسلة أخرى من ملفات سرية وتنظيما جيدا.
إدراج أو طلبات الملفات في بي إتش بي, أو حتى الوصول إلى الملف باستخدام الدالة fopen, عندما يتم المسار الصحيح, عادة لا يعطي المشاكل, إلا إذا كان الملف المطلوب, أو الدليل الذي يستضيف, لا يحتوي أذونات قراءة ذات الصلة. ولكن مرة أخرى, ما إذا كان ينبغي اعتبارها تدبير احترازي للأمان أو لأي سبب آخر, وتقع الملفات إلى أولئك الذين يحتاجون إلى الوصول إلى خارج مجلد ويب لمشروعنا, أي, في المجلدات الموجودة على مستويات أدنى لأن لأن المجلد الجذر من موقعنا على الإنترنت.
أنت ربما حدثت مرة واحدة, عند محاولة الوصول إلى خارج لأن المجلد الجذر موقع الويب الخاص بك, النظام لديك ونفى وصول, لا يزال وجود الأذونات الضرورية لنفسه, مع الرسالة التالية:
1 | open_basedir restriction in effect. File(../ruta/archivo.php) is not within the allowed path(s) |
وهذا يخبرنا بأن التوجيه بي إتش بي, خطأ, هو منع اذهب إلى الموقع حيث يقع الملف. كما يمكنك مناقشة, خطأ توجيه الذي يشير إلى وهو الحد الأقصى الملف PHP يمكن الوصول إليه وفقا للمسار أو شجرة الدليل المحدد, أحب هذا, إذا كان الملف الذي تريد استخدامه أدناه من نفس, النظام سوف يحقق لك هذا خطأ.
تعديل ملف php.ini
يتم تكوين هذا النهج في الملف PHP.ini, ولكن بالإضافة إلى ذلك, فإنه يمكن أيضا تمكين في ملف التكوين من أباتشي. أحب هذا, وكخطوة أولى للتعامل مع هذا الخطأ, يجب عليك الوصول إلى إلى ملف تكوين بي إتش بي, ابحث عن السطر المذكور وتعديله بالطريق أو الطرق المسموح بها.
1 2 3 4 5 6 | //php.ini ... ... open_basedir = "/ruta/webs/miweb/www:/ruta/webs/miweb" ... ... |
في هذا المثال السابق, يتم تكوين PHP حيث يمكن الوصول إلى النظام على حد سواء لكل مستويات أعلى بدءاً من /المسار/شبكات/ميويب/www, ككل أعلى إلى /المسار/شبكات/ميويب, أذونات الوصول إلى الملفات والمجلدات المختلفة التي أكثر، مما يتيح.
تعديل الملف مرة واحدة PHP.ini و إعادة تمهيد على ملقم ويب, الوصول إلى الملف المطلوب ينبغي أن تكون قادرة على القيام به و, ولذلك, الخطأ وينبغي أن يذهب بعيداً.
تعديل ملف التكوين Apache
نعم لا تزال استمر الخطأ, ومن المرجح جداً أنه في ملف التكوين من أباتشي كما وقد مكن هذا التوجيه. للقيام بذلك, حدد موقع الملف, اعتماداً على التثبيت سوف تكون في بعض الطرق أو غيرها, عادة في /إلخ/apache2/ أو /الصفحة الرئيسية/--المستخدم/conf/صفحة ويب الخاص بك/. الملف هو عادة اسم apache2.conf o sapache2.conf, اعتماداً على ما إذا كنت تستخدم HTTPS أو عدم.
مرة واحدة داخل, تحديد موقع الإدخال <VirtualHost> لنطاقك المعني, وداخل العلامة <الدليل> يجب أن يظهر شيء من هذا القبيل ما يلي:
1 2 3 4 5 6 7 | <Directory...> ... ... php_admin_value open_basedir /ruta/webs/miweb/www:/ruta/webs/miweb ... ... </Directory> |
وهذا حيث تقوم بتكوين هذا التوجيه. بهذه البساطة تعديل o إضافة المسار أو المسارات التي تريد أن يكون هذا التوجيه, حفظ التغييرات و إعادة تشغيل الملقم. مرة واحدة, على خطأ ستزول.
بهذه الطريقة يمكنك الوصول بواسطة ويشمل, يتطلب أو حتى باستخدام الدالة fopen للملفات الموجودة أدناه لأن الجذر من الخاص بك موقع ويب, قد يكون في هذه الملفات الطرق التي تتطلب بعض درجة من الأمان, وفي هذا الطريق الخطأ “التقييد خطأ في التأثير” وعلقت, إكمال تختفي.
