Чому я отримую сторінку за замовчуванням Apache2 Ubuntu замість власної сторінки index.html?


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), чи він працює? Також, може бути, що ви просто забули перезапустити апаш?
Dan

@Dan, дякую за відгук. Я створив сайти, додавши їх до sites-available. У журналі помилок за замовчуванням немає нічого. Я визначив ServerAliasу файлі хостів. Я відключив 000-defaultсайт, але це нічого не змінило. Я перезапустив і перезавантажив апачі багато разів.
Питання

Коли ви відключили сайт за замовчуванням і перезапустили апаш, на ньому все ще відображалася сторінка за замовчуванням index.html або вона відображалася з іншого віртуального хоста? Чи можете ви розмістити вміст одного з файлів vhost, що не поводиться? Це може набагато полегшити нам допомогу.
Dan

@Dan, Дякую за відгук Коли я вніс зміни, ви запропонували, як я вже згадував, нічого не змінилося, це означає, що вона відображала точно таку саму індексну сторінку. Я додав .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

Дякую за цю пропозицію. Я встановлюю рівень журналу для налагодження, і я все ще не отримую абсолютно ніяких записів у файлах журналу помилок. Журнали доступу тепер відображаються щоразу, коли я відкривав сайти, але більше нічого.
Анкета

6

Для мене одна з пропозицій @Dan вирішила це.

sudo a2dissite 000-default.conf
service apache2 reload

Мабуть, конфігурація сайту за замовчуванням змінила мою конфігурацію vhost.


На іншому сервері він поводився інакше, а index.php читався замість index.html. Дуже підступна ситуація
Маргус Пала

2

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


1

Виявляється, проблемою були дозволи.

Коли ви зберігаєте веб-сайт у каталозі, який знаходиться поза межами /var/wwwта з'єднаний символьним посиланням, то вихідний каталог та його батьківський каталог мають мати права доступу 755.

З незрозумілої причини два недобросовісні веб-сайти мали різні дозволи, і робота chmod -R 755в каталозі веб-сайтів та його батьківського каталогу вирішила проблему.


Не слід запускати chmod -R 755каталог, тому що всі файли, що знаходяться там, будуть позначені як "виконувані файли" ...
Alexis Wilke

@AlexisWilke, що є кращою командою для встановлення правильних дозволів?
Запитувач

Нелегка зміна дозволів усіх каталогів, а не стандартних ... findХоча ви можете використовувати . Що - щось на зразок цього: find top-dir-name -type d -exec chmod 755 {} \;.
Алексіс Вілке
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.