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


Я установил 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?


22
2018-04-19 15:47


происхождения


Связанный: askubuntu.com/a/362992/8698 - Dan
Проверьте мой ответ Вот, Похожая проблема, и это проблема с конфигурацией системы DNS. - jmarceli


ответы:


Начиная с 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

29
2018-04-20 09:53



Благодаря! И после этих действий мне не нужно вручную модифицировать /etc/hosts файл и добавить к нему хосты? Будет ли apache автоматически писать новые хосты? - Victor Bocharsky
Apache не записывает новые хосты автоматически, вы должны написать его вручную. CMIIW - Ari Pratomo
Итак, мой конфиг прав, и проблема, чтобы я забыл добавить хост в /etc/hosts - Victor Bocharsky
другим способом является изменение apache2.conf и удаление расширения «.conf» из директивы «IncludeOptional sites-enabled / *». Я использую веб-сайты как имена файлов, поэтому мне не нравится дополнительное требование «.conf». - lepe


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

127.0.0.1   localhost
127.0.0.1   bow.loc

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


15
2018-04-19 15:59



Мне не приходилось это делать на сервере. Тем не менее, я делаю это от клиента для тестирования. Можете ли вы пояснить, что вы здесь говорите? - flickerfly
@flickerfly Что ты имеешь в виду? Я сделал свои пункты virtualhosts своей локальной машине, чтобы обрабатывать их с установленными Apache сервер - Victor Bocharsky
Я тоже забыл добавить это! :П - Rishi Kulshreshtha
Черт, я потратил впустую один на это на Debian 8 VM! Благодаря!!! - lucaferrario
@ lucaferrario haha, я тоже. Простые ошибки трудно выявить;) Добро пожаловать! - Victor Bocharsky


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


1
2018-01-26 05:07





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

    /etc/hosts

делать вход

    127.0.1.1 example.com test.com

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

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


0
2017-07-09 07:31





Options FollowSymLinks MultiViews

Need char '+': + FollowSymLinks + Multiviews

Order allow,deny
Allow from all

Now = Требовать все предоставленные


-2
2018-04-07 08:24



Пожалуйста, объясните, где поставить это и что он делает. Не просто отправляйте команды или артефакты конфигурации. Видеть Как написать хороший ответ? - David Foerster
Вам нужно только поставить + или - перед различными опциями, если вы используете a - для исключения. В противном случае они идут хорошо. Требуется все предоставленное для Apache 2.4. Строки Order, Allow - синтаксис 2.2. - flickerfly