WAMP: Hilang http: // localhost / dalam url, tautan proyek wamp yang salah


2

Saya punya masalah dengan Wamp yang tidak pernah terjadi sebelumnya, tidak dapat menemukan apa yang salah. Saya memiliki beberapa proyek yang terletak di folder www saya (menjalankan windows 7).

File host saya memiliki garis 127.0.0.1 localhost tidak dikomentari

Ketika saya pergi ke http://localhost/ atau http://127.0.0.1/ dan klik pada nama proyek seperti "situs saya" dari halaman utama panel Wamp, tautannya hanya menunjuk ke "situs saya" dan tidak "http://localhost/mysite"

Karena itu saya tidak dapat melihat situs apa pun, apa yang harus saya lakukan?

Jawaban:


5

WAMPServer 2.5 Beranda, Menu Proyek Anda, dan Host Virtual

Telah ada perubahan konsep di WampServer 2.5 dan ada alasan bagus untuk perubahan ini!

Di WampServer 2.5, sekarang SANGAT dianjurkan untuk membuat Virtual Host untuk setiap proyek Anda, bahkan jika Anda menyimpannya di \wamp\www\subfolder struktur.

Dokumentasi Host Virtual

Contoh Host Virtual

Halaman beranda WampServer (\ wamp \ www \ index.php) sekarang mengharapkan Anda untuk membuat Virtual Host untuk semua proyek Anda dan karenanya hanya akan berfungsi dengan baik jika Anda melakukannya.

Sejarah

Untuk membuat hidup lebih mudah bagi pemula menggunakan WampServer untuk belajar PHP Apache dan MySQL, disarankan agar Anda membuat subfolder di bawah \wamp\www\ map.

wamp
  |-- www
       |-- Chapter1
       |-- Chapter2
       |-- etc

Subfolder ini kemudian akan ditampilkan sebagai tautan di WampServer Homepage di bawah menu yang disebut 'Proyek Anda' dan tautan ini akan berisi tautan ke localhost/subfoldername.

Hanya dapat diterima untuk tutorial sederhana

Hal ini membuat hidup menjadi mudah bagi pemula yang lengkap, dan dapat diterima sebagai contoh bagi mereka yang mengikuti tutorial untuk belajar coding PHP. Namun, itu tidak pernah dimaksudkan untuk digunakan ketika mengembangkan situs web nyata yang nantinya ingin Anda salin ke server yang dihosting secara langsung. Bahkan, jika Anda memang menggunakan mekanisme ini, itu sering menyebabkan masalah karena konfigurasi situs langsung tidak akan cocok dengan konfigurasi pengembangan Anda.

Masalah untuk pengembangan situs web nyata.

Alasan untuk ini adalah, tentu saja, pengaturan DocumentRoot default untuk WAMP adalah

DocumentRoot "c:/wamp/www/"

terlepas dari apa yang disebut subfolder Anda. Ini berarti bahwa kode PHP yang sering digunakan yang menanyakan struktur situs Anda menerima informasi yang berbeda ketika menjalankan WampServer pengembangan Anda dengan apa yang akan diterimanya ketika berjalan di server yang dihosting langsung, di mana konfigurasi DocumentRoot menunjuk ke folder di bagian atas situs web hierarki file. Kode semacam ini ada di banyak kerangka kerja dan CMS, misalnya, WordPress dan Joomla, dll.

Sebagai contoh

Katakanlah kita memiliki proyek yang disebut project1 wamp\www\project1 dan jalankan sebagai localhost/project1/index.php

Inilah yang akan dilaporkan oleh beberapa perintah PHP yang dimaksud:

$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www

Sekarang jika kita telah mendefinisikan situs itu dengan benar menggunakan definisi Host Virtual dan menjalankannya sebagai http://project1, hasil di situs pengembangan WAMPServer akan cocok dengan yang diterima ketika di lingkungan yang dihosting langsung.

$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1

Sekarang, perbedaan ini mungkin tampak sepele pada awalnya, tetapi jika Anda menggunakan kerangka kerja seperti WordPress atau salah satu CMS seperti Joomla misalnya, ini dapat dan memang menyebabkan masalah ketika Anda memindahkan situs Anda ke server langsung.

