XAMPP / Apache htdocs dışında dosyayı hizmet yapmak [kapalı]

6 Cevap php

O htdocs dizininin dışındaki bir dosyayı sunmak için xampp yapılandırmak mümkün mü?

Örneğin, ben bir dosya var diyelim:

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

ve benim xampp dosyalar normalde üzerinden sunulmaktadır:

C:\xampp\htdocs\

(Yani varsayılan olarak yapılandırılmış nasıl çünkü) Apache tanımak ve htdocs altında hareket etmeden benim TransitCalculator.php dosyasını hizmet yapmak için bazı yolu var mı? Tercihen I / projeler dizinin tüm içeriğini erişimi sunmak için Apache istiyorum, ve ben htdocs altında projeler dizini taşımak istemiyorum.

edit: Q / A daha "aranabilir" yapmak için soru başlığı Apache eklemek için düzenlenebilir

6 Cevap

Bunu yapmanın üç yolu vardır gibi cevaplar Tamam, 'Sparks, s' pix0r başına ve Dave 's görünüyor:


Virtual Hosts

  1. Açık C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf.
  2. Un-Yorum hat 19 (NameVirtualHost *:80).
  3. Sanal konak (~ hat 36) ekleyin:

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Hosts dosyasını (: \ Windows \ System32 \ drivers \ etc \ hosts C) açın.

  5. Eklemek

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    Dosyanın sonuna (Spybot önce - Search & yüklü olduğunu varsa şeyler yok).

  6. Eğer kullanıyorsanız (sağ)) tıkla> özellikler ve eskisinin üzerine dizine yeni bir kopya (ya da eskisini yeniden adlandırın eski hosts dosyasını izinlerini değiştirmek, masaüstüne kaydetmek zorunda kalabilirsiniz (Kaydet vista ve) sorun var.
  7. Apache yeniden başlatın.

Şimdi http://transitcalculator.localhost/ göz atarak o dizine erişebilirsiniz.


Make an Alias

  1. <Directory "C:/xampp/htdocs"> ve </Directory> (~ hat 232) ve hemen C:/xampp/htdocs (bu durumda istediğiniz dizini ile değiştirilir ile altına yapıştırın arasındaki her şey, ~ hattı 200 kopya başlangıç C:/Projects) ve sunucuya yeni bir dizin için doğru izinleri vermek.

  2. <IfModule alias_module></IfModule> bölümü (~ 300 satır) bulun ve ekleyin

    Alias /transitCalculator C:/Projects/transitCalculator/trunk
    

    Alias açıklama bloğunun altında (ya da ne olursa olsun arzularını alakalı).


Change your document root

  1. Düzenleme hattı C 176: \ xampp \ apache \ conf \ httpd.conf; değişim DocumentRoot "C:/xampp/htdocs" #DocumentRoot "C:/Projects" (veya ne istersen).

  2. Yeni konumunuzu maç düzenle hattı 203 (Bu durumda C:/Projects).


Notes:

  • Siz "\" yerine geri bölü bölü "/" ileri kullanmak zorunda.
  • Sonunda sondaki "/" dahil etmeyin.
  • restart your server.

Sen DocumentRoot XAMPP \ apache \ conf \ httpd.conf ayarı düzenleyerek yerlerini değiştirebilirsiniz.

Bu şu şekilde olmalıdır:

C :/ xampp / htdocs

Bunu değiştirin:

C :/ projeler / transitCalculator / gövde

Bir VirtualHost da bu işe yarayacağını ve alt dizinleri için gerek olmadan birkaç projelere ev sahipliği gibi sizin için daha iyi çalışabilir. İşte bunu nasıl:

httpd.conf (. veya httpd.conf için ekstra \ httpd-vhosts.conf göreli bölü Firar "\" it çalışmamasına neden olabilir):

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>

HOSTS dosyası (c: \ windows \ system32 \ drivers \ etc \ hosts genellikle):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Şimdi XAMPP yeniden başlatın ve http://transitcalculator.localhost/ erişmek ve bu dizine düz eşler gerekir.

Eğer bir etki alanı adının kök oturup bir site gelişmekte konum bir üretim ortamı çoğaltmak için çalışıyorsanız, bu yararlı olabilir. You can Örneğin, sunucu üzerinde taşıyacak mutlak yolları ile dosyaları noktası:

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

adlar veya alt dizinleri kullanarak bir ortamda, siz "images" dizini mevcut dosyaya göre tam olarak nerede takip gerekiyordu oysa.

Siz herhangi bir kısıtlama ile her yerden sayfalarını hizmet için Apache ayarlayabilirsiniz ama normalde daha güvenli bir biçimde dağıtılmış oluyor.

Sizin webroot görünür böylece apache dosyalarını düzenleme (http.conf daha yaygın isimlerden biridir) herhangi bir klasörü ayarlamak için izin verecektir.

EDIT:

takma myapp c: \ myapp \

Ben tür pencerelerinde bir kısayol ya da Apache 'yerindeymiş gibi' bir klasör webroot olan un * x altında bir sembolik bağ gibi http.conf dosyasındaki bir diğer ad oluşturmak için biçimi eklemek için benim cevap düzenlenebilir ettik. Bu muhtemelen uzun vadede sizin için daha yararlı olacak.

Bir yan not olarak, size XAMPP sen httpd.conf UNC yollarını kullanmak zorunda belge kök olarak bir ağ sürücüsünü kullanmak için almak için çalışıyoruz. XAMPP eşlenen ağ sürücüleri tanımaz.

For example the following won't work, DocumentRoot "X:/webroot"

But this will, DocumentRoot "//192.168.10.100/webroot" (note the forward slashes, not back slashes)

None of these solutions worked easily. Here is the simplest solution to allow Apache 2 to host websites outside of htdocs:

Httpd.conf "DocumentRoot" direktifi altında, bir dizin bloğu görmelisiniz. Bu dizin bloğunu değiştirin:

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

REMEMBER NOT TO USE THIS CONFIGURATION IN A REAL ENVIRONMENT