Назад | Перейти на главную страницу

Загруженные файлы сайта не отображаются после создания виртуального хоста во FreeBSD

Доброе утро,

Оповещение для новичков !! :)

Я создал виртуальный хост на моем сервере FreeBSD, и у меня есть доменное имя, указывающее на сервер. Я загрузил файлы сайта в / home / servername / www / virtualhostname. Я вижу, что в / usr / local / apache2 / htdocs есть несколько файлов. Это общий HTML-файл «Добро пожаловать на ваш сервер» и файлы изображений.

Нужно ли мне удалять файлы из / usr / local / apache2 / htdocs, чтобы сервер отображал файлы в / home / servername / www / virtualhostname?

Спасибо, Сид

РЕДАКТИРОВАТЬ:
/usr/local/apache2/conf/httpd.conf содержит следующее:

DocumentRoot "/usr/local/apache2/htdocs"

Таким образом, целесообразно ли изменить DocumentRoot на каталог моего виртуального хоста? Или я должен просто поместить файлы моего сайта в указанный выше DocumentRoot и позволить этому работать?

Во-первых, убедитесь, что ваш домен указывает на правильный IP-адрес сервера, который вы используете, простой ping domain.com сделал бы это, но вы также можете использовать tracert domain.com или traceroute в зависимости от того, где вы его проверяете.

После этого найдите файл httpd.conf и vhosts.conf это файлы конфигурации вашего веб-сервера.

Проверить, если vhosts.conf пусто или нет, если он не пустой, найдите записи DocumentRoot и опубликуйте контент для нас, обновив свой вопрос, если он пуст, перейдите к httpd.conf и ищи <virtualhost записи, если они есть, это означает, что ваш веб-сервер использует серверный каталог DocumentRoot.

Обычно каталог DocumentRoot сервера /var/www/htdocs но он может меняться от установки к установке и от ОС к ОС.

Чтобы проверить, какой именно у вас есть, в httpd.conf найдите запись DocumentRoot это не внутри любого virtualhost впереди - путь к вашему основному корневому каталогу.


лучше, если вы создадите свой собственный VirtualHost для рассматриваемого домена, если у вас есть файл vhosts.conf, добавьте к нему приведенный ниже код, заменив то, что необходимо вашему собственному домену, если у вас нет vhosts.conf, добавленного в конце ваш файл httpd.conf:

NameVirtualHost *:80

<VirtualHost *:80>
        ServerName domain.com
        ServerAlias www.domain.com
        DocumentRoot /home/servername/www/virtualhostname/
        ServerAdmin support@domain.com

        ErrorLog /home/servername/logs/domain.com_error_log
        CustomLog /home/servername/logs/domain.com_access_log combined
</VirtualHost>

Убедитесь, что вы создали каталог /home/servername/logs для хранения файлов журнала или для того, чтобы он указывал на то место, которое вы предпочитаете.


Веб-сервер Apache работает следующим образом:

  • Если у вас не настроены виртуальные хосты, он приведет к серверу DocumentRoot либо по IP-адресу, либо по заданному ServerName.

  • Если у вас есть виртуальные хосты, то вы попадете на сервер DocumentRoot только тогда, когда воспользуетесь ServerName вашего сервера (который является доменом, определенным в ServerName, который находится вне и перед вашими виртуальными хостами в вашем httpd.conf) в противном случае он приведет вас к вашему первому виртуальному хосту в вашем файле конфигурации.

  • Допустим, ваш первый домен - blabla.com, и он использует виртуальный хост *: 80, это означает, что ЛЮБЫЕ IPS, привязанные к вашему веб-серверу, будут вести к этому виртуальному хосту, если пользователь не определил какой-либо домен для доступа, примером может быть пользователь, получающий доступ к вашему ip вместо домена.

  • Если вы всегда используете доменное имя для доступа к своему домену, это не имеет значения, поскольку ваш виртуальный хост хорошо настроен, вы попадете в заданное место, которое вы хотели, и файлы, которые вы хотели.