Cara membuat Virtual Host di WampServer

Sebenarnya, ini seharusnya bekerja pada dasarnya sama untuk setiap server Windows Apache, dengan perbedaan hanya di mana Anda dapat menemukan file konfigurasi Apache.

Ada 3 langkah untuk membuat Virtual Host pertama Anda di Apache, dan hanya 2 jika Anda sudah memilikinya.

  1. Buat definisi Virtual Host.
  2. Tambahkan nama domain baru Anda ke file HOSTS.
  3. Batalkan komentar pada baris di httpd.conf yang menyertakan file definisi Host Virtual.

Langkah 1 , Buat definisi Virtual Host

Edit file yang disebut httpd-hosts.conf yang, untuk WampServer, tinggal di

\wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf

(Nomor versi Apache mungkin berbeda, aktifkan otak sebelum melanjutkan)

Jika ini adalah pertama kalinya Anda mengedit file ini, hapus kode contoh default, ini tidak ada gunanya.

Saya berasumsi kita ingin membuat definisi untuk situs bernama project1 yang hidup

\wamp\www\project1

Sangat penting, pertama kita harus memastikan bahwa localhost masih berfungsi sehingga itu adalah definisi VHOST pertama yang akan kita masukkan ke file ini.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "c:/wamp/www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

Sekarang kami mendefinisikan proyek kami: dan ini tentu saja Anda lakukan untuk setiap proyek Anda saat Anda memulai yang baru.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/project1"
    ServerName project1
    <Directory  "c:/wamp/www/project1">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

CATATAN: Setiap Virtual Host memiliki masing-masing DocumentRoot didefinisikan. Ada juga banyak parameter lain yang dapat Anda tambahkan ke definisi Virtual Host, periksa dokumentasi Apache.

Selain kecil

Cara host virtual bekerja di Apache: Definisi pertama dalam file ini juga akan menjadi situs default, jadi jika nama domain yang digunakan dalam browser tidak cocok dengan domain yang benar-benar didefinisikan host, membuat localhost sebagai domain pertama dalam file akan membuat itu situs yang dimuat jika upaya hack hanya menggunakan Alamat IP Anda. Jadi jika kita memastikan keamanan Apache untuk domain ini SELALU DILAKUKAN

Require local

setiap peretasan biasa dari alamat eksternal akan menerima kesalahan dan tidak masuk ke PC Anda, tetapi jika Anda salah mengeja domain, Anda akan ditampilkan beranda WampServer, karena Anda menggunakan PC yang sama dengan WampServer dan local.

Langkah 2 :

Tambahkan nama domain baru Anda ke file HOSTS. Sekarang kita perlu menambahkan nama domain yang telah kita gunakan dalam definisi Virtual Host ke file HOSTS sehingga Windows tahu di mana menemukannya. Ini mirip dengan membuat catatan DNS A, tetapi hanya terlihat dalam kasus ini di PC khusus ini.

Edit C:\windows\system32\drivers\etc\hosts

File tidak memiliki ekstensi dan harus tetap seperti itu. Perhatikan notepad, karena dapat mencoba dan menambahkan .txt ekstensi jika Anda tidak memiliki editor yang lebih baik. Saya sarankan Anda mengunduh Notepad ++, gratis dan editor yang sangat bagus.

Juga, ini adalah file yang dilindungi, jadi Anda harus mengeditnya dengan hak administrator, jadi luncurkan editor Anda menggunakan Jalankan sebagai administrator opsi menu.

File host akan terlihat seperti ini ketika Anda telah menyelesaikan pengeditan ini

127.0.0.1 localhost
127.0.0.1 project1

::1 localhost
::1 project1

Perhatikan bahwa Anda harus memiliki definisi di sini untuk alamat loopback IPV4 127.0.0.1 dan juga alamat loopback IPV6 ::1 karena Apache sekarang sadar IPV6 dan browser akan menggunakan IPV4 atau IPV6 atau keduanya. Saya tidak tahu bagaimana memutuskan mana yang akan digunakan, tetapi dapat digunakan jika Anda memiliki tumpukan IPV6 dihidupkan, dan sebagian besar OS Windows lakukan pada XP SP3.

