Чому віртуальні хости 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
Dan

Ознайомтесь з моєю відповіддю тут . Отримала подібну проблему, і виявилася проблема з конфігурацією 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 не записує нові хости автоматично, слід записати їх вручну. CMIIW
Арі Пратомо

Отже, мій конфігурація правильний, і проблема в тому, що я забув додати хоста в/etc/hosts
Віктор Бочарський,

інший спосіб - змінити apache2.conf та видалити розширення ".conf" з директиви "Включити необов'язкові сайти / *". Я використовую домени веб-сайтів як імена файлів, тому мені не подобається додаткова вимога ".conf".
lepe

17

Я забув додати хост у /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Я думав, що апаш робить це автоматично.


Мені не доводилося цього робити на сервері. Я все одно це роблю від клієнта для тестування. Чи можете ви уточнити, що ви тут говорите?
мерехтіння

@flickerfly Що ти маєш на увазі? Я зробив свої віртуальні хости на моїй локальній машині, щоб обробляти їх із встановленим Apacheсервером
Віктор Бочарський

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

Чорт, я витратив один наш на Debian 8 VM! Спасибі!!!
lucaferrario

@lucaferrario haha, я теж. Прості помилки важко розкрити;) Ласкаво просимо!
Віктор Бочарський

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. Рядки Порядок, Дозволити - це синтаксис 2.2.
мерехтіння
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.