Ошибка при использовании mod_jk в httpd: не определённый символ: ap_get_server_version

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

Мы только что установили новый сервер RHEL7. На этом сервере у нас есть несколько виртуальных хостов, и в них есть несколько строк, которые выглядят так –

JkMount /rules_engine/rulesApi/rules/* rulesEngine
JkMount /api/* rulesEngine
JkMount /rules_editor/* rulesEngine

Чтобы с этим справиться, мы используем mod_jk в конфигурации Apache. Однако, когда я пытаюсь запустить Apache, я получаю следующую ошибку –

Ошибка синтаксиса в строке 1 файла /etc/httpd/conf.d/mod_jk.conf: Не удается загрузить /etc/httpd/modules/mod_jk.so в сервер: /etc/httpd/modules/mod_jk.so: неопределенный символ: ap_get_server_version

Файл mod_jk.conf находится в /etc/httpd/conf.d, и выглядит следующим образом –

LoadModule jk_module /etc/httpd/modules/mod_jk.so
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
Измените на WARN или ERROR для Prod
JkLogLevel info
JkShmFile /var/log/httpd/mod_jk.shm
JkMount /rulesApi/rules/* rulesEngine
JkMount /api/* rulesEngine
JkMount /* rulesEditor
JkMount /rules_editor/* rulesEditor

Какие-нибудь идеи по поводу того, что означает эта ошибка и как я могу заставить httpd запуститься?

Спасибо.

Похоже, что файл mod_jk.so отсутствует в директории /etc/httpd/modules, или mod_jk.so, который вы добавили, несовместим с вашей версией Apache. Какую версию Apache вы использовали: 2.2 или 2.4? Для Apache 2.4 скачайте mod_jk-1.2.37 и попробуйте, у меня это сработало.

Может, эта ссылка поможет вам:
http://www.linuxquestions.org/questions/linux-server-73/apache-2-4-2-and-tomcat-connector-1-2-37-error-help-4175421221/

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

Ошибка при использовании mod_jk в httpd: неопределенный символ: ap_get_server_version

Недавняя установка нового сервера на RHEL7 может столкнуться с проблемами при запуске Apache HTTP Server, особенно если используется модуль mod_jk для интеграции с Apache Tomcat. Ошибка, которую вы наблюдаете:

Syntax error on line 1 of /etc/httpd/conf.d/mod_jk.conf: Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: undefined symbol: ap_get_server_version

указывает на наличие проблемы с совместимостью модуля mod_jk, который вы пытаетесь загрузить. Давайте разберемся, что именно означает эта ошибка и как можно её устранить.

Причины проблемы

Ошибка "undefined symbol: ap_get_server_version" проявляется, когда загружаемый модуль (в данном случае mod_jk.so) не соответствует версии Apache, установленной на вашем сервере. Это может произойти по следующим причинам:

  1. Несоответствие версий: Если вы установили mod_jk, который предназначен для более старой или более новой версии Apache, это приведет к ошибкам загрузки, так как некоторые символы (например, функции) могут отсутствовать или измениться между версиями.

  2. Коррупция файла: Файл модуля mod_jk.so может быть поврежден или неправильно установлен.

Как исправить ошибку

  1. Проверка версии Apache:

    • Чтобы выяснить, какая версия Apache у вас установлена, выполните следующую команду:
      httpd -v
    • Сравните эту версию с версией модуля mod_jk, который у вас установлен.
  2. Установка совместимой версии mod_jk:

    • Если вы используете Apache 2.4, вам нужно убедиться, что вы скачиваете модуль mod_jk, совместимый с этой версией. Наиболее распространенной версией mod_jk для Apache 2.4 является mod_jk-1.2.37.
    • Для загрузки и установки выполните:
      wget http://apache.mirrors.pair.com/tomcat/tomcat-connectors/jk/binaries/linux/mod_jk-1.2.37-httpd-2.4.x.so
      mv mod_jk-1.2.37-httpd-2.4.x.so /etc/httpd/modules/mod_jk.so
    • Затем внесите изменения в конфигурацию Apache, если это необходимо.
  3. Проверка целостности:

    • Убедитесь, что файл mod_jk.so действительно загружен и не поврежден. Выполните:
      ls -l /etc/httpd/modules/mod_jk.so
  4. Перезапуск Apache:

    • После установки совместимого модуля перезапустите Apache:
      systemctl restart httpd

Заключение

Для успешной работы Apache с mod_jk крайне важно проверять совместимость версии модуля с версией Apache. Убедитесь, что используемые вами модули актуальны, чтобы избежать неопределенных символов и ошибок при загрузке. Кроме того, следуйте проверенному процессу установки и всегда проверяйте целостность используемых файлов. Если после выполнения всех шагов проблема сохраняется, рассмотрите возможность обращения за поддержкой на форумы или к документации Apache.

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

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

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