У меня есть компьютер 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>
Оказывается, что проблемой были полномочия.
при хранении веб-сайта в каталоге за пределами /var/www
и соединенные символьной ссылкой, тогда исходный каталог, и его родительский каталог должен иметь полномочия 755
.
По некоторой неизвестной причине, два неправильно себя ведущих сайта имели различные полномочия, и выполнение chmod -R 755
на каталоге веб-сайта и родитель каталог, решило проблему.
Попробуйте следующий
, Включают подробные журналы
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
после установки index.html имеет более высокий приоритет вот почему Вы все еще видящий, что страница Ubuntu по умолчанию проверяет, что эта папка, var/www/html/, переименовывает или удаляет эту страницу, простую как это
Для меня одно из предложений от @Dan решило его.
sudo a2dissite 000-default.conf
service apache2 reload
, По-видимому, конфигурация сайта по умолчанию переопределяла мою vhost конфигурацию.
Я боролся с той же проблемой.
Я даже удалил /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
на мой виртуальный хост .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>
Это полностью решило проблему для меня.