Apakah mungkin mengkonfigurasi xampp untuk menyajikan file di luar htdocs
direktori?
Misalnya, katakan saya memiliki file yang terletak sebagai berikut:
C:\projects\transitCalculator\trunk\TransitCalculator.php
dan file xampp saya biasanya dilayani dari:
C:\xampp\htdocs\
(karena itu konfigurasi default) Apakah ada cara untuk membuat Apache mengenali dan melayani TransitCalculator.php
file saya tanpa memindahkannya htdocs
? Lebih disukai saya ingin Apache untuk melayani / memiliki akses ke seluruh isi direktori proyek, dan saya tidak ingin memindahkan direktori proyek di bawah htdocs
.
sunting: diedit untuk menambahkan Apache ke judul pertanyaan agar Q / A lebih "dicari"
php
apache
xampp
server-configuration
cmcculloh
sumber
sumber
php -S <host>:<port>
. Sebagai contohphp -S localhost:80
.Jawaban:
Ok, per jawaban pix0r , Sparks 'dan Dave sepertinya ada tiga cara untuk melakukan ini:
Host Virtual
NameVirtualHost *:80
).Tambahkan host virtual Anda (~ baris 36):
Buka file host Anda (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Menambahkan
ke akhir file (sebelum Spybot - Cari & Hancurkan barang jika Anda menginstalnya).
Sekarang Anda dapat mengakses direktori itu dengan menjelajahi http: //transitcalculator.localhost/ .
Buat Alias
Mulai ~ baris 200
http.conf
file Anda , salin semuanya antara<Directory "C:/xampp/htdocs">
dan</Directory>
(~ baris 232) dan tempel segera di bawah ini denganC:/xampp/htdocs
diganti dengan direktori yang Anda inginkan (dalam hal iniC:/Projects
) untuk memberikan server Anda izin yang benar untuk direktori baru.Temukan
<IfModule alias_module></IfModule>
bagian (~ baris 300) dan tambahkan(atau apa pun yang relevan dengan keinginan Anda) di bawah
Alias
blok komentar, di dalam tag modul.Ubah root dokumen Anda
Edit ~ line 176 dalam C: \ xampp \ apache \ conf \ httpd.conf; ubah
DocumentRoot "C:/xampp/htdocs"
ke#DocumentRoot "C:/Projects"
(atau apa pun yang Anda inginkan).Sunting ~ baris 203 untuk mencocokkan lokasi baru Anda (dalam hal ini
C:/Projects
).Catatan:
sumber
Order allow,deny Allow from all
tidak bekerja untuk saya, tetapiRequire all granted
berhasil.Anda dapat memindahkannya dengan mengedit pengaturan DocumentRoot di XAMPP \ apache \ conf \ httpd.conf.
Seharusnya saat ini:
Ubah ke:
sumber
VirtualHost juga akan berfungsi untuk ini dan dapat bekerja lebih baik untuk Anda karena Anda dapat meng-host beberapa proyek tanpa perlu subdirektori. Begini cara melakukannya:
httpd.conf (atau tambahan \ httpd-vhosts.conf relatif terhadap httpd.conf. Trailing slash "\" mungkin menyebabkannya tidak berfungsi):
File HOSTS (biasanya c: \ windows \ system32 \ drivers \ etc \ hosts):
Sekarang restart XAMPP dan Anda seharusnya dapat mengakses http: //transitcalculator.localhost/ dan itu akan langsung memetakan ke direktori itu.
Ini dapat membantu jika Anda mencoba mereplikasi lingkungan produksi tempat Anda mengembangkan situs yang terletak di root nama domain. Anda dapat, misalnya, menunjuk ke file dengan jalur absolut yang akan dibawa ke server:
sedangkan di lingkungan yang menggunakan alias atau subdirektori, Anda perlu melacak dengan tepat di mana direktori "gambar" relatif terhadap file saat ini.
sumber
X:\myfolder
). Ketika saya menggunakan metode ini saya mendapat peringatan "Akses Terlarang". Apakah ini berarti pengguna Apache tidak memiliki akses baca ke drive?Directory
gantiOrder allow,deny
danAllow from all
denganRequire all granted
. Lihat stackoverflow.com/questions/9110179/…Anda dapat mengatur Apache untuk melayani halaman dari mana saja dengan batasan apa pun tetapi biasanya didistribusikan dalam bentuk yang lebih aman.
Mengedit file apache Anda (http.conf adalah salah satu nama yang lebih umum) akan memungkinkan Anda untuk mengatur folder apa pun sehingga muncul di webroot Anda.
EDIT:
alias myapp c: \ myapp \
Saya telah mengedit jawaban saya untuk memasukkan format untuk membuat alias dalam file http.conf yang semacam pintas di windows atau symlink di bawah un * x di mana Apache 'berpura-pura' folder berada di webroot. Ini mungkin akan lebih bermanfaat bagi Anda dalam jangka panjang.
sumber
Jika Anda mencoba untuk mendapatkan XAMPP untuk menggunakan drive jaringan sebagai root dokumen Anda, Anda harus menggunakan jalur UNC di httpd.conf. XAMPP tidak akan mengenali drive jaringan yang dipetakan.
Misalnya, hal berikut tidak akan berfungsi, DocumentRoot "X: / webroot"
Tapi ini akan, DocumentRoot "//192.168.10.100/webroot" (perhatikan garis miring ke depan, bukan garis miring kembali)
sumber
Solusi untuk mengizinkan Apache 2 meng-host situs web di luar htdocs:
Di bawah arahan "DocumentRoot" di httpd.conf, Anda akan melihat blok direktori. Ganti blok direktori ini dengan:
INGAT JANGAN GUNAKAN KONFIGURASI INI DI LINGKUNGAN NYATA
sumber