Pertanyaan Mengapa virtual host Apache pada Ubuntu 14.04 tidak berfungsi?


Saya menginstal Apache 2.4 pada Ubuntu 14.04 dan itu bekerja dengan baik http://localhost/ alamat. Tetapi ketika saya mencoba menambahkan virtual host baru, misalnya http://bow.loc dan restart apache, alamat baru tidak tersedia http://bow.loc dan 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?


22
2018-04-19 15:47


asal


Terkait: askubuntu.com/a/362992/8698 - Dan
Lihat jawaban saya sini. Punya masalah serupa dan ternyata menjadi masalah dengan konfigurasi DNS sistem. - jmarceli


Jawaban:


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

Anda dapat mengganti nama setiap file host virtual untuk memasukkan 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 muat ulang Apache:

service apache2 reload

29
2018-04-20 09:53



Terima kasih! Dan setelah tindakan ini saya tidak perlu memodifikasi secara manual /etc/hosts file dan tambahkan host ke sana? 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 "IncludeOptional sites-enabled / *" direktif. Saya menggunakan domain situs web sebagai nama file, jadi saya tidak menyukai persyaratan ".conf" ekstra. - lepe


Saya lupa menambahkan host /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Saya pikir apache melakukannya secara otomatis.


15
2018-04-19 15:59



Saya tidak harus melakukan itu setiap saat sebelumnya di server. Saya melakukannya dari klien untuk tujuan pengujian sepanjang waktu. Bisakah Anda menjelaskan apa yang Anda katakan di sini? - flickerfly
@flickerfly Apa maksudmu? Saya membuat poin virtualhosts saya ke mesin lokal saya untuk menangani mereka dengan terinstal Apache server - Victor Bocharsky
Saya lupa menambahkan ini juga! : P - Rishi Kulshreshtha
Sial, saya menyia-nyiakan satu ini pada Debian 8 VM! Terima kasih!!! - lucaferrario
@ lucaferrario haha, saya juga. Bug sederhana sulit diungkapkan;) Terima kasih kembali! - Victor Bocharsky


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


1
2018-01-26 05:07





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

    /etc/hosts

untuk masuk

    127.0.1.1 example.com test.com

dan itu berhasil !!

(Maaf jika saya tidak berbicara banyak secara teknis!)


0
2017-07-09 07:31





Options FollowSymLinks MultiViews

Butuh char '+': + FollowSymLinks + Multiviews

Order allow,deny
Allow from all

Sekarang = Wajib semua diberikan


-2
2018-04-07 08:24



Tolong jelaskan, di mana untuk menempatkan ini dan apa yang dilakukannya. Jangan hanya memposting perintah atau artefak konfigurasi. Lihat Bagaimana saya menulis jawaban yang bagus? - David Foerster
Anda hanya perlu meletakkan + atau - sebelum berbagai Pilihan jika Anda menggunakan - untuk mengecualikannya. Jika tidak, mereka baik untuk pergi. Diperlukan semua yang diberikan adalah untuk Apache 2.4. The Order, Allow lines adalah sintaks 2.2. - flickerfly