Apache не загружает файлы виртуального хоста

Apache не загружает файлы виртуального хоста

Я пытаюсь настроить сервер Apache2, но не могу заставить его загрузить мои виртуальные хосты. Или, если быть точнее, он работает нормально, пока я пишу их в 000-default.conf, но всякий раз, когда я пытаюсь использовать отдельный файл, он, похоже, полностью его игнорирует.

Почему это не работает? И как заставить это работать?

решение1

Обычно, если требуется настроить отдельные конфигурации виртуального хоста, их следует поместить в этот каталог:

/etc/apache2/sites-available/

Таким образом, если у вас есть виртуальный хост с именем, то www.example.comимя файла конфигурации может быть www.example.com.confследующим:

/etc/apache2/sites-available/www.example.com.conf

Затем вы открываете этот файл в текстовом редакторе, например, в этом; я использую его nanoв качестве примера, но вы можете использовать любой другой текстовый редактор по своему усмотрению:

sudo nano /etc/apache2/sites-available/www.example.com.conf

А затем поместите контент, подобный этому, в www.example.com.conf:

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Закройте и сохраните этот файл, а затем используйте a2ensiteего следующим образом, чтобы система установила символическую ссылку с sites-availableна sites-enabledследующее:

sudo a2ensite www.example.com.conf

Или, если хотите, вы можете вручную ln -sустановить символическую ссылку следующим образом:

ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf

Когда это будет сделано, просто перезагрузите Apache следующим образом:

sudo service apache2 reload

А если по какой-то причине reloadне сработает, просто выполните принудительный перезапуск, например так:

sudo service apache2 restart

Преимущество использования reloadbefore restartв том, что если в файле конфигурации есть опечатка, Apache сообщит об ошибке, но не загрузит файлы конфигурации. Это означает, что ваш веб-сервер Apache будет по-прежнему работать на основе последнего стабильного файла конфигурации, который он загрузил.

Риск заключается в том, что если вы принудительно выполните a restartи в файле конфигурации будет опечатка, Apache будет мертв, поскольку restartпринудительно запустит полную службу, stopза которой последует start. И если это startзахлебнется, сервер будет мертв, пока опечатка/проблема в конфигурации не будет устранена.

решение2

Проверьте свой httpd.confфайл, он должен содержать строку типа Include conf/*.conf. Проверьте, является ли это подстановочным знаком или фиксированным файлом (типа 000-default.conf).

Также проверьте, что ваши новые файлы conf соответствуют шаблону подстановочных знаков и хранятся в той же папке, что и 000-default.conf.

Наконец, существуют дистрибутивы Apache, в которых имеются доступные и активные файлы conf, поэтому в некоторых случаях для работы требуется программная ссылка.

Связанный контент