سؤال

أنا أستخدم MAMP لبيئة التطوير الخاصة بي ولم أفهم حقا بنية المجلد من / var / www / اسم المشروع / على خادم ويب. أتساءل عما إذا كان من المفترض أن توجه إلى خادم الويب إلى مجلد HTDocs أو من المفترض أن يشير إلى جذر مجلد المشروع؟

السبب في أنني أسأله هو أنه من المفترض أن تكون المكتبات موجودة خارج مجلد HTDocs لأغراض الأمان، ولكن كيف يتم توجيهها من تطبيق الويب نفسه؟ بالتأكيد لا يمكن تطبيق الويب الوصول إلى المجلدات خارج مجلد HTDocs إذا كان خادم الويب يشير إلى مجلد HTDocs لتطبيق الويب؟

هل كانت مفيدة؟

المحلول

الحل البسيط هو الحصول على بنية مجلد مثل ذلك:

/var/www/project-name/
    + webroot/
    + libraries/

توجيه apache2. DocumentRoot إلى webroot الدليل. احتفظ بجميع المكتبات التي لا تريد الوصول إليها من الويب في libraries الدليل. في رمز PHP الخاص بك، استخدم توجيه التوجيه للوصول إلى رمز المكتبات.

الخدعة هي أن نفهم أن PHP يمكن أن يتضمن أي ملف على نظامك، فقد قرأ الوصول إليها. يمكن لشخص تصفح موقع الويب الخاص بك الوصول إلى الملفات فقط داخل دليل Webroot الخاص بك.

نصائح أخرى

إذا كان لديك متعددة Vhosts على نفس الخادم، فمن المشجع أن يكون لديك كل موقع في دليل ضمن /var/www, ، وكل من هذه لها htdocs المجلد، الذي يتم تركيبه كجذر الويب. يمكنك بعد ذلك الحصول على سجلات ومكتبات محددة في التطبيق في مجلد أعلى من جذر الويب. على سبيل المثال:

/var/www/lolcats.com
/var/www/lolcats.com/htdocs
/var/www/lolcats.com/htdocs/index.php
/var/www/lolcats.com/lib
/var/www/lolcats.com/log

يمكن ل PHP الوصول إلى أي ملف في نظام الملفات الذي يحتوي مستخدم خادم Apache على الأذونات الصحيحة. على مربع Linux يقوم بتشغيل Apache بدون مضيفات افتراضية، / Var / www هو مكان مشترك لاستخدامه في دليل HTDocs الخاص بك.

تضع المكتبات في PHP include_path التي لا يمكن الوصول إليها للمستخدم العام.

إنها فكرة googd لتعيين مواقع الويب المحلية الخاصة بك في الدلائل بنفس الطريقة التي تعمل بها المجالات الخاصة بك.

غالبا ما يكون لديك مواقع ويب متعددة على حساب استضافة ويب واحد، لذلك قم بإعداد المضيفين الظاهري لتعبير الإعداد.

إذا كان الاستضافة المشتركة هو:

/var/www/root
 /var/www/root/website1
 /var/www/root/website2
 /var/www/root/website3

قم بإنشاء 3 مضيفين حيوي على جهاز الكمبيوتر المحلي الخاص بك ولكن احتفظ بنية ملف متطابقة.

أيضا، استخدم الظروف في ملفات التكوين الخاصة بك لإعداد الموقع الذي يعتمد على بنية ملف الخادم، لضمان يعمل ملف التكوين نفسه على كلا الإعدادات. هذا يعني أنك تحتفظ بعملية بناء خطوة واحدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top