Почему виртуальные хосты Apache в Ubuntu 14.04 не работают?


23

Я установил Apache 2.4 на Ubuntu 14.04, и он работал нормально по http://localhost/адресу. Но когда я попытался добавить новый виртуальный хост, например, http://bow.locи перезапустить apache, новый адрес был недоступен http://bow.locи недоступен http://localhost.

Моя конфигурация:

<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>

Как я могу получить свой сайт http://bow.loc?


Связанный: askubuntu.com/a/362992/8698
Дан

Проверьте мой ответ здесь . Возникла похожая проблема, и оказалось, что это проблема с настройкой системы DNS.
jmarceli

Ответы:


29

Начиная с Apache 2.4 каждый файл виртуального хоста должен иметь расширение .conf.

Вы можете переименовать каждый файл виртуального хоста, чтобы включить расширение .conf:

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

Используйте команду a2ensite, чтобы добавить виртуальный хост:

a2ensite example.com.conf

И перезагрузите Apache:

service apache2 reload

Благодарность! И после этих действий мне не нужно вручную изменять /etc/hostsфайл и добавлять хосты к нему? Apache будет писать новые хосты автоматически?
Виктор Бочарский

Apache не пишет новые хосты автоматически, вы должны написать это вручную. CMIIW
Ари Пратомо

Итак, мой конфиг правильный, и проблема в том, что я забыл добавить хост/etc/hosts
Виктор Бочарский

Другой способ - изменить apache2.conf и удалить расширение «.conf» из директивы IncludeOptional sites-enabled / *. Я использую доменные имена в качестве имен файлов, поэтому мне не нравится дополнительное требование «.conf».
Лепе

17

Я забыл добавить хост в /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Я думал, что Apache делает это автоматически.


Я не должен был делать это в любое время на сервере. Я делаю это с клиента для тестирования все время, хотя. Можете ли вы уточнить, что вы говорите здесь?
flickerfly

@flickerfly Что ты имеешь в виду? Я указал виртуальным хостам на мою локальную машину, чтобы обработать их с установленным Apacheсервером
Виктор Бочарский,

Я также забыл добавить это! : P
Риши Кульшрешта

Черт, я потратил впустую на нашу виртуальную машину Debian 8! Благодарность!!!
Lucaferrario

@lucaferrario хаха, я тоже. Простые ошибки трудно выявить;) Всегда пожалуйста!
Виктор Бочарский

3

Ну, я пытался все эти решения, предлагаемые .. но, к сожалению, ничего не получалось! Увы я отредактировал

    /etc/hosts

сделать запись

    127.0.1.1 example.com test.com

и это сработало !!

(Извините, если я не говорю много технически!)


1

Я написал скрипт на Python, который будет автоматизировать шаги создания виртуального хоста Apache ... В этом видео объясняется, как загрузить / написать код на GitHub.


-3
Options FollowSymLinks MultiViews

Нужен символ '+': + FollowSymLinks + Multiviews

Order allow,deny
Allow from all

Сейчас = требуется все предоставлено


Пожалуйста, объясните, где поставить это и что оно делает. Не просто публиковать команды или артефакты конфигурации. Смотрите, как мне написать хороший ответ?
Дэвид Фёрстер,

1
Вам нужно только поставить + или - перед различными опциями, если вы используете -, чтобы исключить один. В противном случае они хороши, чтобы пойти. Обязательно все предоставлено для Apache 2.4. Строки Order, Allow - это синтаксис 2.2.
flickerfly
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.