php - portable - xampp setup




اجعل XAMPP/Apache يخدم الملف خارج htdocs (4)

هل من الممكن تكوين xampp لعرض ملف خارج دليل htdocs ؟

على سبيل المثال ، قل لدي ملف موجود على النحو التالي:

C:\projects\transitCalculator\trunk\TransitCalculator.php

وعادة ما يتم تقديم ملفات xampp بي من:

C:\xampp\htdocs\

(لأن هذا هو التكوين الافتراضي) هل هناك طريقة لجعل Apache يتعرف على ملف TransitCalculator.php بي TransitCalculator.php دون نقله ضمن htdocs ؟ على نحو مفضل ، أريد من Apache تقديم / الوصول إلى محتويات دليل المشاريع بالكامل ، ولا أريد نقل دليل المشاريع ضمن htdocs .

تحرير: تم تعديله لإضافة Apache إلى عنوان السؤال لجعل Q / A أكثر "قابلية للبحث"


إذا كنت تحاول الحصول على XAMPP لاستخدام محرك أقراص الشبكة كجذر للمستند ، فيجب عليك استخدام مسارات UNC في httpd.conf. لن تتعرف XAMPP على محركات أقراص الشبكة المعينة.

على سبيل المثال لن يعمل ما يلي ، DocumentRoot "X: / webroot"

ولكن هذه الإرادة ، DocumentRoot "//192.168.10.100/webroot" (لاحظ الخطوط المائلة للأمام وليس مائلة للخلف)


تعمل VirtualHost أيضًا من أجل هذا وقد تعمل بشكل أفضل بالنسبة لك حيث يمكنك استضافة العديد من المشاريع دون الحاجة إلى الدلائل الفرعية. إليك كيفية القيام بذلك:

httpd.conf (أو extra \ httpd-vhosts.conf نسبة إلى httpd.conf. قد تؤدي خطوط مائلة زائدة "\" إلى عدم تشغيله):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

ملف المضيفين (c: \ windows \ system32 \ drivers \ etc \ hosts عادة):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

أعد تشغيل XAMPP الآن ، ويجب أن تكون قادرًا على الوصول إلى http://transitcalculator.localhost/ وسيتم http://transitcalculator.localhost/ مباشرةً إلى هذا الدليل.

يمكن أن يكون هذا مفيدًا إذا كنت تحاول نسخ بيئة إنتاج متماثلة حيث تقوم بتطوير موقع على جذر اسم المجال. يمكنك ، على سبيل المثال ، الإشارة إلى الملفات ذات المسارات المطلقة التي ستنقل إلى الخادم:

<img src="/images/logo.png" alt="My Logo" />

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


حل للسماح لـ Apache 2 باستضافة مواقع الويب خارج htdocs:

تحت توجيه "DocumentRoot" في httpd.conf ، يجب أن تشاهد كتلة دليل. استبدال كتلة هذا الدليل بـ:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

تذكر عدم استخدام هذا التكوين في بيئة حقيقية


يمكنك تعيين Apache لعرض الصفحات من أي مكان دون أي قيود ، لكن يتم توزيعها عادةً في نموذج أكثر أمانًا.

يتيح لك تحرير ملفات apache (يعد http.conf أحد أكثر الأسماء شيوعًا) تعيين أي مجلد بحيث يظهر في webroot الخاص بك.

تصحيح:

الاسم المستعار myapp c: \ myapp \

لقد قمت بتحرير إجابتي لتضمين التنسيق لإنشاء اسم مستعار في ملف http.conf والذي يشبه إلى حد ما اختصار في نظام التشغيل windows أو رمز ارتباط تحت un * x حيث Apache "يتظاهر" بوجود مجلد في webroot. من المحتمل أن يكون هذا أكثر فائدة لك على المدى الطويل.







server-configuration