Mengapa host virtual Apache di Ubuntu 14.04 tidak berfungsi?

23

Saya menginstal Apache 2.4 pada Ubuntu 14.04 dan berfungsi dengan baik berdasarkan http://localhost/alamat. Tetapi ketika saya mencoba menambahkan host virtual baru, misalnya http://bow.locdan me-restart apache, alamat baru tidak tersedia http://bow.locdan tersedia di http://localhost.

Konfigurasi saya adalah:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Bagaimana saya bisa mendapatkan situs saya http://bow.loc?

Victor Bocharsky
sumber
Lihat jawaban saya di sini . Mendapat masalah serupa dan ternyata menjadi masalah dengan konfigurasi DNS sistem.
jmarceli

Jawaban:

29

Sejak Apache 2.4, setiap file host virtual harus memiliki ekstensi .conf.

Anda dapat mengganti nama setiap file host virtual untuk menyertakan ekstensi .conf:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Gunakan perintah a2ensite untuk menambahkan virtual host:

a2ensite example.com.conf

Dan memuat ulang Apache:

service apache2 reload
Ari Pratomo
sumber
Terima kasih! Dan setelah tindakan ini saya tidak perlu memodifikasi /etc/hostsfile secara manual dan menambahkan host ke dalamnya? Apakah apache akan menulis host baru secara otomatis?
Victor Bocharsky
Apache tidak menulis host baru secara otomatis, Anda harus menulisnya secara manual. CMIIW
Ari Pratomo
Jadi, konfigurasi saya benar, dan masalah agar saya lupa menambahkan host di/etc/hosts
Victor Bocharsky
cara lain adalah memodifikasi apache2.conf dan menghapus ekstensi ".conf" dari direktif "IncludeOptional-enabled / *". Saya menggunakan domain situs web sebagai nama file, jadi saya tidak menyukai persyaratan ".conf" tambahan.
lepe
17

Saya lupa menambahkan host di /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Saya pikir apache melakukannya secara otomatis.

Victor Bocharsky
sumber
Saya tidak harus melakukan itu sebelumnya di server. Saya melakukannya dari klien untuk tujuan pengujian sepanjang waktu. Bisakah Anda mengklarifikasi apa yang Anda katakan di sini?
flickerfly
@ flickerfly Apa maksudmu? Saya membuat poin virtualhosts ke mesin lokal saya untuk menanganinya dengan Apacheserver yang diinstal
Victor Bocharsky
Saya lupa menambahkan ini juga! : P
Rishi Kulshreshtha
Sial, aku menyia-nyiakan satu ini untuk kita di Debian 8 VM! Terima kasih!!!
lucaferrario
@ lucaferrario haha, saya juga. Bug sederhana sulit diungkapkan;) Terima kasih!
Victor Bocharsky
3

Yah, saya telah mencoba semua solusi yang ditawarkan .. tapi sayangnya tidak ada yang berhasil! Sayangnya saya diedit

    /etc/hosts

untuk membuat entri

    127.0.1.1 example.com test.com

dan itu berhasil !!

(Maaf jika saya tidak banyak bicara secara teknis!)

Vineeth Vijayan
sumber
1

Saya menulis skrip python yang akan mengotomatiskan langkah-langkah pembuatan virtual host apache ... video ini menjelaskan caranya, unduh / kode pada GitHub

rakibtg
sumber
-3
Options FollowSymLinks MultiViews

Perlu char '+': + FollowSymLinks + Multiviews

Order allow,deny
Allow from all

Sekarang = Wajibkan semua diberikan

Valentin
sumber
Tolong jelaskan, di mana harus meletakkan ini dan apa fungsinya. Jangan hanya memposting perintah atau artefak konfigurasi. Lihat Bagaimana cara menulis jawaban yang baik?
David Foerster
1
Anda hanya perlu meletakkan tanda + atau - sebelum berbagai Opsi jika Anda menggunakan a - untuk mengecualikannya. Kalau tidak, mereka baik untuk pergi. Wajib semua diberikan untuk Apache 2.4. Baris Orde, Bolehkan adalah sintaks 2.2.
flickerfly