Где в Apache 2 вы устанавливаете директиву ServerName глобально?

37

ПРИМЕЧАНИЕ. Это связано с моим вопросом: « Apache 2.4 не будет перезагружаться, есть проблемы с моей конфигурацией? ».

Я пытаюсь проверить локальный сайт, локально. Как я понимаю, в Apache 2 (и, возможно, в Apache) есть что-то, что называется VirtualHost. Мое небольшое понимание говорит мне, что виртуальный хостинг - это способ, при котором один сервер / IP-адрес может обслуживать несколько доменов.

Во всяком случае, я получаю следующую ошибку при запуске Apache 2, configtestчтобы увидеть, где у меня не получается . Я использую Apache 2.4.10-1, и кажется, что между Apache 2.2 и Apache 2.4 произошло много изменений, о которых я не знаю.

$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Это /etc/hostsфайл:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

Я также вижу пустой /etc/hosts.confфайл. Возможно, /etc/hostsнеобходимо скопировать данные, чтобы /etc/hosts.confсервер мог принять это во внимание?

Мое имя хоста:

$ hostname
debian

Это файл конфигурации сайта:

$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/in2014.mini/website

    <Directory />
        Options +FollowSymLinks +Includes
        Require all granted
    </Directory>

    <Directory /var/www/html/in2014.mini/website/>
        Options +Indexes +FollowSymLinks +MultiViews +Includes
        Require all granted
    </Directory>
</VirtualHost>

Я также читал о привязке к адресам и портам , но я не очень хорошо понял по нескольким причинам. Он не дает / делится примером того, в какой файл нужно поместить эти строки и что будет до и после. Пример был бы намного лучше.

Я сделал это и перезапустил сервер, но все равно получаю ту же ошибку.

~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Кажется, в Debian есть три файла конфигурации, которые мне нужно знать и понимать.

/etc/apache2$ ls *.conf
apache2.conf  ports.conf

а также

/etc/apache2/conf.d$ ls *.conf
httpd.conf

Очевидно, apache2.conf - это файл глобальной конфигурации, а httpd.conf - файл пользовательской конфигурации. Есть также ports.conf. Оба apache2.conf и ports.conf имеют значения по умолчанию, за исключением того, что я изменил уровень логики Apache с warnна debug.

Я попробовал еще одну вещь:

$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80           debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Может быть, у кого-то есть больше понимания.

Shirish
источник

Ответы:

43

Файл для редактирования:

/etc/apache2/apache2.conf

Команда для редактирования файла:

sudo nano /etc/apache2/apache2.conf

Для глобального имени сервера вы можете поместить его вверху файла (вне тегов виртуального хоста).

Первая строка выглядит так:

ServerName myserver.mydomain.com

Затем сохраните и протестируйте конфигурацию с помощью следующей команды:

apachectl configtest

Вы должны получить:

Синтаксис ОК

Затем вы можете перезагрузить сервер и убедиться, что вы не получили сообщение об ошибке:

sudo service apache2 restart
Марк Н Хопгуд
источник
2
Это правильный ответ Debian. Я пытался /etc/apache2/conf-available/fqdn.confили servername.confили httpd.confбезрезультатно. Debian Jessie, иapache 2.4.10
доктор Беко
2
Если у вас есть conf-available/и conf-enabled/, создайте файл conf-available/и используйте команду a2enconfдля его включения. Таким образом, dpkg не будет раздражать вас неотслеживаемыми изменениями, когда / если apache2-commonпакет обновитсяapache2.conf
Кевин
После этого файл conf-availableи правка могут быть /etc/apache2/conf-available/servername.confс содержимым ServerName myserver.mydomain.com(пробовал на Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), ядре Linux 4.4.34).
Питер Мортенсен
@PeterMortensen не могли бы вы использовать приведенный пример, чтобы я мог понять, что вы имеете в виду.
Шириш
Файл не существует
черный
5

Вы должны установить директиву ServerName :

ServerName localhost

В Debian вы можете установить его /etc/apache2/conf.d/httpd.conf.

В macOS вы можете установить его /private/etc/apache2/httpd.conf.

cuonglm
источник
5
В Ubuntu, установите его в /etc/apache2/apache2.conf
Макки
1
Debian либо: apache2.conf.
Доктор Беко
1
Для каких версий Apache / Debian это работает? Я не думаю, что это работает для Apache 2.4. Это может быть /etc/apache2/apache2.confвместо.
Питер Мортенсен
это работает, Apache 2.4 на Debian 8
erajuan
2

Чтобы найти файл конфигурации Apache, попробуйте выполнить следующую команду:

apachectl -t -D DUMP_INCLUDES

Затем отредактируйте этот файл, найдите строку ServerNameи раскомментируйте ее, чтобы она выглядела следующим образом:

ServerName localhost
kenorb
источник
0

В конфигурационном файле apache24 вы увидите строку ServerName:80:

  1. Оставьте это поле пустым.
  2. Затем под этой строкой в ​​пустом месте напишите:
    ServerName www.name (of your official domain or website.com:80)
  3. Сохраните файл конфигурации.
  4. Перейдите cmd, откройте его как администратор, перейдите dirтуда, где находится apache24
  5. Тогда cd apache24тогда cd binтогда httpd.exe

Вы увидите, что проблема решена.

Рейчел Хоршам
источник