Недействительный каталог мютекса в аргументе файла: ${APACHE_LOCK_DIR}

Вопрос или проблема

Когда я запускаю apache2 из командной строки (выполняя команду, вместо сервиса), я получаю следующее:

[Чт Мар 13 12:18:05.594522 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_LOCK_DIR} не определена
[Чт Мар 13 12:18:05.594732 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_PID_FILE} не определена
[Чт Мар 13 12:18:05.594807 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_RUN_USER} не определена
[Чт Мар 13 12:18:05.594867 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_RUN_GROUP} не определена
[Чт Мар 13 12:18:05.594934 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_LOG_DIR} не определена
[Чт Мар 13 12:18:05.617353 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_LOG_DIR} не определена
[Чт Мар 13 12:18:05.617809 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_LOG_DIR} не определена
[Чт Мар 13 12:18:05.617895 2014] [core:warn] [pid 9268] AH00111: Переменная конфигурации ${APACHE_LOG_DIR} не определена
AH00526: Ошибка синтаксиса на строке 74 в /etc/apache2/apache2.conf:
Недопустимый каталог Mutex в аргументе file:${APACHE_LOCK_DIR}

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

Mutex file:${APACHE_LOCK_DIR} default

Я обновил Xubuntu с 13.04 до 13.10, и на нём Apache/2.4.6.

Я думаю, вам следует использовать sudo /etc/init.d/apache2, потому что стандартный вызов bin не работает правильно.

Детали ниже:

На загруженной тестовой странице говорится: "Система конфигурации полностью документирована в /usr/share/doc/apache2/README.Debian.gz." – в этом файле написано: "Из-за использования переменных окружения apache2
должен быть запущен/остановлен с помощью ‘/etc/init.d/apache2’, apachectl или
apache2ctl. Прямой вызов ‘/usr/bin/apache2’ не будет работать с
стандартной конфигурацией."

На моей машине apache2ctl restart и apachectl restart выдают сообщение Не удалось надежно определить полное доменное имя сервера ...., но /etc/init.d/apache2 restart работает без вопросов.

Это ожидаемо, потому что apache2 ожидает, что некоторые переменные будут установлены в его окружении. Таким образом, правильные способы запуска apache2 это использование ваших обычных скриптов управления сервисами (service или systemctl), или apache2ctl (apachectl).

Вы должны иметь возможность запустить apache с помощью команды service:

service apache2 start

Смотрите такую же проблему и более подробный ответ по адресу https://lists.debian.org/debian-apache/2013/08/msg00053.html

Ответ или решение

Исправление ошибки "Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}" в Apache2

Ошибка, которую вы наблюдаете при запуске Apache2 из командной строки, обусловлена тем, что некоторые переменные окружения не определены. В частности, ошибка указывает на то, что переменная ${APACHE_LOCK_DIR} не инициализирована, что приводит к проблеме с конфигурацией.

Причины возникновения проблемы

Когда Apache запускается, он ожидает, что определённые переменные окружения будут установлены, поскольку они необходимы для корректной работы сервиса. При запуске Apache напрямую с использованием команды /usr/bin/apache2 эти переменные окружения могут не быть установлены должным образом. Именно этого и требует стандартная конфигурация Apache, особенно на дистрибутивах, таких как Debian и его производные, включая Xubuntu.

Среди ключевых переменных, которые следует учитывать:

  • ${APACHE_LOCK_DIR} – директория для файлов блокировки.
  • ${APACHE_PID_FILE} – файл идентификатора процесса.
  • ${APACHE_RUN_USER} – пользователь, под которым запускается Apache.
  • ${APACHE_RUN_GROUP} – группа, к которой принадлежит пользователь.
  • ${APACHE_LOG_DIR} – директория для логов.

Решение проблемы

Для корректного запуска Apache2 рекомендуется использовать provided system control scripts или специальные команды, такие как apache2ctl или apachectl.

  1. Запуск через систему управления сервисами:
    Используйте команду, которая позволяет управлять сервисами напрямую:

    sudo service apache2 start

    Или, если ваша система поддерживает systemctl:

    sudo systemctl start apache2
  2. Использование apache2ctl или apachectl:
    Эти команды должны корректно настроить окружение перед запуском сервера:

    sudo apache2ctl start
  3. Проверка конфигурации:
    Перед тем как снова запускать сервер, может быть полезно проверить настройки Apache:

    sudo apache2ctl configtest

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

Дополнительная информация

Обратите внимание, что ошибки, связанные с "Could not reliably determine the server’s fully qualified domain name" могут быть связаны с неправильной настройкой имени хоста. Убедитесь, что в вашем файле конфигурации /etc/hosts присутствует запись для вашего имени хоста.

В случае возникновения других вопросов или проблем, вы можете обратиться к документации Apache, доступной по пути /usr/share/doc/apache2/README.Debian.gz, которая содержит полезные сведения о конфигурации и запуске сервиса.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...