Где разместить мой локальный сайт, начиная с версии 2.4.7 apache2?

50

Я недавно установил Ubuntu 14.04, затем установил lamp-serverи разместил свои веб-страницы в /var/wwwкаталоге, но когда я открыл localhost в браузере, ничего не было. Я думаю, что это произошло потому, что Zend обновил Apache.

Какой бы ни была причина, я хочу знать, где хранить мои php-файлы, чтобы я мог получить к ним доступ из своего браузера.

akabhirav
источник
Хотя это не ответ на вопрос ФП, в следующий ответ может помочь некоторым посетителям , которые наткнуться на этот вопрос, пытаясь исправить родственную задачу: askubuntu.com/a/525120/1183
Augustin

Ответы:

76

Версия apache2, которая была опубликована при выпуске Ubuntu 14.04, - это 2.4.7, и, начиная с этой версии, кажется, что по соображениям безопасности новый корневой каталог для сервера:

/var/www/html

Итак, с этого момента вы должны размещать файлы для своего (локального) веб-сайта. Вы не должны иметь эту проблему снова с будущими обновлениями.


В любом случае, если вы хотите изменить этот каталог на другой, вы должны изменить (как root) следующую строку из /etc/apache2/sites-available/000-default.conffile ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

в

DocumentRoot /path/to/another/directory

После этого, чтобы новые изменения вступили в силу, необходимо перезапустить сервер apache, используя следующую команду:

sudo service apache2 restart
Раду Рэдяну
источник
10
Интересно, что я попытался найти причину этого шага. Если кому-то интересно, я нашел этот отчет об ошибках в Debian, который объясняет это.
Дан
4
Я получаю запрещенную ошибку после этого изменения.
Даршана
1
@Darshana Конфигурация по умолчанию в apache2.4 не позволяет apache получить доступ к чему-либо извне /var/www/html. Размещение вашего сайта в любом месте, кроме как в этом каталоге (или его подкаталогах), даст вам ошибку 403. Вам нужно добавить <Directory /path/to/your/site>директиву в ваши конфиги VHost с requireдирективой в ней.
Дан
Это не сработало для меня.
user124384
То же самое и здесь .. Его теперь дает мне ошибку 403 запрещено! Как я должен решить это (Проще, noober способ ПОЖАЛУЙСТА)
abhishah901
27

Вместо того, /etc/apache2/sites-available/000-default.confчтобы вернуться к старой версии, я предпочитаю оставить файлы пакета по умолчанию без изменений.

Причина этого в том, что во время следующего обновления он не сломается, что может привести к сбросу 000-default.confфайла.
Кроме того, такие модификации сделаны не просто для того, чтобы раздражать нас, модификация была сделана по уважительной причине, как объясняется в этом отчете об ошибках в Debian .

Наши веб-серверы [sic] устанавливают корневой каталог документа по умолчанию на / var / www, тогда как локальные администраторы сайта обычно используют /var/www/example.com. Это имеет последствия для безопасности, если посетители получают доступ к корню документа по умолчанию, минуя корневой каталог / предполагаемый / документ сайта example.com. Это проблематично, если конфиденциальные данные размещаются вне предполагаемого корня документа (например, рассмотрим гипотетический файл конфигурации /var/www/example-com-db.conf).

Лучшим решением было бы переместить файлы сайтов из /var/wwwв /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

Кроме того, еще одно возможное решение - создать еще один виртуальный хост и отключить стандартный по умолчанию с помощью команды. sudo a2dissite 000-default

Дэн
источник