Sekarang kita harus memberi tahu Windows untuk memperbarui cache nama domainnya, jadi luncurkan jendela perintah lagi menggunakan Jalankan sebagai administrator opsi menu lagi, dan lakukan hal berikut.

net stop dnscache
net start dnscache

Ini memaksa Windows untuk menghapus cache nama domainnya dan memuatnya kembali, dengan memuatnya kembali akan membaca kembali file HOSTS jadi sekarang ia tahu tentang domain tersebut project1.

Langkah 3 : Batalkan komentar pada baris di httpd.conf yang menyertakan file definisi Host Virtual.

Edit httpd.conf Anda, gunakan menu wampmanager.exe untuk memastikan Anda mengedit file yang benar.

Temukan baris ini di httpd.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Dan hapus saja # untuk menghapus komentar garis itu.

Untuk mengaktifkan perubahan ini di Anda yang menjalankan Apache, kita sekarang harus berhenti dan restart layanan Apache

wampmanager.exe -> Apache -> Service -> Restart Service

Sekarang jika ikon WAMP dalam baki sistem tidak menjadi HIJAU lagi, itu berarti Anda mungkin telah melakukan sesuatu yang salah di \wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf mengajukan.

Jika demikian, berikut ini adalah mekanisme yang berguna untuk mencari tahu apa yang salah. Ia menggunakan fitur Apache exe (httpd.exe) untuk memeriksa file konfigurasi dan melaporkan kesalahan dengan nama file dan nomor baris.

Buka jendela perintah.

cd \wamp\bin\apache\apache2.4.9\bin
httpd -t

Jadi perbaiki kesalahan dan tes ulang lagi sampai Anda mendapatkan output

Syntax OK

Sekarang ada satu hal lagi.

Sebenarnya ada 2 item menu baru pada sistem menu wampmanager. Yang disebut [b] 'Proyek Saya' [/ b] yang dinyalakan secara default. Dan yang kedua, disebut [b] 'Tuan Virtual Saya' [/ b], yang tidak diaktifkan secara default.

'Proyek Saya' akan mencantumkan sub direktori dari direktori \ wamp \ www dan memberikan tautan untuk meluncurkan situs dalam sub direktori tersebut. Seperti yang saya katakan sebelumnya, ia meluncurkan 'project1` dan bukan' localhost / project1 ', jadi untuk membuat tautan berfungsi, kita harus membuat definisi Host Virtual untuk membuat tautan ini benar-benar meluncurkan situs itu di browser Anda, tanpa definisi Host Virtual itu kemungkinan akan meluncurkan pencarian web untuk nama situs sebagai kata kunci atau hanya mengembalikan situs yang tidak ditemukan kondisinya.

Item menu 'My Virtual Hosts' sedikit berbeda. Ini mencari file yang digunakan untuk mendefinisikan Virtual Hosts (kita akan membahasnya dalam satu menit) dan membuat tautan menu untuk setiap parameter ServerName yang ditemukannya dan membuat item menu untuk masing-masing. Ini mungkin tampak sedikit membingungkan karena setelah kita membuat definisi Virtual Host untuk sub direktori dari folder \ wamp \ www, beberapa item akan muncul di kedua menu 'Proyek Saya' dan menu 'Host Virtual Saya'.

Bagaimana cara mengaktifkan menu 'My Virtual Hosts' lainnya?

  • Buat cadangan file \ wamp \ wampmanager.tpl, kalau-kalau Anda membuat kesalahan, itu file yang sangat penting.
  • Edit \ wamp \ wampmanager.tpl
  • Temukan parameter ini ;WAMPPROJECTSUBMENU, ada di bagian '[Menu.Left]'.
  • Tambahkan parameter baru ini ;WAMPVHOSTSUBMENU sebelum atau sesudah ;WAMPPROJECTSUBMENU parameter.
  • Simpan file.
  • Sekarang klik kanan ikon wampmanager, dan pilih 'Refresh'. Jika ini tidak menambahkan menu, 'keluar' dan restart wampmanager.

Catatan Besar Menu baru hanya akan muncul jika Anda sudah memiliki beberapa Host Virtual! Jika tidak, Anda tidak akan melihat perbedaan sampai Anda menentukan VHOST.

