Почему я получаю страницу Apache2 Ubuntu по умолчанию вместо своей собственной index.html страница?

У меня есть компьютер с Ubuntu 14.10, который используется для местный тестирование веб-сайта, он не работает в Интернете. На нем у меня настроено семь веб-сайтов. Однако, когда я получаю доступ к двум из семи, я получаю Apache2 Ubuntu Default Page вместо моей собственной индексной страницы.

Насколько я могу судить, я настроил все семь, используя один и тот же процесс, поэтому я не знаю, чего не хватает этим двум. Кроме того, в моем каталоге Apache logs у меня есть два файла журнала, error и access для каждого из двух сайтов с неправильным поведением, но все они пусты. Когда я перезапущу apache2 сервис, ошибок нет. Я несколько раз повторял свои шаги и не вижу никакой разницы между рабочими сайтами и нерабочими сайтами.

Какие у меня есть варианты для диагностики этой проблемы? Могу ли я каким-то образом заставить более подробные журналы ошибок? Есть ли где-нибудь другой журнал, на который я могу сослаться?

Вот пример того, как .conf файл для одного из неисправных сайтов:

<VirtualHost *:80>   ServerName www.local_example.com   ServerAlias local_example.com   ServerAdmin address@example.com   DocumentRoot /var/www/Websites/example.com   <Directory /var/www/Websites/example.com/>       Options Indexes FollowSymLinks MultiViews       # pcw AllowOverride None       AllowOverride All       Order allow,deny       allow from all       # This directive allows us to have apache2's default start page       # in /apache2-default/, but still have / go to the right place       # Commented out for Ubuntu       #RedirectMatch ^/$ /apache2-default/   </Directory>   ErrorLog /home/example/Apache_Logs/local_example.com_error.log   # Possible values include: debug, info, notice, warn, error, crit,   # alert, emerg.   LogLevel warn   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined   ServerSignature On</VirtualHost>

Попробуйте выполнить следующее

Включить подробные журналы

sudo nano /etc/apache2/apache2.conf

Найдите переменную LogLevel и обновите ее с предупреждения по умолчанию на info или debug. debug выдаст наибольший объем выходных данных.

# LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.# LogLevel debug

Перезапустить Apache

sudo service apache2 restart

Apache включает в себя небольшой приятный инструмент для проверки синтаксиса

apache2ctl -t

Проверка Определений Виртуальных Хостов

apache2ctl -S

Для меня одно из предложений от @ Dan решило эту проблему.

sudo a2dissite 000-default.confservice apache2 reload

По-видимому, конфигурация сайта по умолчанию переопределяла мою конфигурацию vhost.

после установки index.html имеет более высокий приоритет, поэтому вы все еще видите страницу Ubuntu по умолчанию, проверьте эту папку var/www/html/переименуйте или удалите эту страницу просто так

Оказывается, проблема была в разрешениях.

Когда вы сохраняете веб-сайт в каталоге за пределами /var/www и соединен символической ссылкой, затем исходный каталог, и его родительский каталог должны иметь разрешения на 755.

По какой-то неизвестной причине два неправильно работающих сайта имели разные разрешения и запускали chmod -R 755 в каталоге веб-сайта и его родитель каталог, решил проблему.

Я боролся с той же проблемой.

Я даже удалил /var/www/html, сделал sudo a2dissite 000-default и удален /etc/apache2/sites-available/000-default.conf и даже тогда проблема сохранялась.

В конце концов я понял, что index.html был сохранен из-за некоторого жесткого кодирования в коде c++.

Встроенный по умолчанию DirectoryIndex в /mods-available/dir.conf и происходит это так:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Мой проект не имел никакого index.html просто index.php

Решение состояло в том, чтобы добавить DirectoryIndex на мой vhost .conf в /etc/apache2/sites-available/ подобный этому:

<Directory "/var/www/mysite">   RewriteEngine On   AllowOverride All   Options Indexes FollowSymLinks MultiViews   Require all granted           #extra config to disable default index.html   DirectoryIndex disabled   DirectoryIndex index.php</Directory>

Это полностью решило проблему для меня.

Как вы создали виртуальные хосты? Вы создали их, добавив файлы в /etc/apache2/sites-available? Если да, то включили ли вы их с помощью sudo a2ensite <your_site_name>? Есть ли что-нибудь в файле журнала ошибок apache по умолчанию? И есть ли у вас ServerAlias или ServerName, настроенные в ваших файлах виртуального хоста? Если вы отключите сайт по умолчанию sudo a2dissite 000-default (вы можете повторно включить его с помощью sudo a2ensite 000-default), будет ли он работать? Кроме того, может быть, вы просто забыли перезапустить apache?

@Dan, спасибо, что откликнулся. Я создал сайты, добавив их в раздел “доступные сайты”. В журнале ошибок по умолчанию ничего нет. Я определил “ServerAlias” в файле hosts. Я отключил сайт 000-default, но это ничего не изменило. Я много раз перезапускал и перезагружал apache.

Когда вы отключили сайт по умолчанию и перезапустили apache, он по-прежнему показывал сайт по умолчанию index.html страница, или она показывала страницу с другого виртуального хоста? Можете ли вы опубликовать содержимое одного из неправильно работающих файлов vhost? Это может значительно облегчить нам задачу по оказанию помощи.

@Dan, спасибо тебе за ответ. Когда я внес предложенные вами изменения, как я уже упоминал, ничего не изменилось, а это означает, что на нем отображалась точно такая же индексная страница по умолчанию. Я добавил файл .conf к своему вопросу.