Ошибка Apache & ldquo; Не удалось достоверно определить полное доменное имя сервера & rdquo;

Вы можете использовать gparted, как указано в предыдущем сообщении, чтобы увидеть все разделы, включая swap в вашей системе. gparted поставляется вместе с LiveCD, но вам нужно будет установить его, если вы не используете LiveCD. Команда для этого -

sudo apt-get update && sudo apt-get install gparted

В качестве альтернативы вы также можете использовать sudo fdisk -l с терминала, чтобы просмотреть все разделы.

nits@nits-excalibur:~$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27edc0d3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   188743679    94268416    7  HPFS/NTFS/exFAT
/dev/sda3       224569342   976771071   376100865    5  Extended
/dev/sda4       188743680   224567295    17911808   83  Linux
/dev/sda5       224569344   434284543   104857600    7  HPFS/NTFS/exFAT
/dev/sda6       434286592   644001791   104857600   83  Linux
/dev/sda7       644003840   684001279    19998720   83  Linux
/dev/sda8       684003328   704002047     9999360   83  Linux
/dev/sda9       804003840   972767231    84381696   83  Linux
/dev/sda10      704004096   744001535    19998720   83  Linux
/dev/sda11      744003584   803987455    29991936   83  Linux
/dev/sda12      972769280   976771071     2000896   82  Linux swap / Solaris

Partition table entries are not in disk order

Строка, указывающая тип FileSystem как Linux Swap / Solaris - это раздел Swap (в моем случае последняя строка). Вы также можете заглянуть в свой /etc/fstab файл, чтобы узнать, включен ли swap по умолчанию при загрузке. Если он был создан во время установки, вы почти всегда найдете его здесь.

nits@nits-excalibur:~$ cat /etc/fstab | grep -i swap
# swap was on /dev/sda12 during installation
UUID=5604929a-9d9e-4ab0-907f-b9479a3b55e5 none            swap    sw              0       0
1
задан 7 January 2017 в 14:51

13 ответов

13.10 или новее

Начиная с версии Apache 2.4, доступной по умолчанию с 13.10, вы не можете использовать метод добавления файла конфигурации в каталог conf.d.

] Apache больше не использует каталог conf.d. Все файлы конфигурации хранятся внутри каталога /etc/apache2/conf-available, и все файлы конфигурации должны теперь иметь расширение .conf.

Чтобы решить это сообщение в Apache 2.4, мы должны создать файл конфигурации внутри каталог conf-available. Например, servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

И внутри этого нам просто нужно добавить одну строку

ServerName localhost

. Вы можете комбинировать предыдущие две команды в одном с: [!d5 ]

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

Если вы хотите использовать доменное имя или любое другое имя в зависимости от требования, его штраф, просто замените localhost на все, что вам нужно. Затем вы должны включить эту конфигурацию. Для этого вам нужно запустить следующую команду:

sudo a2enconf servername

a2enconf - это команда для включения файла конфигурации в Apache 2.4. Также обратите внимание, что servername в приведенной выше команде находится от имени файла конфигурации servername.conf. Если ваш файл конфигурации был ngenericserver.conf, вам нужно будет написать sudo a2enconf ngenericserver.

После этого перезагрузите сервер, и указанное выше сообщение больше не будет вас обманывать.

sudo service apache2 reload

или

sudo apache2ctl graceful

Теперь после этого вы увидите, что сообщение больше не будет отображаться, и проблема будет исправлена.