Sekarang jika Anda membawa ini ke ekstensi logisnya

Anda sekarang dapat memindahkan kode situs web Anda sepenuhnya di luar \wamp\ struktur folder hanya dengan mengubah parameter DocumentRoot dalam definisi VHOST. Jadi, misalnya, Anda bisa melakukan ini:

Buat folder pada disk WAMP atau disk lain (waspadalah terhadap drive jaringan, mereka sedikit lebih rumit)

D:
MD websites
CD websites
MD example.com
CD example.com
MD www

Anda sekarang menyalin kode situs Anda ke, atau mulai membuatnya di \websites\example.com\www folder dan tentukan VHOST Anda seperti ini:

<VirtualHost *:80>
    DocumentRoot "d:/websites/example.com/www"
    ServerName example.dev
    ServerAlias www.example.dev
    <Directory  "d:/websites/example.com/www">
        AllowOverride All
        Require all granted
    </Directory>

    php_flag display_errors Off
    php_flag log_errors On

    php_value max_upload_size 40M
    php_value max_execution_time 60
    php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>

Kemudian tambahkan domain pengembangan baru ini ke file HOSTS:

127.0.0.1 localhost
::1 localhost

127.0.0.1 project1
::1 project1

127.0.0.1 example.dev
::1 example.dev

CATATAN: Bukan ide yang baik untuk menggunakan ServerName atau ServerAlias ​​yang sama dengan nama domain langsung Anda, seolah-olah kami telah menggunakan example.com sebagai ServerName, itu berarti kami tidak lagi dapat mengunjungi situs langsung nyata dari PC ini. karena akan mengarahkan example.com ke 127.0.0.1, yaitu PC ini dan tidak keluar ke internet.

JUGA: Melihat bahwa saya telah mengizinkan situs ini diakses dari internet dari dalam definisi VHOST, perubahan ini hanya berlaku untuk situs ini dan tidak ada yang lain. Sangat berguna untuk memungkinkan klien melihat perubahan Anda selama satu jam atau lebih tanpa harus menyalinnya ke server langsung. Ini berarti bahwa kita harus mengedit file ini secara manual untuk menghidupkan dan mematikan akses ini daripada menggunakan item menu Put Online / Offline di wampmanager.

Juga, saya telah menambahkan beberapa modifikasi pada konfigurasi PHP, sekali lagi yang hanya akan berlaku untuk situs yang satu ini. Sangat berguna ketika memelihara situs dengan persyaratan khusus tidak seperti semua situs lain yang Anda kelola. Saya kira kita dapat mengasumsikan dari parameter yang digunakan bahwa ia memiliki halaman yang berjalan lama di suatu tempat dan itu ditulis dengan sangat buruk dan tidak akan berjalan dengan kesalahan yang ditampilkan pada browser tanpa membuat halaman berantakan. Percayalah, situs seperti ini ada dan orang-orang masih menginginkannya dikelola sangat . Tetapi ini berarti kita hanya perlu mengubah parameter ini untuk situs spesifik ini dan tidak secara global ke semua situs Virtual yang berjalan di WampServer.


1

Jawaban RiggsFolly bekerja untuk saya ...

Juga ingin menambahkan jika Anda ingin memberikan izin ke folder dan mengaksesnya di browser.

Buat entri terpisah di file httpd.conf

<Directory "d:/websites/example.com/www">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

Anda harus benar-benar lebih jelas apa sebenarnya yang Anda tambahkan ke jawaban RiggsFolly karena saya sudah menurunkan Anda karena tidak jelas atau menyalin langsung dari jawaban keluar ... (petunjuk: "untuk mengaksesnya di browser" belum tentu sama sebagai "tampilkan file dalam folder dan ikuti symlink").
zagrimsan

Ulasan jawaban saya
Dave1

-2

Buka "www" dan edit index.php

menemukan: $ suppress_localhost = true;

dan ganti dengan $ suppress_localhost = false;

Kemudian restart server Anda.


2
Meskipun ini dapat menjawab pertanyaan, akan lebih baik jika Anda bisa memberikan penjelasan Mengapa itu melakukannya. Perhatikan bahwa pertanyaan awal tidak menyebutkan penggunaan PHP.
DavidPostill
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.