2

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

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

2 ответа2

5

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

/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 admin@example.com
  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

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

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

2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .