У меня есть компьютер Ubuntu 14.10, который используется для локального тестирования веб-сайтов, он не работает в Интернете. На нем установлено семь веб-сайтов. Однако, когда я обращаюсь к двум из семи, я получаю Apache2 Ubuntu Default Page
вместо моей собственной индексной страницы.
Насколько я могу судить, я установил все семь, используя точно такой же процесс, поэтому я не знаю, чего не хватает этим двум. Кроме того, в каталоге журналов Apache у меня есть два файла журнала, error
и access
для каждого из двух сайтов, ведущих себя плохо, но все они пусты. Когда я перезапускаю службу apache2
, ошибок нет. Я повторил свои действия несколько раз и не вижу никакой разницы между работающими и неработающими сайтами.
Какие у меня есть варианты для диагностики этой проблемы? Могу ли я как-то заставить вести более подробные журналы ошибок? Есть ли где-то другой журнал, на который я могу сослаться?
Вот пример файла .conf
для одного из неисправных сайтов:
<VirtualHost *:80>
ServerName www.local_example.com
ServerAlias local_example.com
ServerAdmin [email protected]
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 и измените ее со значения по умолчанию warn на 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
Оказалось, что проблема была в разрешениях.
Когда вы храните веб-сайт в директории вне /var/www
и подключаетесь по симлинку, то исходная директория, и ее родительская директория должны иметь разрешения 755
.
По какой-то неизвестной причине, два неправильных сайта имели разные разрешения, и выполнение команды chmod -R 755
для каталога веб-сайта и его родительского каталога решило проблему.