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

8

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

Насколько я могу судить, я настроил все семь с использованием одного и того же процесса, поэтому я не знаю, чего не хватает этим двум. Кроме того, в моем каталоге журналов Apache у меня есть два файла журналов, 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>
интервьюер
источник
2
Как вы создавали виртуальные хосты? Вы создали их, добавив файлы /etc/apache2/sites-available? Если да, то вы их включили sudo a2ensite <your_site_name>? Есть ли в файле журнала ошибок Apache по умолчанию что-нибудь? И у вас есть файлы ServerAlias ​​или ServerName, настроенные в ваших файлах виртуального хоста? Если вы отключите сайт по умолчанию sudo a2dissite 000-default(вы можете повторно включить его с помощью sudo a2ensite 000-default), он работает? Кроме того, может быть, вы просто забыли перезапустить Apache?
Дан
@ Дэн, спасибо за ответ. Я создал сайты, добавив их в sites-available. В журнале ошибок по умолчанию ничего нет. Я определил ServerAliasв файле hosts. Я отключил 000-defaultсайт, но это ничего не изменило. Я перезагружал и перезагружал apache много раз.
Вопрос
Когда вы отключили сайт по умолчанию и перезапустили apache, на нем все еще отображалась страница index.html по умолчанию или она отображалась на другом виртуальном хосте? Можете ли вы опубликовать содержимое одного из неправильно работающих vhost-файлов? Это может значительно облегчить нам задачу.
Дан
@ Дан, спасибо за ответ. Когда я внес изменения, вы предложили, как я уже говорил, ничего не изменилось, то есть они показали ту же самую индексную страницу по умолчанию. Я добавил .confфайл к своему вопросу.
Вопрос

Ответы:

8

Попробуйте следующее

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

sudo nano /etc/apache2/apache2.conf

Найдите переменную LogLevel и обновите ее с предупреждения по умолчанию до информации или отладки. отладка произведет наибольшее количество вывода.

# 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
2707974
источник
Спасибо за это предложение. Я установил уровень журнала для отладки, и я до сих пор не получаю абсолютно никаких записей в файлах журнала ошибок. Журналы доступа теперь отображаются каждый раз, когда я открывал сайты, но больше ничего.
Вопрос
6

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

sudo a2dissite 000-default.conf
service apache2 reload

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

напыщенность
источник
На другом сервере он вел себя по-другому, и index.php читался вместо index.html. Очень хитрая ситуация
Маргус Пала
2

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

Амин
источник
1

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

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

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

интервьюер
источник
Вы не должны запускать chmod -R 755каталог, потому что все находящиеся там файлы будут помечены как «исполняемые» ...
Алексис Уилк
@AlexisWilke, что является лучшей командой для установки правильных разрешений?
Вопрос
Нелегко изменить права доступа ко всем каталогам, а не к стандартным ... Вы можете использовать это find. Что - то вроде этого: find top-dir-name -type d -exec chmod 755 {} \;.
Алексис Уилке