149
ответ дан 25 May 2018 в 01:29
  • 1
    Кто-нибудь знает, как заставить Apache сказать , с каким конфигурационным файлом он сталкивается с проблемой? Я не знаю, почему разработчики никогда не думают помещать это в свои сообщения об ошибках - это вряд ли займет много кода! – John Y 8 July 2014 в 15:08
  • 2
    Если у меня есть интернет-fqdm для этого сервера, это место для его размещения? т.е. должен ли я подставлять myhost.org вместо localhost? – CPBL 14 August 2014 в 21:54
  • 3
    @CPBL Это будет имя сервера по умолчанию для всех сайтов. Если у вас есть только один сайт, то это все, что вам нужно сделать. Если на вашем сервере имеется несколько сайтов, вам также необходимо будет добавить директиву servername для каждого сайта в их соответствующей конфигурации виртуального хоста. – Dan 7 October 2014 в 22:12
  • 4
    Работает на 14.04 LTS. – Parto 29 June 2015 в 09:34
  • 5
    Ваша цитированная ссылка кажется мертвой, пожалуйста, исправьте. – Fredrick Gauss 27 August 2015 в 10:56
Открыть терминал Открыть файл /etc/apache2/httpd.conf:
sudo editor /etc/apache2/httpd.conf # [1]
По умолчанию он будет пустым. Просто добавьте следующую строку:
ServerName localhost
Сохраните файл и выйдите из него. Перезагрузите сервер
sudo service apache2 restart

[1] Запустите редактор по умолчанию, см. [F5]

23
ответ дан 25 May 2018 в 01:29
  • 1
    после выполнения последней команды происходит следующая ошибка: ** Перезапуск веб-сервера apache2 / usr / sbin / apache2ctl: 87: ulimit: ограничение на установку ошибок (операция не разрешена) / usr / sbin / apache2ctl: 87: ulimit: ограничение на установку ошибок (операция not разрешено) (13) Разрешено: make_sock: не удалось привязать к адресу 0.0.0.0:80 нет доступных сокетов для прослушивания, завершение работы Не удалось открыть журналы Действие «start» не удалось. В журнале ошибок Apache может быть больше информации. [fail] ** @ green7 – Deepu 14 February 2013 в 19:52
  • 2
    попробуйте 'sudo service apache2 restart' – waterloo2005 15 April 2013 в 08:09

Apache2 также может получить полное доменное имя из правильно настроенного имени системного хоста, а не жестко закодированного в конфигурационный файл apache. Hardcoding также вызывает путаницу при изменении имени хоста. Вам действительно не нужны никакие ServerName директивы в httpd.conf или любые файлы конфигурации apache.

В /etc/hosts поставьте следующее:

# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost

, где hostname.domainname.com является полным доменом вашего устройства.

Наряду с правильно настроенным именем хоста в /etc/hostname/ или с hostnamectl это также поможет другим службам на вашем компьютере работать правильно (т. е. приглашение входа в систему, показывая This is hostname.domainname.com вместо This is hostname.unknown_domain. )

