Apache 2.4.x Ручная установка на RHEL 6.4 - Нет модулей apache загружаются при запуске

ОС: выпуск Red Hat Enterprise Linux Server 6.4 (Сантьяго)

Текущая установка apache для этой ОС на 2.2%. Мне нужна последняя ветка 2.4.x, поэтому я начал ее вручную. Я отметил полную процедуру, которую я предпринял, включая распаковку источников apr и apr-util в источники apache заранее, но я думаю, что наиболее важная часть процедуры:

GATHER LATEST APACHE AND APR
$ cd ~
$ mkdir apache-src
$ cd apache-src
$ wget http://apache.insync.za.net//httpd/httpd-2.4.6.tar.gz
$ tar xvf httpd-2.4.6.tar.gz
$ cd httpd-2.4.6
$ cd srclib
$ wget http://apache.insync.za.net//apr/apr-1.5.0.tar.gz
$ tar -xvzf apr-1.5.0.tar.gz
$ mv apr-1.5.0 apr
$ rm -f apr-1.5.0.tar.gz
$ wget http://apache.insync.za.net//apr/apr-util-1.5.3.tar.gz
$ tar -xvzf apr-util-1.5.3.tar.gz 
$ mv apr-util-1.5.3 apr-util

INSTALL DEVEL PACKAGES
yum update --skip-broken (There is a dependency issue with the latest Chrome needing the latest libstdc++, which is not available for RHEL and CentOS)
yum install apr-devel
yum install apr-util-devel
yum install pcre-devel

INSTALL
$ cd ~/apache-src/httpd-2.4.6
$ ./configure --prefix=/etc/httpd --enable-mods-shared="all" --enable-rewrite --with-included-apr
$ make
$ make install

ПРИМЕЧАНИЕ. Во время выполнения выше, /etc/http пуст.

Кажется, все прошло нормально, пока я не попытаюсь запустить службу httpd. Кажется, что каждый модуль включает в httpd.conf сбой с сообщением, аналогичным этому для mod_rewrite:

httpd: Syntax error on line 148 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_rewrite.so into server: /etc/httpd/modules/mod_rewrite.so: undefined symbol: ap_global_mutex_create

Я прошел через список включенных модулей в httpd.conf и прокомментировал их по одному. Все инициируют ошибку, как указано выше, однако символ undefined: значение "часто отличается (так не всегда ap_global_mutex_create).

Я пропустил шаг? Хотя я нахожу часть этой ошибки в Google, большинство решений сосредоточено вокруг файлов .so, которые недоступны. Это, похоже, не проблема, и модули присутствуют в /etc/http/modules.

ПРИМЕЧАНИЕ. Во время выполнения выше, /etc/http пуст.

Ответы

Ответ 1

У вас есть правильная процедура, но она неполна.

После установки вы должны включить SSL в httpd.conf. и сгенерировать файл server.crt и server.key. Ниже полная процедура:

1. Загрузить Apache

cd /usr/src
wget http://www.apache.org/dist/httpd/httpd-2.4.23.tar.gz
tar xvf httpd-2.4.23.tar.gz

2. Загрузите APR и APR-Util

cd /usr/src
wget -c http://mirror.cogentco.com/pub/apache/apr/apr-1.5.2.tar.gz
wget -c http://mirror.cogentco.com/pub/apache/apr/apr-util-1.5.4.tar.gz
tar xvf apr-1.5.2.tar.gz
tar xvf apr-util-1.5.4.tar.gz

Теперь добавьте APR и APR-Util, которые вы загрузили в исходные файлы apache.

mv apr-1.5.2 /usr/src/httpd-2.4.23/srclib/apr
mv apr-util-1.5.4 /usr/src/httpd-2.4.23/srclib/apr-util

3.Compile

cd /usr/src/httpd-2.4.23
./configure --enable-so --enable-ssl --with-mpm=prefork --with-included-apr --with-included-apr-util
make
make install

Как вы можете видеть в команде ./configure, мы указываем параметры командной строки для включения apr и apr-utils.

4. Включить SSL в httpd.conf

Конфигурационный файл Apache httpd.conf находится в каталоге /usr/local/apache 2/conf.

nano /usr/local/apache2/conf/httpd.conf

Раскомментируйте строку Include httpd-ssl.conf и строку LoadModule ssl_module в файле /usr/local/apache 2/conf/httpd.conf:

# LoadModule ssl_module modules/mod_ssl.so
# Include conf/extra/httpd-ssl.conf

Просмотрите httpd-ssl.conf, чтобы просмотреть все конфигурации SSL по умолчанию.
Для большинства случаев вам не нужно ничего изменять в этом файле.

nano /usr/local/apache2/conf/extra/httpd-ssl.conf

Сертификат SSL и ключ необходимы, прежде чем мы начнем Apache.
Файл server.crt и server.key, указанный в httpd-ssl.conf, должен быть создан, прежде чем двигаться вперед.

cd /usr/local/apache2/conf/extra
egrep 'server.crt|server.key' httpd-ssl.conf

SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

5. Создайте файл server.crt и server.key

Сначала создайте server.key с помощью openssl.

cd /usr/src
openssl genrsa -des3 -out server.key 1024

Вышеприведенная команда запросит пароль. Обязательно запомните этот пароль. Вам нужно это, начиная с Apache позже.

Затем создайте файл запроса сертификата (server.csr), используя указанный выше файл server.key.

openssl req -new -key server.key -out server.csr

Наконец, сгенерируйте самоподписанный сертификат ssl (server.crt), используя вышеуказанные файлы server.key и server.csr.

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Скопируйте файл server.key и server.crt в соответствующее расположение каталога конфигурации Apache.

cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/

6. Запустить Apache

/usr/local/apache2/bin/apachectl start

Если вы получаете следующее сообщение об ошибке:

AH00526: Syntax error on line 51 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration

Обязательно раскомментируйте строку, показанную ниже в httpd.conf:

vi /usr/local/apache2/conf/httpd.conf

# LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

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

ps -ef | grep http

Вы должны увидеть что-то вроде этого:

root    29529 1     0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
antoine 29530 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
antoine 29531 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
antoine 29532 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
root    29616 18260 0 13:09 pts/0 00:00:00 grep http

По умолчанию Apache SSL работает на 443 порту. Откройте веб-браузер и убедитесь, что вы можете получить доступ к своему Apache, используя https://{your-ip-address}

Я надеюсь, что эта помощь, иначе я советую вам пойти: http://jasonpowell42.wordpress.com/2013/04/05/install-apache-2-4-4-on-centos-6-4/

Ответ 2

baprutil-1.la /usr/src/httpd-2.4.27/srclib/apr/libapr-1.la -lrt -lcrypt -lpthread -ldl -lcrypt
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ParserCreate'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ParserFree'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetUserData'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_StopParser'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_Parse'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ErrorString'
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/src/httpd-2.4.27/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/httpd-2.4.27/support'
make: *** [all-recursive] Error 1

Эта ошибка принимается в шаге make, если --with-included-apr-util не указан в ./configure