Я установил apache2 на Ubuntu 13.10. Если я попытаюсь перезапустить его, используя
sudo /etc/init.d/apache2 restart
Я получаю это сообщение:
AH00558: apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1. Установите директиву ServerName глобально, чтобы подавить это сообщение
Поэтому я прочитал, что я должен отредактировать мой httpd.conf
файл. Но, поскольку я не могу найти его в /etc/apache2/
папке, я попытался найти его с помощью этой команды:
/usr/sbin/apache2 -V
Но вывод, который я получаю, таков:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Строка 74 из /etc/apache2/apache2.conf
этого:
Mutex file:${APACHE_LOCK_DIR} default
Я посмотрел на мой /etc/apache2/envvar
файл, но я не знаю, что с ним делать.
Что я должен делать?
apache-2.2
ubuntu
Курт Бурбаки
источник
источник
Ответы:
Это сообщение отображается потому, что вы напрямую выполнили двоичный файл apache2. В Ubuntu / Debian конфигурация apache опирается на файл envvar, который только активирован.
Если вы запускаете apache с помощью скрипта init или apachectl.
Ваша первоначальная проблема заключается в том, что у вас нет правильного имени хоста (fqdn) для вашей машины.
Если вы не можете изменить его, измените
ServerName
переменную/etc/apache2/apache2.conf
наlocalhost
или предпочитаемое полное доменное имя.источник
ServerName localhost
кapache2.conf
(потому чтоhttpd.conf
не всегда используется в Ubuntu) , и теперь все работает как надо. Не могли бы вы добавить детали к своим ответам, чтобы я мог пометить их как принятые?apache2ctl
что у меня не получилось, мне пришлось воспользоваться услугой :sudo service apache2 restart
apache2
команду в первую очередь?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
но не решаетConfig variable ${APACHE_LOCK_DIR} is not defined
.Источник ваши envvars, запустив его так:
а потом
Вы должны получить:
источник
/etc/apache2/envvars
не существуетapachectl -V
вместо загрузки переменных среды вручную.source /etc/apache2/envvars && sudo -E apache2 -V
или войдите какroot
и сделать в соответствии с ответом выше. Передача окружения apache2 обычному пользователю, которому затем необходимо использовать sudo, не будет работать без "-E". Обычные пользовательские привилегии не могут прочитать личную папку сертификата среди других проблем. Вы получите ошибку. Вам нужно sudo -E или запустить под учетной записью root полностью.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Проверьте свой
/etc/apache2/envvars
APACHE_LOCK_DIR. В моем Ubuntu 12.04 это/var/lock/apache2$SUFFIX
SUFFIX обычно пустой.Проверьте, существует ли каталог и доступен ли для записи.
Может быть, файл envvars поставлен неправильно? Если вы посмотрите на это,
/etc/init.d/apache2
то увидите, что оно получено.Мой (по умолчанию)
/etc/apache2/envvars
:Если ничего не работает, я бы попытался переустановить пакет (ы).
источник
Как другой сказал, вы должны загрузить (источник) среды перед запуском его непосредственно Другой вариант заключается в использовании:
apache2ctl
например ,sudo apache2ctl -S
бросить моих хозяев
источник
TL; DR; Вы должны запустить apache2, используя то, что у вас уже есть:
Подробно:
Это сообщение означает, что вам нужно определить имя вашего сервера / имя домена. Это не обязательно делать для локального хоста / тестирования продукции, вам не нужно об этом беспокоиться.
Когда вы попытаетесь запустить его другим способом, используя только
apache2
, вы получите эти сообщения об ошибках из-за того, что было сказано ранее: переменные среды определяются, когда вы начинаете использовать скрипт по умолчанию вinit.d
.источник
Может быть, это решит вашу проблему
источник
Вам необходимо обновить DocumentRoot с
/var/www/html
до/var/www
Отредактируйте файл /etc/apache2/sites-available/000-default.conf следующим образом
источник
Это работает для меня
источник