22
ответ дан 25 May 2018 в 01:29
  • 1
    +1 для "правильно настроенного имени хоста системы". Я хотел настроить сервер должным образом. Это также зафиксировало мою ошибку в журнале [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? – transistor1 16 April 2014 в 08:21
  • 2
    Считаете ли вы, что это должно работать с Apache 2.2.22? Я все еще получаю «Не могу надежно определить полное доменное имя сервера, используя 127.0.1.1 для ServerName». – David Winiecki 12 April 2015 в 08:08
  • 3
    Предполагается ли hostname localhost быть myubuntuservername localhost? Или строковый литерал hostname localhost? Вы не поняли в своем ответе – Jonathan Leaders 5 April 2017 в 19:25
  • 4
    Это должен быть принятый ответ. Похоже, вам может потребоваться связать FQDN с статическим IP-адресом, а не с 127.0.0.1. – Skippy le Grand Gourou 12 May 2017 в 17:25

В новой версии apache2 вы просто следуете следующей команде:

sudo nano /etc/apache2/apache2.conf

Добавьте следующий новый конец строки:

ServerName localhost

Затем перезапустите apache2:

sudo service apache2 restart

Сделано.

15
ответ дан 25 May 2018 в 01:29

Я считаю, что немного лучше создать новый файл в /etc/conf.d, чтобы изменить либо apache2.conf, либо httpd.conf.

Это личное предпочтение, которое сохраняет мои изменения конфигурации отдельно от дистрибутивный пакет. Таким образом, обновления менее сложны.

Я создаю файл /etc/apache2/conf.d/AAserverName, и он содержит только:

ServerName myhost.mycomain.tld

Другие предложения, безусловно, также работают.

4
ответ дан 25 May 2018 в 01:29

В Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name
2
ответ дан 25 May 2018 в 01:29

Добавить ServerName localhost

To

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

Это не ошибка. Это просто напоминание друга

1
ответ дан 25 May 2018 в 01:29

На Ubuntu 11.10 я увидел это сообщение вместе с зависающей загрузкой, потому что мой диск был заполнен. Один из файлов журналов стал изгоем. Вероятно, на Apache не было проблемы, но это сообщение было последним ключом, заданным перед загрузкой.

Чтобы исправить эту проблему, мне пришлось загрузиться в режим восстановления и удалить файл журнала. [ ! d2]

0
ответ дан 25 May 2018 в 01:29

Указание ServerName localhost в ваших файлах конфигурации за пределами разделов виртуального хоста - это способ сделать это.

Некоторые другие ответы предполагают, что вы должны изменить /etc/apache2/httpd.conf. Этот файл перезаписывается, когда apache обновляется с apt. Для конфигурации Apache, которую вы не хотите перезаписывать, вы должны создать новый файл. Ниже приведен пример «Debian» для изменения этой конфигурации:

# create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart

Это в основном то же самое, что и ответ Старка, но в простой форме для копирования и вставки скрипта. Я изначально разместил это в вопросе, который был отмечен как дубликат: https://askubuntu.com/a/432408

0
ответ дан 25 May 2018 в 01:29

Если вы используете bash и хотите минимальные зависимости (и просто хотите использовать однострочный скрипт для вашей точки входа, если вы используете Docker, как я), эти два параметра должны работать.

Если вы хотите localhost:

echo "ServerName localhost" >> /etc/apache2/apache2.conf

Если вы хотите иметь существующее имя хоста:

echo "ServerName $(cat /etc/hostname)" >> /etc/apache2/apache2.conf

Это использует точку входа если вы используете Docker для добавления строки в конец файла. Echo автоматически вставляет новую строку, поэтому вы все настроены.

0
ответ дан 25 May 2018 в 01:29

Выполните следующую команду:

apachectl -t -D DUMP_INCLUDES

, чтобы определить путь к файлу конфигурации httpd.conf, затем отредактируйте этот файл и раскомментируйте / измените строку, которая указывает значение для опции ServerName, например

ServerName localhost

Для веб-сервера используйте зарегистрированное имя DNS (например, example.com).

Если ваш хост не имеет зарегистрированного имени DNS, введите его IP-адрес Вот.
0
ответ дан 25 May 2018 в 01:29

В Ubuntu 16.04:

Добавьте ServerName localhost в файл httpd.conf usin gthe следующую команду.

sudo vi  /etc/apache2/httpd.conf

Затем включите эту строку Include httpd.conf в конце этот файл

sudo vi /etc/apache2/apache2.conf

Еще раз проверьте наличие синтаксических ошибок

sudo apache2ctl configtest

Теперь вы должны получить

Syntax OK

Теперь вы можете корректно перезапустить сервер, перезагрузив конфигурация sudo service apache2 restart

0
ответ дан 25 May 2018 в 01:29

В Ubuntu 16.04:

Добавьте ServerName localhost в файл httpd.conf usin gthe следующую команду.

sudo vi  /etc/apache2/httpd.conf

Затем включите эту строку Include httpd.conf в конце этот файл

sudo vi /etc/apache2/apache2.conf

Еще раз проверьте наличие синтаксических ошибок

sudo apache2ctl configtest

Теперь вы должны получить

Syntax OK

Теперь вы можете перезапустить сервер из-за перезагрузки конфигурацию

sudo service apache2 reload

или убейте процесс и снова запустите

sudo service apache2 restart
0
ответ дан 25 May 2018 в 01:29

Другие вопросы по тегам:

Похожие вопросы: