Saat ini saya sedang mengerjakan sebuah proyek dan saya ingin mengujinya di dua laptop di rumah di mana satu laptop terhubung ke localhost di yang lain. Saya menggunakan XAMPP. Bagaimana saya melakukan ini?
Saat ini saya sedang mengerjakan sebuah proyek dan saya ingin mengujinya di dua laptop di rumah di mana satu laptop terhubung ke localhost di yang lain. Saya menggunakan XAMPP. Bagaimana saya melakukan ini?
Jawaban:
Itu pasti mungkin. Kami akan mengambil kasus umum dengan Apache di sini.
Katakanlah Anda penggemar berat Symfony2 dan Anda ingin mengakses situs web symfony Anda di http://symfony.local/
dari 4 komputer yang berbeda (yang utama hosting situs web Anda, serta Mac, Windows dan distro Linux yang terhubung (nirkabel atau tidak) ke komputer utama.
1 Siapkan host virtual :
Pertama-tama Anda perlu mengatur host virtual di httpd-vhosts.conf
file apache Anda . Pada XAMP , Anda dapat menemukan file ini di sini: C:\xampp\apache\conf\extra\httpd-vhosts.conf
. Pada MAMP , Anda dapat menemukan file ini di sini: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
. Langkah ini mempersiapkan server Web pada komputer Anda untuk menangani symfony.local
permintaan. Anda harus memberikan nama Host Virtual serta folder root / utama situs web Anda. Untuk melakukan ini, tambahkan baris berikut di akhir file itu. Anda perlu mengubah DocumentRoot
ke mana pun folder utama Anda. Di sini saya telah mengambil /Applications/MAMP/htdocs/Symfony/
sebagai root dari situs web saya.
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 Konfigurasikan file host Anda :
Agar klien (browser Anda dalam hal ini) untuk memahami apa yang symfony.local
sebenarnya berarti, Anda perlu mengedit file host di komputer Anda. Setiap kali Anda mengetik URL di browser Anda, komputer Anda mencoba untuk memahami apa artinya! symfony.local
tidak berarti apa-apa untuk komputer. Jadi itu akan mencoba untuk menyelesaikan nama symfony.local
ke alamat IP. Ini akan melakukan ini dengan terlebih dahulu melihat ke file host di komputer Anda untuk melihat apakah ia dapat mencocokkan alamat IP dengan apa yang Anda ketikkan pada bilah alamat. Jika tidak bisa, maka akan meminta server DNS . Kuncinya di sini adalah menambahkan yang berikut ke file host Anda.
/private/etc/hosts
;/etc/hosts
;\Windows\system32\private\etc\hosts
;\Windows\system32\drivers\etc\hosts
;\Windows\system32\drivers\etc\hosts
;Hosts file
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1 symfony.local
Mulai sekarang, setiap kali Anda mengetik symfony.local di komputer ini, komputer Anda akan menggunakan antarmuka loopback untuk terhubung ke symfony.local. Ini akan memahami bahwa Anda ingin bekerja di localhost (127.0.0.1).
3 Akses symfony.local
dari komputer lain :
Kami akhirnya sampai pada pertanyaan utama Anda yaitu:
Bagaimana saya sekarang dapat mengakses situs web saya melalui komputer lain?
Nah sekarang ini mudah! Kami hanya perlu memberi tahu komputer lain bagaimana mereka bisa menemukan symfony.local
! Bagaimana kita melakukan ini?
3a Dapatkan alamat IP komputer yang menghosting situs web :
Pertama-tama kita perlu mengetahui alamat IP di komputer yang meng-host situs web (yang sudah kami kerjakan sejak awal). Di terminal, pada tipe MAC dan LINUXifconfig |grep inet
, pada WINDOWS
tipe ipconfig
. Misalkan alamat IP komputer ini adalah 192.168.1.5 .
3b Edit file host di komputer tempat Anda mencoba mengakses situs web. :
Sekali lagi, di MAC , file ini ada di /private/etc/hosts
; pada LINUX , di /etc/hosts
; dan pada WINDOWS , di \Windows\system32\private\etc\hosts
(jika Anda menggunakan WINDOWS 7 , file ini ada di \Windows\system32\drivers\etc\hosts
) .. Triknya sekarang adalah dengan menggunakan alamat IP komputer yang kami coba akses / bicarakan:
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 Akhirnya nikmati hasilnya di browser Anda
Sekarang Anda dapat masuk ke browser dan mengetik http://symfony.local
untuk melihat situs web Anda dengan indah di komputer yang berbeda! Perhatikan bahwa Anda dapat menerapkan strategi yang sama jika Anda adalah pengguna OSX untuk menguji situs web Anda di Internet Explorer melalui Virtual Box (jika Anda tidak ingin menggunakan komputer Windows). Ini dijelaskan dengan indah di Crafting Your Windows / IE Test Environment di OSX .
Anda mungkin bertanya-tanya bagaimana cara mengakses situs web hosting lokal Anda dari perangkat seluler. Dalam beberapa kasus, Anda tidak akan dapat memodifikasi file host (iPhone, iPad ...) di perangkat Anda (tidak termasuk jailbreaking).
Nah, solusinya kemudian adalah menginstal server proxy pada mesin hosting situs web dan terhubung ke proxy itu dari iphone Anda. Ini sebenarnya dijelaskan dengan sangat baik dalam posting berikut dan tidak terlalu lama untuk diatur:
Pada Mac, saya akan merekomendasikan: Menguji situs web Mac OS X menggunakan nama host lokal pada perangkat seluler : Menggunakan SquidMan sebagai proxy. Ini solusi 100% gratis. Beberapa orang juga dapat menggunakan Charles sebagai server proxy tetapi harganya $ 50.
Di Linux, Anda dapat mengadaptasi cara Mac OS di atas dengan menggunakan Squid sebagai server proxy.
Di Windows, Anda bisa melakukannya menggunakan Fiddler . Solusinya dijelaskan dalam posting berikut: Memantau lalu lintas iPhone dengan Fiddler
@Dre. Adakah cara yang mungkin untuk mengakses situs web dari komputer lain dengan tidak mengedit file host secara manual? katakanlah saya memiliki 100 komputer yang ingin mengakses situs web
Ini adalah pertanyaan yang menarik, dan karena terkait dengan pertanyaan OP, izinkan saya membantu.
Anda harus melakukan perubahan pada jaringan Anda sehingga setiap mesin tahu di mana situs web Anda di-host. Kebanyakan perute sehari-hari tidak melakukan itu sehingga Anda harus menjalankan Server DNS Anda sendiri di jaringan Anda.
Mari kita berpura-pura memiliki router (192.168.1.1). Router ini memiliki server DHCP dan mengalokasikan alamat IP ke 100 mesin di jaringan.
Sekarang, katakanlah Anda memiliki, sama seperti di atas, pada jaringan yang sama, mesin 192.168.1.5
yang memiliki situs web Anda. Kami akan memanggil mesin itu pompei.
$ echo $HOSTNAME
pompei
Sama seperti sebelumnya, bahwa mesin pompeipada 192.168.1.5
berjalan sebuah Server HTTP yang melayani website Anda symfony.local
.
Untuk setiap mesin untuk mengetahui yang symfony.local
dihosting pada pompeikita sekarang akan membutuhkan Server DNS kustom pada jaringan yang tahu di mana symfony.local
dihosting. Perangkat di jaringan kemudian akan dapat menyelesaikan nama domain yang dilayani oleh pompeiinternal.
Step 1: DNS Server
Siapkan Server DNS di jaringan Anda. Ayo aktifkanpompei untuk kenyamanan dan gunakan sesuatu seperti dnsmasq .
Dnsmasq menyediakan Domain Name System (DNS) forwarder , ... .
Kami ingin pompeimenjalankan DNSmasq untuk menangani permintaan Hey, pompei, where is symfony.local
dan respons DNS Hey, sure think, it is on 192.168.1.5 but don't take my word for it
.
Silakan instal dnsmasq, file konfigurasi dnsmasq biasanya /etc/dnsmasq.conf
tergantung pada lingkungan Anda.
Saya pribadi menggunakan no-resolv
dan server google server=8.8.8.8 server=8.8.8.4
.
* Catatan: * SELALU me-restart DNSmasq jika memodifikasi / etc / hosts file karena tidak ada perubahan akan berlaku sebaliknya.
Step 2: Firewall
Agar berfungsi, pompeiperlu mengizinkan paket 'domain' yang masuk dan keluar, yang pergi dari dan ke port 53. Tentu saja! Ini adalah paket DNS dan jika pompeitidak memungkinkan, tidak ada cara untuk mencapai server DNS Anda sama sekali. Silakan dan buka port 53 itu. Di linux, Anda akan menggunakannya secara klasik iptables
untuk ini.
Membagikan apa yang saya hasilkan tetapi Anda kemungkinan besar harus menyelami firewall Anda dan memahami semuanya dengan baik.
#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
Step 3: Router
Beri tahu router Anda bahwa server dns Anda aktif 192.168.1.5
sekarang. Sebagian besar waktu, Anda bisa masuk ke router dan mengubahnya secara manual dengan sangat mudah.
Itu saja, Ketika Anda menggunakan mesin dan memintanya symfony.local
, ia akan menanyakan Server DNS Anda di mana symfony.local
dihosting, dan segera setelah ia menerima jawabannya dari server DNS, maka akan mengirimkan permintaan HTTP yang tepat ke pompeion 192.168.1.5
.
Saya membiarkan Anda bermain dengan ini dan menikmati perjalanannya. 2 langkah ini adalah pedoman utama, jadi Anda harus men-debug dan menghabiskan beberapa jam jika ini adalah pertama kalinya Anda melakukannya. Katakanlah ini jaringan yang sedikit lebih maju, ada Server DNS primer, Server DNS sekunder, dll . Semoga berhasil!
host
file secara manual? katakanlah saya memiliki 100 komputer yang ingin mengakses situs web
Untuk pengujian pada kedua laptop pada nirkabel yang sama dan di internet Anda dapat menggunakan layanan seperti http://localhost.run/ atau https://ngrok.com/
Asalkan kedua mesin berada dalam workgroup yang sama, buka cmd.exe
pada mesin yang ingin Anda sambungkan, ketik ipconfig
dan catat IP di IPv4 Address
baris tersebut.
Kemudian, pada mesin yang ingin Anda sambungkan, gunakan http:// + the IP of the target machine
.
Itu harus dilakukan.
Di Mac OS X:
Di terminal, jalankan ifconfig | grep 192.
untuk mendapatkan IP internal mesin Anda di jaringan saat ini. Mungkin seperti itu192.168.1.140
Mulai server. Misalnya, node server.js
dapat memulai server di beberapa port.
Di ponsel Anda, kunjungi 192.168.1.140:3000
atau port apa pun yang dijalankan server Anda.
Alat ini banyak menyelamatkan saya, karena saya tidak memiliki izin Admin di mesin saya dan sudah menginstal nodejs. Untuk beberapa alasan konfigurasi di jaringan saya tidak memberi saya akses ke komputer lain hanya dengan menunjuk IP di browser.
# Using a local.dev vhost
$ browser-sync start --proxy
# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001
# Using a localhost address
$ browser-sync start --proxy localhost:8001
# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1
browser-sync start --proxy localhost:3000
shell yang terpisah. Pada perangkat lain yang terhubung ke jaringan saya ketik: ${computerIP}:3000
tapi saya tidak melihat apa pun. Saya kira ada sesuatu yang harus saya berikan.
mungkin saja firewall Anda mencegah Anda mengakses server web localhost.
Masukkan alamat IP dari kedua keamanan internet keamanan jaringan antivirus komputer Anda sebagai alamat IP aman jika diperlukan.
Cara menemukan alamat IP PC windows Anda: Mulai> (Jalankan) ketik: cmd (Enter)
(Ini membuka prompt kotak hitam)
ketik ipconfig (Enter)
Katakanlah Apache atau server web IIS Anda diinstal pada PC Anda : 192.168.0.3
dan Anda ingin mengakses server web dengan laptop Anda. (IP laptop 192.168.0.5)
Di laptop Anda, ketik http://192.168.0.3/ untuk mengakses server web Anda di PC.
Agar semua hal ini berfungsi, Anda harus menginstal server web dengan benar (mis. IIS, Apache, XAMP, WAMP dll).
Pada PC Anda, Anda ketik: http: // localhost / di dalam browser Firefox atau Internet Eplorer Anda untuk mengakses data di server web Anda.
Jika tidak berhasil, coba ping PC Anda dari laptop Anda:
Buka perintah propmt di laptop Anda: Mulai> cmd (Enter)
ping 192.168.1.3 (Enter)
Jika ping gagal, maka firewall memblokir koneksi Anda atau jaringan Anda kabel salah. Mulai ulang modem atau sakelar jaringan Anda dan mesin Anda.
Tutup program seperti program obrolan yang menggunakan porta Anda.
Anda juga dapat mencoba nomor port lain: http: 192.168.0.3: 80 atau http: 192.168.0.3: 81 atau nomor acak apa pun di akhir
Ini adalah catatan tambahan jika seseorang masih tidak dapat mengakses localhost dari perangkat lain setelah mengikuti langkah di atas. Ini mungkin karena apache ports.conf telah dikonfigurasi untuk melayani secara lokal (127.0.0.1) dan bukan ke luar.
periksa yang berikut, (untuk ubuntu apache2)
$ cat /etc/apache2/ports.conf
jika yang berikut ini diatur,
NameVirtualHost *:80
Listen 127.0.0.1:80
lalu ubah kembali ke nilai default
NameVirtualHost *:80
Listen 80
Jika Anda menggunakan Windows, gunakan ipconfig untuk mendapatkan alamat IPv4 lokal, dan kemudian tentukan di bawah file konfigurasi Apache Anda: httpd.conf , seperti:
Listen: 10.20.30.40:80
Mulai ulang server Apache Anda dan uji dari komputer lain di jaringan.