Apache 2.4.x ручная сборка и установка на RHEL 6.4

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

Текущая установка Apache на этой ОС в настоящее время - 2.2.15. Мне нужна последняя ветка 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 и прокомментировал их по одному. Все вызывают ошибку, как указано выше, однако "неопределенный символ: значение" часто отличается (поэтому не всегда ap_global_mutex_create).

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

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

2 ответа

Решение

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

После установки вы должны включить 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 / apache2 / conf.

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

Раскомментируйте строку включения httpd-ssl.conf и LoadModule ssl_module строка в файле /usr/local/apache2/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://{ваш-ip-адрес}

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

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

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